S60 手机操作系统数字签名安全机制与软件签名原理
《计算机世界》第 20 期文章 《 S60 V3 手机操作系统用证书折磨你》是从一个普通手机用户的角度来写的,反映了一些用户的心声,但从手机软件专业和手机产业来讲,此文章有失公正客观,必须公正客观地看待此问题。笔者将从专业角度向大家介绍一下 S60 V3 手机操作系统的安全机制以及手机软件签名原理。?
? ? 大家都知道,互联网上最头痛的是恶意软件(流氓软件)横行,一不小心就中招,只好重装电脑。而现在由于智能手机已经开始普及,所以各种恶意软件 ( 流氓软件 ) 也开始瞄准智能手机,而一旦智能手机中招,就不可能象电脑一样可以重装系统了,只能眼巴巴地看着几千元买的手机报废了。正是考虑到此问题的严重性,全球领先的手机操作系统提供商(如: Symbian 、Windows Mobile 等)都采用了成熟的数字签名技术,使用数字签名机制来确保手机的安全。
? ? 就 Symbian( 网上俗称“塞班” ) 操作系统来讲,也正是考虑到以上安全威胁,才从第 3 版开始强制要求软件数字签名。通俗地讲,手机软件签名就是手机软件实名制,也就是说,如果有签名,则一旦用户发现软件有问题就可以找手机软件开发商 ( 软件签名者 ) ;否则一旦手机软件有问题,将由于无法证明软件的来源而使得用户没有任何证据来向软件开发商索赔。其实,数字签名机制是保证了手机用户的合法权益的。而目前由于抱怨的用户,许多都是想盗用软件的,从另一个角度来讲,数字签名机制又保护了手机软件开发商的利益。所以,手机软件签名机制,不仅保护了最终用户的权益,也保护了手机软件开发商的利益,当然,也保护了手机制造商的利益 ( 大大减少了售后服务的成本和增加销售 ) 。这是一项多方都受益机制,不能因为一些手机玩家的反对而认为是在“折磨”用户,实际上是在 保护 用户,一些没有此类安全机制的国产手机已经体会到了没有签名机制的坏处 ( 用户由于安装了恶意软件而导致手机不能使用而返修,大大加重了售后服务成本 ) ,而开始实施类似安全机制。
? ? 下面就详细地介绍一下基于 Symbian 手机操作系统的安全机制,以及软件数字签名到底是怎么回事。本文以下内容根据 Symbian Signed 官方网站: www.symbiansigned.com 和 Symbian Signed 必须用的 TC Publisher ID( 发布者 ID 或发布者证书 ) 的官方网站: www.trustcenter.de(英文) 、www.wosign.com(中文) 有关文档整理,是广大用户不可多得的中文参考资料。
一、Symbian Signed 四种数字签名方式简介
? ? ?软件开发商在自己电脑上生成私钥 (.pvk) 和证书请求文件 (CSR) 提交给证书颁发机构 (CA) ,同时提交有关身份证明文件 ( 如:营业执照和第三方证明文件等 ) 给 CA 鉴证, CA 在验证身份后用自己的私钥给 CSR 文件签名后就生成代码签名证书,也就是公钥 (.spc 或 .cer) 文件给软件开发商,这样就完成了证书的申请和颁发过程。 ?
? ???软件开发商用代码签名工具 ( 如: signSIS) 给要签名的代码生成一个 Hash 表,再用其私钥加密 Hash 表产生认证摘要,接着就把认证摘要连同其公钥与软件代码一起打包生成签名后的新的软件代码,软件开发商就可以把已经签名的代码放到网上发行了。
? ???最终用户从网上下载已经签名的代码时,浏览器或手机操作系统会从签名代码中解读出其签名证书 ( 公钥 ) 和 Hash 表摘要,并与 Windows 操作系统或 Symbian 移动操作系统中的受信任的根证书相比较查验公钥证书的有效性和合法性,验证签名证书正确后,就可以确认此代码确实是来自真实的软件开发商。
? ???接着,再使用签名时使用的同样算法对软件代码生成一个 Hash 表,并使用公钥也同样生成一个 Hash 表认证摘要,比较从代码中解包出来的 Hash 表认证摘要与生成的 Hash 表认证摘要是否一致,如果一致,则表明此代码在传输过程中没有被篡改,从而可以确认代码的完整性。
? ???从以上整个过程的简单介绍,可以看出:
? ???(1)??软件代码签名的验证机制检查签名证书是否由操作系统中的受信任的根证书颁发机构颁发,否则无法通过验证。
? ???(2) 代码签名后不仅保证了软件开发商的真实身份,而且还保证了代码的完整性,以免代码被病毒干扰和被非法篡改。
? ???(3) 只有使用了操作系统受信任的证书颁发机构颁发的代码签名证书签名的代码才允许下载。
(二) 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 所示,首先在 Symbiansigned.com 网上注册用户,再申请购买 TC Publisher ID(TC 发布者证书 ) ,再签名 SIS 文件,再提交已经签名的文件给 Symbian Signed 指定的测试公司测试,测试通过后从 Symbiansigned 网站取回由测试公司重新签名的文件,就可以部署到手机中安全运行了。

? ?
三、 小结
? ? S60 第 3 版的应用软件是必须数字签名才能运行的,是强制要求,是为了确保手机不会被恶意代码所侵害,为了保护用户、软件开发商和手机制造商的权益。请注意:数字签名与测试认证是 两码 事,数字签名是必须的,而测试认证不是必须的,只有您选择 Certified Signed 签名方式才需要通过第三方测试公司测试,其他方式为自测。
? ? 可以看出,正是由于 Symbian 移动操作系统具有完善的安全机制,所以,全球领先的手机制造商诺基亚、索爱、摩托罗拉、三星都已经采用了 Symbian 操作系统,只有具备完善的数字签名机制才能确保手机安全。而目前所有国产手机都没有采用类似安全机制,这就制约了国产手机向高端发展。可喜的是,据笔者了解,第 3 代手机标准 TD-SCDMA 已经开始开发类似安全机制,从而将为国产手机向高端发展提供了安全保证。
?
原文地址:http://www.opda.net.cn/thread-281945-1-1.html