本报第20期文章《S60v3手机操作系统 用证书折磨你》反映了部分用户在使用S60v3操作系统手机时遇到的问题,本期我们收到来自TC TrustCenter(证书颁发机构)指定的 TC者证书( TC Publisher ID for Symbian ) 在中国的惟一销售商、辅助身份验证机构和中文技术支持中心沃通公司的投稿,将从技术角度就S60v3手机操作系统的安全机制以及手机软件签名原理等相关问题进行进一步的说明和解答。
智能手机的普及引发了许多针对智能手机操作系统的恶意软件,而手机一旦中招,不可能像电脑一样重装系统,只能任其报废。考虑到此问题的严重性,全球领先的手机操作系统提供商(如:Symbian、Windows Mobile等)都采用了成熟的数字签名技术,使用数字签名机制来确保手机的安全。
S60v3平台安全机制
就Symbian(俗称“塞班”)操作系统来讲,也正是考虑到以上安全威胁,才从第3版开始强制要求软件数字签名。通俗地讲,手机软件签名就是手机软件实名制,如果手机软件申请了签名,一旦用户发现软件有问题,就可以找手机软件开发商(软件签名者)解决;否则将由于无法证明软件的来源,使用户没有任何证据向软件开发商索赔。数字签名机制保证了手机用户的合法权益,同时限制了盗用软件的产生,从另一个角度来说,也保护了手机软件开发商的利益和手机制造商的利益。这是一项多方受益的机制,一些没有此类安全机制的国产手机厂商已经体会到了没有签名机制的坏处,例如用户由于安装了恶意软件而导致手机返修,引起售后服务成本的加重,部分国产手机厂商已经开始实施类似安全机制。
软件数字签名原理
软件代码数字签名采用 PKI 数字证书技术,整个数字签名过程如***1所示。
软件开发商在自己电脑上生成私钥(.pvk) 和证书请求文件 (CSR) 提交给证书颁发机构(CA),同时提交有关身份证明文件(如:营业执照和第三方证明文件等)给CA鉴证, CA在验证身份后用自己的私钥给 CSR 文件签名后就生成代码签名证书,也就是公钥 (.spc或.cer)文件给软件开发商,这样就完成了证书的申请和颁发过程。
软件开发商用代码签名工具(如:signSIS) 为要签名的代码生成一个 Hash 表,再用其私钥加密 Hash 表产生认证摘要,接着把认证摘要连同其公钥与软件代码一起,打包生成签名后的新的软件代码,之后就可以把已经签名的代码放到网上发行了。
而最终用户从网上***已经签名的代码时,浏览器或手机操作系统会从签名代码中解读出其签名证书(公钥) 和 Hash 表摘要,并与 Windows操作系统或Symbian移动操作系统中的受信任的根证书相比较,查验公钥证书的有效性和合法性,验证签名证书正确后,就可以确认此代码确实是来自真实的软件开发商。
接着,再使用签名时使用的同样算法对软件代码生成一个 Hash 表,并使用公钥也同样生成一个Hash表认证摘要,比较从代码中解包出来的 Hash表认证摘要与生成的 Hash表认证摘要是否一致,如果一致,则表明此代码在传输过程中没有被篡改,从而可以确认代码的完整性。
从以上过程我们可以看出,软件代码签名的验证机制被用来检查签名证书是否由操作系统中的受信任的根证书颁发机构颁发,否则无法通过验证;代码签名后不仅保证了软件开发商的真实身份,而且还保证了代码的完整性,以免代码被病毒干扰和被非法篡改;只有使用了操作系统受信任的证书颁发机构颁发的代码签名证书签名的代码才允许***。
Symbian Signed
签名过程
针对Symbian Signed签名,具体涉及到两种证书,一是者证书(TC Publisher ID),此证书由Symbian全球指定的德国TC TrustCenter公司颁发,主要用来证明软件开发者的真实身份和保证软件代码在提交测试时不会被非法篡改;另一类证书是开发者证书(Developer ID)和内容证书,是由Symbian操作系统所信任的根证书颁发,必须使用此类证书签名代码后才能在手机上安装。
也许用户会问,为什么要搞得那么复杂,设计两类不同的签名证书?这涉及到信任机制和法律问题,简单地说,者证书就是软件者在数字世界的营业执照,与现实世界的营业执照是一一对应的,而数字签名也是受法律保护的,所以者证书只颁发给有营业执照的企业和个体工商户,同时,也一定要由当地***府合法注册的证书颁发机构来颁发。由于Symbian只是平台开发商,并非证书颁发机构,所以,委托证书颁发机构TC TrustCenter来颁发。
由于数字签名是受法律保护的,所以需要特别提醒的是,有些网站自己申请者证书后免费或收费代其用户申请开发者证书(俗称:制作证书)是有法律风险的,相当于现实世界中代陌生人为其所书写的内容签名,一旦出现法律纠纷,签名人要承担法律责任。千万不要为了积聚网站人气或为了蝇头小利而冒承担法律责任的风险。
对于开发者证书和内容证书,无论软件开发商采用哪种签名方式,实际上都是要先使用者证书签名其代码,通过测试后(快速***测试或通过第三方测试),再由Symbian Signed系统读出其证书中的软件者信息,使用Symbian移动操作系统所信任的根证书重新签名其代码,之后才可以正常安装。使用开发者证书、内容证书或做第三方测试都是一个重签名的过程。
由此我们可以看出,者证书是作为基础而存在的,相当于现实世界中公司开业必须先申请营业执照一样,软件开发商可以根据软件使用能力要求的不同而选择合适的签名方式。
下面我们以Certified Signed为例,说明整个签名过程。而Open Signed和Express Signed与Certified Signed不同的是:前两者实际上可以认为是软件自测,而后者是通过第三方来测试,更具权威性,具有更多的能力。
Symbian Signed认证(Certified Signed)主要流程如***2所示,首先在 网上注册用户,申请购买 TC Publisher ID(TC者证书),签名 SIS 文件,再提交已经签名的文件给 Symbian Signed 指定的测试公司测试,测试通过后从 Symbiansigned 网站取回由测试公司重新签名的文件,就可以部署到手机中安全运行了。
S60第3版的应用软件强制要求必须数字签名才能运行,是为了确保手机不会被恶意代码所侵害,为了保护用户、软件开发商和手机制造商的权益。其中数字签名与测试认证是两码事,数字签名是必须的,而测试认证不是必须的,只有选择Certified Signed签名方式才需要通过第三方测试公司测试,其他方式为自测。
正是由于Symbian移动操作系统具有完善的安全机制,所以,许多手机制造商如诺基亚、索爱、摩托罗拉、三星等都已经采用了Symbian操作系统。而目前所有国产手机都没有采用类似安全机制,这就制约了国产手机向高端的发展。可喜的是,据笔者了解,第3代手机标准TD-SCDMA已经开始开发类似安全机制,从而将为国产手机向高端发展提供安全保证。
Symbian Signed 的四种数字签名方式
注:
1.Symbian Signed账户注册不允许使用公共邮箱,如:Gmail、Yahoo和Hotmail等;
2.购买者证书必须提供个体或公司营业执照,同时要提供电话收费发票用于电话身份验证;
3.申请开发者证书必须先到Symbian 开发者论坛
(/forum/ann.jspa?annID=44 )上要求把者证书和Symbian Signed账户绑定后才能申请;
4.新注册的Symbian Signed帐户,没有***购买内容证书的菜单,需要在Symbian开发者论坛上要求把者证书和Symbian Signed账户绑定后才能***购买;
5.虽然快速签名方式不需要通过第三方测试机构测试,但Symbian Signed会在软件开发商提交软件后由系统自动扫描测试,或随机抽查给第三方测试公司测试是否满足软件测试要求,建议软件开发商在提交反签名之前先自己使用Symbian Signed网站上提供的自测工具测试;
6.13种能力:LocalServices, ProtServ, UserEnvironment, NetworkServices, Location, ReadUserData, WriteUserData, SW Event, SurroundingsDD, PowerMgmt, ReadDeviceData, WriteDeviceData, TrustedUI;
17种能力:LocalServices, ProtServ, UserEnvironment, NetworkServices, Location, ReadUserData, WriteUserData, SW Event, SurroundingsDD, PowerMgmt, ReadDeviceData, WriteDeviceData, TrustedUI, CommDD, MultimediaDD, NetworkControl, Disk***;需要向手机厂商申请的3种能力有: DRM, AllFiles, TCB;
7.者证书有效期为1年,此栏中的有效期是指为重签名后的SIS文件的签名有效期。
以上内容根据Symbian Signed***网站: 和Symbian Signed TC Publisher ID(者ID或者证书)***网站:trustcenter.de (英文)、 (中文)有关文档整理。
转载请注明出处学文网 » S60v3手机操作系统签名安全机制与原理