Symbian S60v3软件签名解析
2010-07-04 15:53:00 来源:WEB开发网四 给软件签名的过程
1.用SHA-1(安全散列算法)对要签名的软件产生一段数字标识(也叫做HASH或者摘要)。
2.用key文件(自己的私钥)对这个数字标识进行加密。
3.把这个数字签名和证书里的两段内容一起附加到这个软件的头部。
五 软件安装的过程
1.手机里有个RSA的公钥,这个公钥就是上面提到的verisign公司的 RSA算法的公钥,它是根CA证书,在手机出厂之前就已经预装到系统里了,这个公钥验证证书里第二段内容是verisign公司的数字签名。如果安装时失败则手机显示“证书错误,请与应用程序供应商联系”。如果成功的话手机系统就会信任这个数字签名里包含的Symbian的一个RSA公钥。因为有且仅有公钥才能验证私钥的签名,所以就可以判断这个信息的确为 verisign公司发布,绝无伪造和篡改过,所以程序可以信任那个Symbian的RSA公钥。
2.有了一个可信任的Symbian的RSA公钥,就可以验证开发证书里的第一段内容,Symbian的数字签名。如果失败还是显示“证书错误,请与应用程序供应商联系”。成功的话手机系统就可以信任里面的一个公钥(PublisherID 是RSA公钥),还有这个签名中包含有效期、申请的能力、开发者的资料、包含的授权的IMEI号码等信息。
由于这些信息是用Symbian的RSA私钥签名的,有了可信任的Symbian的一个RSA公钥,就可以完全说明这些信息是Symbian发布和承认的。
3.有了上面可信任的资料程序会做一下几件事:
a.与当前手机时间核对有效期。如果超出则显示“证书过期”。 有这样的问题我们都知道把手机时间改到有效期内就行了。
b.核对当前的IMEI号码是否包含在签名的那些IMEI号里。如果没有则显示“无法安装受限制证书”。 IMEI号没法改,否则我们就不需要提交IMEI号码来制作证书了。现在那些新手该明白为什么要提交IMEI制作证书了吧。
c.把刚才用key文件签名的那个数字标识加密的信息,用刚才信任的那个公钥(开发证书里的那个公钥,就是和key文件对应的那个公钥)
解开得到软件的数字标识,然后再次计算软件的数字标识。比较这两个数字标识是否完全相同,不同则显示软件已损坏,相同则说明软件未被篡改过和保持着完整性。
d.获取软件申请的能力和证书给予的能力。如果软件申请的能力证书没有给予则显示“没有足够权限”。
如果没有出错就开始软件的安装了。
更多精彩
赞助商链接