本报第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表认证摘要是否一致,如果一致,则表明此代码在传输过程中没有被篡改,从而可以确认代码的完整性。 从以上过程我们可以看出,软件代码签名的验证机制被用来检查签名证书是否由操作系统中的受信任的根证书颁发机构颁发,否则无法通过验证;代码签名后不仅保证了软件开发商的真实身份,而且还保证了代码的完整性,以免代码被病毒干扰和被非法篡改;只有使用了操作系统受信任的证书颁发机构颁发的代码签名证书签名的代码才允许下载。 |