20070423

Symbian S60v3软件自签名的步骤与理解

Author:  WinkCategories:  Cellphone, SoftwaresComments Off

因为Symbian S60v3系统安全的设置,随机启动的程序必须通过官方的认证,但并不是每个开发者都有能力通过官方认证。通过认证的软件大多数为保护段UID,所有对保护段UID的汉化和破解在很大程序上也依赖证书。虽然不可能破解官方认证,但是可以为我们的手机申请一张免费的证书,绑定自己手机的串号,不过只适用于自己的手机。软件自签名最实用的例子就是就是为本身支持自启动的程序加上自启动功能。

最开始,我们需要一个Symbian Signed的帐号。进入Symbian Signed的注册页面,填写好必填项,需要注意的是,提交前必须点击“View legal agreement”按钮,并且在弹出的页面中的末尾点击“I Accept”。

下载Symbian Developer Certificate Request v2.0汉化版RapidShare分流地址),解压并执行其中的DevCertRequest.exe文件,开始制作申请证书文件。首先设定输出文件的路径及文件名,在第二步“证书信息”中,“ACE证书”一项选否,“密匙文件”选择和DevCertRequest.exe文件同目录下的key.key,由于该key文件没有设置密码,所以“密匙密码”一项勾选“没有密码”。在第三步“输入个人信息”中填好相应信息,进入第四步“手机串号”。在这一步中,首先要在“串号”项中添加自己手机的串号,然后将“程序功能”左边的功能项全部增加到右边,进入下一步,确认信息无误后,点击“完成”生成文件。

接下来就要正式开始申请证书了。进入Symbian Signed,使用刚才申请的帐号登录。点击“My Symbian Signed”标签,再点击左侧导航栏中的“Developer Certificates”菜单并选择“Request”,正确填写验证码并选择刚才所制作的文件,点击“Send”上传。稍等片刻之后,网站已经根据上传的文件生成了证书文件,点击“Download”按钮,将扩展名为“.cer”的证书文件下载到本地硬盘。

最后的步骤就是将需要自签名的软件重新打包了。将下载下来的证书文件重命名为cert.cer,移动至刚刚解压的Symbian Developer Certificate Request v2.0汉化版同目录下,并且将需要签名的sis软件也更名为temp.sis放至这里,执行Signsisx.bat文件,就可以得到已经签名的sisx软件了。

可是为什么很多软件需要先签名才能安装呢?

首先要知道什么是非对称加密系统。非对称加密系统中,有两个密钥:一个是公钥,一个是私钥。公钥是可以向一组用户公开的一个密钥,其实就是一个大的素数。私钥只有个人拥有,其他人不能盗取。私钥其实也是一个大的素数。

公钥是拿来加密用的。比如,A君想发信息给B君,B君通过安全途径发给A君公钥,A君用公钥将他要发给B君的信息进行加密运算,然后再通过网络发送加密后的密文给B君。虽然有人能盗取这个密文,但他不知道私钥,无法解密,而B君则可以用私钥进行解密。

私钥则是用来签名的。比如,A君要发布一个公告,他就用自己的私钥对公告进行加密运算,然后发布出去,而看公告的人则用公钥对公告进行解密运算。如果可以解密,则证明该公告是A君发出的,也就相当于验证了签名。

因此,公钥和私钥都有两个作用:公钥用来加密和验证签名,私钥用来签名和解密。

那么在Symbian S60v3的签名中又是如何运用的呢?其实私钥就是包含在“.key”文件中的一个素数,可以是1024bit长,也可以是2048bit长,当然越长越安全些。公钥也就是包含在“.cer”文件里的一个素数。

如果想要软件能用到系统的功能,比如自启动、访问系统文件等等,就需要向Symbian申请证书。有两种方式:第一种方式是对于个人开发者。Symbian发一个证书给开发者,该证书包含了开发者手机的IMEI串号,因此这种方式签名的软件只能安装到该IMEI串号的手机上,也就是上面所述的用法。第二种方式是针对商业软件。开发商业软件的组织将软件提交至Symbian测试中心进行测试,通过的话便由Symbian进行签名,之后该软件就可以发行了。这种方式签名的软件,可以安装到任何手机上,并且能够访问系统的关键API功能。

在刚才的生成证书的步骤中,“Symbian Developer Certificate Request”是Symbian用于收集开发者信息的工具。它所生成的“.csr”文件,包含了申请第一种证书方法中所需要的各种信息。提交到Symbian网站上后,Symbian根据这些信息发给开发者一个证书,里面包含证书的有效期(一般半年)、证书的算法、存诸格式、IMEI串号、证书的签名程序的能力(比如自启动、访问系统文件、访问网络等)等等。有了证书和私钥,便可以对一个新开发的软件进行签名,有效期一般也是半年。

2007-06-27的补充:最近使用之前制作的cer文件一直无法签名成功,即使使用了3G365论坛中提到的信安易签名工具也于事无补,不少好用软件无法安装,很是郁闷。无意间发现BiNPDA发布的一个0day EDA的包里竟然带了他们所作的sign toolRapidShare分流地址)。当然了,其实和信安易那个都是差不多的,只是个GUI而已,但是主要我觉得可能是当初用的key有问题。于是这次我使用BiNPDA的key重新生成了一个cer文件,这次竟然成功了,功力果然不一样啊!:D

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed.

Back to Page Top