《计算机世界》第20期文章《S60V3手机操作系统用证书折磨你》是从一个普通手机用户的角度来写的,反映了一些用户的心声,但从手机软件专业和手机产业来讲,此文章有失公正客观,必须公正客观地看待此问题。笔者将从专业角度向大家介绍一下S60V3手机操作系统的安全机制以及手机软件签名原理。大家都知道,互联网上最头痛的是恶意软件(流氓软件)横行,一不小心就中招,只好重装电脑。而现在由于智能手机已经开始普及,所以各种恶意软件(流氓软件)也开始瞄准智能手机,而一旦智能手机中招,就不可能象电脑一样可以重装系统了,只能眼巴巴地看着几千元买的手机报废了。正是考虑到此问题的严重性,全球领先的手机操作系统提供商(如:Symbian、WindowsMobile等)都采用了成熟的数字签名技术,使用数字签名机制来确保手机的安全。就Symbian(网上俗称“塞班”)操作系统来讲,也正是考虑到以上安全威胁,才从第3版开始强制要求软件数字签名。通俗地讲,手机软件签名就是手机软件实名制,也就是说,如果有签名,则一旦用户发现软件有问题就可以找手机软件开发商(软件签名者);否则一旦手机软件有问题,将由于无法证明软件的来源而使得用户没有任何证据来向软件开发商索赔。其实,数字签名机制是保证了手机用户的合法权益的。而目前由于抱怨的用户,许多都是想盗用软件的,从另一个角度来讲,数字签名机制又保护了手机软件开发商的利益。所以,手机软件签名机制,不仅保护了最终用户的权益,也保护了手机软件开发商的利益,当然,也保护了手机制造商的利益(大大减少了售后服务的成本和增加销售)。这是一项多方都受益机制,不能因为一些手机玩家的反对而认为是在“折磨”用户,实际上是在保护用户,一些没有此类安全机制的国产手机已经体会到了没有签名机制的坏处(用户由于安装了恶意软件而导致手机不能使用而返修,大大加重了售后服务成本),而开始实施类似安全机制。下面就详细地介绍一下基于Symbian手机操作系统的安全机制,以及软件数字签名到底是怎么回事。本文以下内容根据SymbianSigned官方网站:(发布者ID或发布者证书)的官方网站:(英文)、(中文)有关文档整理,是广大用户不可多得的中文参考资料。一、SymbianSigned四种数字签名方式简介OpenSignedOnline开放签名在线方式OpenSignedOffline开放签名离线方式ExpressSigned快速签名方式CertifiedSigned认证签名方式可用状态Beta版可用可用可用可用SymbianSigned帐户(*1)不要求要求要求要求发布者证书(*2)TCPublisher不要求要求要求要求ID开发者证书(*3)DeveloperID不要求要求不要求不要求内容证书(*4)TCContentID不要求不要求要求每个SIS文件一个不要求第三方测试不要求不要求不要求(*5)要求费用:2000元左右串号(IMEI)数量有限制只能1个有限制1000个以内没有限制没有限制能力限制(*6)13种能力17种能力13种能力没有限制3种能力需向手机厂商申请其他限制*Email限制*UID限制*SIS文件限制签名后下载是否有警告有,提示软件处于开发测试阶段有,提示软件处于开发测试阶段无无证书价格(元)发布者证书:1600元开发者证书:免费发布者证书:1600元内容证书:200元发布者证书:1600元签名有效期(*7)3年3年10年10年注1:SymbianSigned帐户注册不允许使用公共邮箱,如:Gmail、Yahoo和Hotmail等;注2:购买发布者证书必须提供个体或公司营业执照,同时要提供电话收费发票用于电话身份验证;注3:申请开发者证书必须先到Symbian开发者论坛上要求把发布者证书和SymbianSigned帐户绑定后才能申请;注4:新注册的SymbianSigned帐户,没有在线购买内容证书的菜单,需要在Symbian开发者论坛上要求把发布者证书和SymbianSigned帐户绑定后才能在线购买;注5:虽然快速签名方式不需要通过第3方测试机构测试,但SymbianSigned会在软件开发商提交软件后由系统自动扫描测试,或随机抽查给第三方测试公司测试是否满足软件测试要求。建议软件开发商在提交反签名之前先自己使用SymbianSigned网站上提供的自测工具测试;注6:13种能力:LocalServices,ProtServ,UserEnvironment,NetworkServices,Location,ReadUserData,WriteUserData,SWEvent,SurroundingsDD,PowerMgmt,ReadDeviceData,WriteDeviceData,TrustedUI;17种能力:LocalServices,ProtServ,UserEnvironment,NetworkServices,Location,ReadUserData,WriteUserData,SWEvent,SurroundingsDD,PowerMgmt,ReadDeviceData,WriteDeviceData,TrustedUI,CommDD,MultimediaDD,NetworkControl,DiskAdmin需要向手机厂商申请的3种能力有:DRM,AllFiles,TCB;注7:发布者证书有效期为1年,此栏中的有效期是指为重签名后的SIS文件的签名有效期。二、S60V3平台安全机制简介(一)软件数字签名原理软件代码数字签名采用PKI数字证书技术,整个数字签名过程如下图1所示:软件开发商在自己电脑上生成私钥(.pvk)和证书请求文件(CSR)提交给证书颁发机构(CA),同时提交有关身份证明文件(如:营业执照和第三方证明文件等)给CA鉴证,CA在验证身份后用自己的私钥给CSR文件签名后就生成代码签名证书,也就是公钥(.spc或.cer)文件给软件开发商,这样就完成了证书的申请和颁发过程。软件开发商用代码签名工具(如:signSIS)给要签名的代码生成一个Hash表,再用其私钥加密Hash表产生认证摘要,接着就把认证摘要连同其公钥与软件代码一起打包生成签名后的新的软件代码,软件开发商就可以把已经签名的代码放到网上发行了。最终用户从网上下载已经签名的代码时,浏览器或手机操作系统会从签名代码中解读出其签名证书(公钥)和Hash表摘要,并与Windows操作系统或Symbian移动操作系统中的受信任的根证书相比较查验公钥证书的有效性和合法性,验证签名证书正确后,就可以确认此代码确实是来自真实的软件开发商。接着,再使用签名时使用的同样算法对软件代码生成一个Hash表,并使用公钥也同样生成一个Hash表认证摘要,比较从代码中解包出来的Hash表认证摘要与生成的Hash表认证摘要是否一致,如果一致,则表明此代码在传输过程中没有被篡改,从而可以确认代码的完整性。从以上整个过程的简单介绍,可以看出:(1)软件代码签名的验证机制检查签名证书是否由操作系统中的受信任的根证书颁发机构颁发,否则无法通过验证。(2)代码签名后不仅保证了软件开发商的真实身份,而且还保证了代码的完整性,以免代码被病毒干扰和被非法篡改。(3)只有使用了操作系统受信任的证书颁发机构颁发的代码签名证书签名的代码才允许下载。(二)SymbianSigned签名过程针对SymbianSigned签名,具体涉及到两种证书,一是发布者证书(TCPublisherID),此证书由Symbian全球指定德国TCTrustCenter公司颁发,此证书的主要用来证明软件开发者的真实身份和保证软件代码在提交测试时不会被非法篡改。而另一类证书是开发者证书(DeveloperID)和内容证书是由Symbian操作系统所信任的根证书颁发,必须使用此类证书签名代码后才能在手机上安装。您可能会问:为什么要搞得那么复杂而设计两类签名证书?这涉及到信任机制和法律问题,简单地讲,发布者证书就是软件发布者的在数字世界的营业执照,与现实世界的营业执照是一一对应的,而数字签名也是受法律保护的,所以发布者证书只颁发给有营业执照的企业和个体工商户,同时,也一定是要由当地政府合法注册的证书颁发机构来颁发。由于Symbian只是平台开发商,并非证书颁发机构,所以,委托证书颁发机构TCTrustCenter来颁发。由于数字签名是受法律保护的,所以在此特别提醒一下:有些网站自己申请发布者证书后免费或收费代其用户申请开发者证书(俗称:制作证书)是有法律风险的,相当于现实世界中无论别人写什么,你都代人家签名,一旦出现法律纠纷,是由签名人来承担法律责任的。千万不要为了网站积聚人气或为了挣点小钱而冒承担法律责任的风险。对于第二类证书,无论软件开发商采用哪种签名方式,实际上都是要先使用发布者证书签名其代码,通过测试后(快速在线测试或通过第三方测试),再由SymbianSigned系统读出其证书中的软件发布者信息,使用Symbian移动操作系统所信任的根证书重新签名其代码,这样就可以正常安装了。使用开发者证书、内容证书或做第三方测试都是一个重签名过程。可以看出:两类证书具有不用的功能,完成不同的角色。发布者证书是基础,相当于现实世界中公司开业必须先申请营业执照一样,而软件开发商可以根据软件使用能力要求的不同而选择合适的签名方式。下面以CertifiedSigned为例,说明整个签名过程。而OpenSigned和ExpressSigned与CertifiedSigned不同的是:前两个实际上可以认为是软件自测,而后者是通过第三方来测试,更具权威性,具有更多的能力。SymbianSigned认证(CertifiedSigned)主要流程如下图2所示,首先在Symbiansigned.com网上注册用户,再申请购买TCPublisherID(TC发布者证书),再签名SIS文件,再提交已经签名的文件给SymbianSigned指定的测试公司测试,测试通过后从Symbiansigned网站取回由测试公司重新签名的文件,就可以部署到手机中安全运行了。三、小结S60第3版的应用软件是必须数字签名才能运行的,是强制要求,是为了确保手机不会被恶意代码所侵害,为了保护用户、软件开发商和手机制造商的权益。请注意:数字签名与测试认证是两码事,数字签名是必须的,而测试认证不是必须的,只有您选择CertifiedSigned签名方式才需要通过第三方测试公司测试,其他方式为自测。可以看出,正是由于Symbian移动操作系统具有完善的安全机制,所以,全球领先的手机制造商诺基亚、索爱、摩托罗拉、三星都已经采用了Symbian操作系统,只有具备完善的数字签名机制才能确保手机安全。而目前所有国产手机都没有采用类似安全机制,这就制约了国产手机向高端发展。可喜的是,据笔者了解,第3代手机标准TD-SCDMA已经开始开发类似安全机制,从而将为国产手机向高端发展提供了安全保证。