Categories: Lang-CN | S60
This page was last modified 11:45, 7 December 2007.
SIS数字签名
From Forum Nokia Wiki
在基于Symbian操作系统的S60平台上我们往往必须对SIS进行数字签名,否则所安装的应用会被当作非受信(Untrusted)的应用对待,2版中会提示用户是否安装,而3版中连安装都会出现问题。只有签名的应用才能被当作受信(Trusted)的应用。
数字签名(通常是用密钥)作为信息安全的工具,诞生已经很久了,其主要作用是表明信息所有者是谁以便该所有者对此信息产生的一切后果负责。
SIS作为信息产品,也就是某个应用的安装文件,同样必须表明其开发者是谁,是否经过某个机构的认证而安全可靠,这将同时保护开发者和使用者的权益。
由此,对SIS数字签名需要两样东西,证书(.cer)和密钥(.key),它们又分为自签名和机构签名:机构签名所使用的是认证机构提供的证书和密钥;而自签名的证书和密钥通常由SDK的makekey工具生成,但用其签名后的SIS在3版中的访问权限会受到限制,机构签名的应用权限要多一些。
下面以各版本SDK中均有的HelloWorldBasic为例介绍一下用MSDOS命令行自签名的过程,总体上分为两个步骤。假设应用建立真机平台目标类型成功,进入工程的sis子目录,
1.制作证书和密钥
2版——makekeys -cert -dname "CN=cn CO=co" helloworldbasic.key helloworldbasic.cer 3版——makekeys -cert -password helloworldbasic -len 2048 -dname "CN=cn CO=co" helloworldbasic.key helloworldbasic.cer 或者使用createsis工具, createsis create -cert helloworldbasic.cer -key helloworldbasic.key -pass helloworldbasic helloworldbasic.pkg (以上制作过程需输入随机字符串)
2.签名
2版——在.pkg文件中的(0x101F7960), 0, 0, 0, {"Series60ProductID"}后加入
*"helloworldbasic.key","helloworldbasic.cer",KEY="helloworldbasic"
然后makesis helloworldbasic.pkg便会生成自签名的helloworldbasic.sis
3版——先makesis helloworldbasic.pkg生成未签名的helloworldbasic.sis
然后signsis helloworldbasic.sis helloworldbasic.sisx helloworldbasic.cer helloworldbasic.key helloworldbasic
或者使用createsis工具,
createsis sign -cert helloworldbasic.cer -key helloworldbasic.key -pass helloworldbasic helloworldbasic.sis helloworldbasic.sisx
机构签名与自签名不同的是,证书和密钥是开发者向机构申请的,不同的机构有不同的方法,这里就不一一介绍了,其它的步骤均相同。
