2008中秋祝福页 | 每日资源更新列表 | 机型论坛 | 游戏下载 | 电子书下载 | 铃声下载 | 主题下载 | 电影下载 | 收藏本页
 31 12
发新话题
打印

[公告] 新手必看,塞班证书诠释和签名详细教程

本主题由 Administrator 于 2008-6-14 15:19 置顶

新手必看,塞班证书诠释和签名详细教程

由于最近还有坛友在问"什么是签名怎么签名什么是证书怎么做证书的帖子"之类的话题,所以结合我以前发的签名帖和教程,重新编辑了这帖:<新手必看,塞班证书诠释和签名详细教程>希望新手们看了会明白。

先声明证书是用来给软件签名的,不是用来直接安装手机里的.

我的口号是:一起进步!!!


一. 什么是“签名”?
这不是教你怎么制作“自签名”的教程,这只是大致解释一下“签名”是什么意思为么要“签名”等。
     S60第三版在安全性方面做了比较大的改善,对在系统中安装运行的第三方软件有更为严格的规定。某些涉及手机软硬件安全/个人信息安全等方面的操作别做了特别的限制(比如随手机开机自动启动就是被限制的功能之一)。应用程序实现这些“被特别限制”了的功能就必须获得“签名。也就是说要有人来为这个操作的安全性负责!为经任何签名的程序不能安装运行。签名(SIGN):就是在应用程序的特定字段写入特定的标记记信息,表示该软件已经通过了签署者的审核。签署者对该软件的安全性负责。

其中签名又大致分三种:

1.Symbian签名。

即Symbian (塞班)手机操作系统官方签名。通过了Symbian安全认证的软件才会获得Symbian的签名。该类软件有最高的安全级别。在手机上能正常安装/运行/且能实现软件提供的所有功能。获得Symbian签名需要软件作者直接和Symbian官方打交道,基于多方面的原因,并不是所有软件的作者都有能力获得这个认证的。

2.作者签名

软件作者在发布软件的时候就对软件进行了签名。这类软件可以在手机上安装运行(可能会遇到安全性警告,可跳过即可)。但不能实现那“被特别限制”了的功能。如果某软件根本不涉及这类功能,那么软件作者也完全可能自己签名就行了。还有一种可能就是软件虽然有某部分功能属于“被特别限制”的范围,但并不是主要功能。软件作者也可能发布一个“作者签名版”这样的版本可以正常使用大部分功能,但会丧失一些特定的功能。如“来电通”软件就有这的版本,几乎全部功能都可以使用,只是不能开机自动启动。

3.用户签名。

严格来说这个应该是属于“开发者签名。“以为Symbian为开发者提供一种“开发证书”是与作为测试用的机器的IMEI(串号)码挂钩的。使用这种证书签名的软件只能在该IMEI码对应的机器上使用,不能用语别的机器。我们所谓的自签名其实就是利用了这个方式,说白了就是你说你是开发软件的,你提供你测试机器的IMEI码,SYMBIAN办法给你一个开发证书/你用这个证书签名你的“事实软件”。你自己对你自己的“开发行为”负责!如此而已。另外,开发证书自犯法日起有效期为半年,但在证书有效期内签署好了的程序的使用时限是没有限制的。再多余积聚,正规的申请“开发证书”的补助是这样的(集体操作请看相关的教程,这里大致说一下步骤)
1.去SYMBIAN官方网站上注册一个户。
2.下在一个人证请求工具:Devcert Request
3.在PC上安装并余兴Devcert Request工具,堵入你机器的IMEI码,生成一个,CSR文件,该文件实际上是你的IMEI码通过特定算法形成的识别文件。
4.重新登陆SYMBIAN官网,提交(上传),CSR,文件,SYMBIAN即会根据该识别文件生成一个开发证书。
5.下在的到的开发证书。利用签名工具将开发签名写入应用程序。
     有人问SYMBIAN官网为什么不认用户直接在网站山输入你的IMEI码然后就直接下载开发证书。还要一个工具到本地来形成一个识别文件在上传这么麻烦。原因是什么?是保护用户隐士。IMEI=International Mobile Equipment Identity=国际移动设备身份证。这就和你的“居民身份证”类似。这东西是属于隐私范围的,Symbian不在网站上直接输入该信息是处于保护用户隐私者考虑的。用Dercert Request形成的。CSR文件是由IMEI信息加密而来的,但不能通过任何手段反算出用户的IMEI码。

二. 为什么要签名: 

   签名可以使软件顺利通过手机的数据信息验证,即证书验证;

(一)签名可以防止病毒文件;
(二)签名可以使部分软件随着手机的启动而启动,不需要每次开机都要去打开程序;
(三)签名可以简化部分软件的注册过程,即不需要通过注册机计算注册码;
(四)签名可以破解部分软件(由于在汉化或者破解过程中损坏了原有的官方证书);

三. 什么是自签名程序

  因为第三版系统安全的设置.所以随机启动的程序必须通过官方的认证.但是不是每个开发者都有能力通过官方认证. 通过认证的软件大多数为保护段UID.所有对保护段UID的汉化和破解在很大程序上也依赖证书.   对于程序需要自动启动的,或者是破解需要证书的,目前:有很多这样的软件,本身有证书,但是破解之后,就失去了原官方通用证书,我们要使用,必须要自行签名,需要你来自己制作签名版本。比如:来电通,来电大头贴,古墓丽影,TY1ScrSaver,Gnubox,handy taskmanX 屏幕旋转 等等软件、游戏。  所以本教程应该是你所必须要学习掌握的.我们可以开发者的身份去申请一个开发调试用免费证书,绑定自己的手机IMEI号码,安装于自己的手机就可以了。官方规定:证书只能绑定一个手机串号.做个属于你的证书是非常必要,今后相当多的软件需要你自己的证书。 所以请务必申请后好好保存.  教程步骤很详细:其实过程并不复杂,第一次申请是麻烦一些, 以后打包就简单了.流程大致是, 先安装一个程序, 生成一个申请文件,然后去官方网站注册一个帐号登陆进去, 提交你的申请文件,就以得到你的证书. 然后就可以用这个证书打包那些未签名的软件了.

四.什么是证书?

    由于S60第三版的手机为了提高安全性,所以某些比较高的权限(比如自启动),需要通过SYMBIAN网站来申请证书来获得,而且是与手机的IMEI号是一一对应的。这就是我们要申请证书的原因。需要提醒的是,证书并非是对应某一个软件的,而是有一个有效期(免费申请的一般是半年,从12月12号开始是3年了),在有效期内都可以使用,不管签什么软件都可以。所以证书非一次性,请大家妥善保管自己的证书


关于签名的教程请看在五楼

[ 本帖最后由 cycgc 于 2008-4-22 00:32 编辑 ]
本帖最近评分记录
  • 冰@点 +3 谢谢整理 2008-4-22 00:37

TOP

学习,支持,楼主,辛苦了,沙发,我坐了

TOP

板凳我座了。感谢楼主分享!学习学习!

TOP

是地毯吧,强烈支持C版。

TOP

这层楼是关于签名教程的

由于今年的2月份半开始Symbian取消了免费的个人证书制作,于是免费的个人证书制作方法我就不集合在这帖里了;取而代之的是Symbian的是在线签名和Publisher ID是要购买的


在线签名

对于没有 Publisher ID 的开发者, 我们将在下周开始推出在线签名测试版.
鉴于目前服务器的签署能力不能满足实际需求,在实际使用中可能会受到一些约束.我们正在添置新的硬件以增加在线签名的服务器的工作容量(不过这需要几周的时间)
同一时间能服务的用户数是有一个最大限制的.
下周开放的在线签名测试版有如下限制:

在线签名使用说明: here
于在线签名测试版的初期,可能只是每周1-周5 的09:00-15:00(英国时间) 提供服务.(北京时间: 周1-周5  17:00-23:00)
在服务器扩容完成之前,都会有一个最大请求数限制,如果请求数超过限制(估计会),某些用户可能会收到在线签名不可用的提示.
正如所有的测试版一样,提供的服务可能会存在一些性能和/或功能方面的问题,这类问题可能导致服务器时不时掉线.
注意:在线签名不能使用"Protected Range"里的 UID来签名 SIS, 除非你使用的Email地址和你创建的帐户UID的Email地址匹配.
如果你企图在短时间内连续签名同一个 sis文件,你得到的服务将被减慢,这是为了让大家都能公平地使用.
签名了的sis 文件将只能在输入的IMEI(序列号)那一台机器上安装,有效期3年.
签名了的sis 文件在安装时将收到 该程序只为开发目的 的通知
签名了的sis 文件能使用除了CommDD, MultimediaDD, NetworkControl, DiskAdmin, DRM, AllFiles, TCB 以外的所有权限. (其实就是13个权限,同以前的普通开发证书___译者注)


Publisher ID是要购买的。也就说,目前只为收费用户开放,普通开发证书目前暂停发放。

最新推出了 Open Signed Online (在线签名), 将于下周开始测试.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

附:Symbian Signed 的签名机制:

Open Singed (开放式签名) 下又分两种情况:

1、Open Singed Offline 离线签名,这个就是我们以往用的办法,去 Symbiansigned 网站申请证书,然后使用得到的证书在本地签名。
2、Open Singed Online  在线签名,意思是把你需要签名的程序提交上 Symbiansigned 网站,同时提交你的IMEI(序列号),签好以后下载下来用就是。

Open Singed 两种方法签好的程序都受IMEI限制,只能在指定IMEI的设备上用。
Open Singed Offline 需要Symbiansigne 用户帐号,Open Singed Online 不需要帐号

Express signed (快速签名)
将待发布的应用程序 (sis文件) 先使用自己的 Publisher ID 制作的证书离线签名,然后提交这个应用程序到 Symbiansigned 网站由 Symbian 使用 B型根证书再签名。
这样签好的程序没有 IMEI 限制,谁都能用。这种方式 Symbian 不负责测试,但可能随机抽检。程序没有资格使用 Symbian OS 标志。提交签名的程序不收费。

Certified Signed (鉴定签名)
将待鉴定的应用程序先使用自己的 Publisher ID 制作的证书离线签名,同时包括开发该程序时的PKG文件、用户手册等一起提交 Symbiansigned 的测试室,由他们测试,通过后使用Symbian B型根证书签名。
这样签好的程序没有 IMEI限制,可以使用 Symbian OS 的标志。每个被提交鉴定的程序收费 20美元。

Symbian在线签名教程



Publisher ID签名软件+教程


[ 本帖最后由 cycgc 于 2008-4-22 00:34 编辑 ]

TOP

这个虽然对我的小6没有太大的作用, 不过对其他版友还是很有好处的,前来支持一下吧  ^_^

TOP

PID证书使用上的不同之处

这个比较是相对于以前的个人测试开发证书


publisherID 帐号做的证书   这里简称 PID证书

publisherID :  发布者 ID,有这个 ID 意味者是被承认的商业软件发布者

publisherID 的费用是 200美元/年



1.制作方法的不同

PID证书制作必须用publisherID帐号来申请, publisherID是   200美元/年的付费帐号
该账号购买需要营业执照等材料登记 ,所以只能是少数人制作了.

其实制作流程类似,就是PID证书能加入更多的IMEI号,一个证书可以支援更多的设备

2.内涵不同

PID证书也是3年有效期的  
    不同之处是权限比个人测试开发证书13个权限多4个权限  有17个权限 关于权限都是什么 本帖14楼有解释, 一般人看了也看不懂  比如我.
     还有个不同是PID证书内可以添加多个IMEI号码   可以添加 1-1000个串号  也就是说最多可以有1000部手机共用一个证书
     文件大小也不同了,由于内含很多串号 体积也达到了20KB左右了

3.签名方法稍有差别

目前论坛的PID证书并不能在手机端签名, 因为手机签名软件的某种限制,签名后是无法安装的

其他签名方法只要是KEY文件匹配 是可以在电脑上签名的

4.适用的手机软件范围不同

PID证书建议给     安装时提示证书错误的软件安装 (提示证书错误,是该软件上没有被签名的提示),即给没有证书的软件签名      PID证书不能签已有证书的软件 包括公共证书也不能去覆盖

简易判断方法:没有签名就安装一次  提示证书错误的  就是软件本来没有证书的


   一个奇怪的现象 PID证书签名到已有证书(非测试证书)的软件上    会提示权限不足的提示,这个软件不能被签PID证书.

很多人见软件就签名,其实提示证书过期  正确的解决方法是调整手机时间到软件的有效期内安装 安装后调回

目前A4最新版还必须是PID证书才能用

5.误区

PID证书就是PID证书 不是什么高权限证书     高权限证书这个概念是相对概念   网友想出来的  
其实PID证书已经是公开证书里最高的权限了   再高权限就没有证书下载了

PID证书也不是万能的,有些软件需要的权限高于证书所能给予  如内测A4  19个权限  证书只有17个.想用内测的要么破解 要么去参加内测      

还有些软件权限特意把所需权限弄得很高 可以防止别人破解用测试证书签名使用    但是还是被破解了  只不过要先安装原版

证书的使用不当,造成不能签名或者不能安装,并非是哪里做的证书不能用,而是你不会用

证书使用 只要成功安装一次软件,即可表明证书没有任何问题了,如果是XX软件能用而XX软件又不能用  请检查软件

手机证书验证只在安装软件时,安装成功后再出问题就和证书无关了

[ 本帖最后由 cycgc 于 2008-4-27 12:23 编辑 ]

TOP

你了解证书吗?帮你解开证书。
一句话概括证书。
用来和 key文件 配合了给 塞班手机软件 做数字签名的一个文件。
给软件做数字签名要用到 key文件 证书文件 和签名软件(这个有电脑版也有手机版)
证书的原理就是基于数字签名技术。

数字签名,就是用密码学的方法实现的签名。(此签名是无法伪造和可以确定此签名的来源)

-----------------------------------------------------------
下面是详细讲解。小白可以不用看了。看了会成为高手的。

写帖子的时候尽量为让新手看懂。写的多了点。但是还有没说清楚的大家提问好了。

老鸟只要看信任传递过程就能猜的差不多了。

证书无疑是s60 3rd里最热门的话题。他是装很多软件基础。

分解一个证书



证书是个文件,不错。但这个文件里面是什么呢?也许早有机油用按文本文件的格式打证书打开看过。
看到里面是一些没有意义的ACSII字符。并没有其他什么特别的地方。而且是分成两段的。那么这两段,
到底是什么内容呢。现在我们就来解答这个问题。

首先我们要说这两段是两个不同的证书。如果你分别把它们保存成两个单独的cer文件的话。

1.第一个cer我们用BASE64解码得到如下信息
-----------------------------------------------------------------------------------
    Data:
        Version: 3 (0x2)
        Serial Number:
            92:b1:12:96:14:7c:f4:78:f7:0b:8d:a5:4e:47:30:11:80:65:7c:a9:9e:24:eb
:8f:83:92:c7:1c:b1:00:39:5d:cb:56:85:c1:c8:63:74:45:8a:65:3c:6a:b3:69:df:de:a5:4
e:1c:9c:f2:58:77:f8:4f:58:a4:49:57:4f:ab:eb:6a:11:a2:6f:44:29:8a:ac:94:5c:85:06:
98:e4:43:08:80:63:85:95:67:1a:29:8c:ce:60:26:d8:61:93:5f:0c:34:ca:71:e3:28:a1:c5
:4c:7f:c2:c5:00:88:ad:35:86:57:47:ab:e3:06:f5:47:72:32:bb:c6:6d:32:95:9c:83
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=GB, ST=London, L=Southwark, O=Symbian Software Limited, CN=Sym
bian Developer Certificate CA 280205A/Email=developercertificates@symbian.com
        Validity
            Not Before: Mar  7 14:42:50 2008 GMT
            Not After : Mar  7 14:42:50 2011 GMT
        Subject: C=CN, L=dongguan, O=Dongguan Dalang Soubao Mobile Phone Shop, O
U=Symbian Signed PublisherID, CN=Dongguan Dalang Soubao Mobile Phone Shop, ST=gu
angdong
        Subject Public Key Info:
            ublic Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:c0:d3:d2:2e:81:91:7e:ee:5d:42:b5:73:3c:7b:
                    a8:74:62:41:67:cf:44:96:35:49:ad:30:6c:2c:1e:
                    53:5e:0a:97:a6:3e:c3:89:bb:93:e1:89:57:21:e0:
                    d8:75:7e:e9:07:c3:47:c1:45:9d:56:0f:6c:5c:0c:
                    5e:75:fb:4d:92:4a:4e:e8:05:36:bf:82:c8:5f:65:
                    fc:6a:15:c1:9b:37:34:82:36:b7:16:6d:1c:22:03:
                    5b:16:67:3d:9c:98:f7:a7:69:53:5f:2f:d4:da:bb:
                    33:ee:78:4f:47:8b:b3:5d:09:4a:c8:f0:e4:ea:0f:
                    ea:c7:06:00:b7:af:32:80:b3
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            1.2.826.0.1.1796587.1.1.1.1: critical
                0.!...256255016073926..654835019155432
            1.2.826.0.1.1796587.1.1.1.6: critical
                ...}.......
    Signature Algorithm: sha1WithRSAEncryption
        bd:19:4b:2c:1e:ef:38:15:43:e3:7b:06:da:f4:31:aa:9d:38:
        c1:61:ea:b3:ea:c5:00:03:2f:dc:69:b5:40:f9:23:49:89:6a:
        50:70:61:9b:6c:fe:77:52:46:20:90:53:49:f9:fc:dd:db:81:
        a3:0e:b9:95:60:08:e3:d1:18:ac:7d:92:70:25:41:16:ef:28:
        b9:21:51:12:09:85:0d:55:98:89:d3:e9:66:c5:32:9e:ec:f2:
        f1:2b:2e:6c:6b:c5:2c:a2:f3:78:0d:cb:d6:e3:5a:ab:3a:d1:
        03:2e:93:f1:cd:8a:8c:26:d6:d5:07:fc:92:44:1c:60:6a:bc:
        3c:04
-----------------------------------------------------------------------------------
里面是些基本的信息,有证书的有效期。发布证书的机构 symbian。授权给的公司
Dongguan Dalang Soubao Mobile Phone Shop 。还有授权使用的imei号码(这里有几百个imei号码
为了写帖子方便故此省略了)。这样也能看出是个证书是一个用publisherID做的证书。
那个...}.......实际是说的这个证书所具备的能力。(关于能力的问题以后详谈了)

这里 RSA Public Key: (1024 bit) 开始的这段
实际是Dongguan Dalang Soubao Mobile Phone Shop公司的
publisherID所对应的RSA公钥。(RSA是非对称密钥密码,有一对公钥和私钥组成,用RSA公钥
加密的信息必须用RSA私钥才能解开了的,1024bit是密钥的长度,1024bit特的RSA密
钥是很安全的,1977年创造RSA算法开始1024位的密钥到今天从未被破译过。随着计算机发展
保守估计1024位密钥还能撑个5-10年。如果想伪造签名的,看到这里可以歇歇了,工行的数字证书
是2048位的破解这样的密钥直接没戏。目前有记录的破解只有512位的和307位的,都是联合网络的计算机化很
长时间破解的。为什么叫RSA 这是创造这个算法的三个数学家的名字的字母,保守估计)
也许有些人已经猜到了这个RSA公钥对应的RSA私钥,就是我们签名用的key文件。
的确和这个证书对应的key文件就是这个RSA私钥。他和这个的RSA公钥,组成了
RSA的密钥对。

Signature Algorithm: sha1WithRSAEncryption
文件末尾的这段是数字签名的开始。(数字签名:用密码学的方法来验证发布信息的正确性,与发布信息的来源。)
这里是symbian对上面信息的一个数字签名。
这里用的算法是SHA-1 和RSA

SHA-1 是安全散列算法。
这个算法用于对一段信息产生唯一的一个数字标识。
这段就是用sha-1算法对上面的信息计算得出一段数字标识。
然后用个versigin公司的RSA的私钥对这段标识进行加密得到的密文。

所以要验证上面信息的正确性和完整性只要
用sha-1算法对上面的信息计算得出一段数字标识。
用versigin公司的RSA的公钥解开这个密文得到一段明文
比较这段明文和数字标识的一致性就能验证上面信息的是否是由symbain发出的。
因为如果上面的信息被修改过用sha-1产生的数字标识和明文就不会一致。这样数字签名就失效了。
而且能用symbian的RSA的公钥解开的密文必须要由symbian的RSA的私钥才能做出来
而symbian的RSA的私钥只才symbian的签证专用的服务器里才会有的。所以其他人
是无法伪造这个数字签名的。
如果签名正确就足以证明上面信息是symbian发布的。绝不是其他人发布的。
而且上面的信息保持着完整性和正确性。


2.另一个cer文件解码如下
-----------------------------------------------------------------------------------
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            76:34:a0:91:30:9a:16:7d:9d:7f:c2:4b:64:6e:4f:f0
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=US, O=VeriSign, Inc., CN=VeriSign Identity-Based ACS Root for
Symbian OS
        Validity
            Not Before: Mar  2 00:00:00 2005 GMT
            Not After : Mar  1 23:59:59 2015 GMT
        Subject: C=GB, ST=London, L=Southwark, O=Symbian Software Limited, CN=Sy
mbian Developer Certificate CA 280205A/Email=developercertificates@symbian.com
        Subject Public Key Info:
            ublic Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:fa:65:c9:d6:b4:b9:1a:8d:ff:10:28:62:a3:d8:
                    fd:ad:e4:ab:56:c5:2a:99:92:04:f9:c6:8c:cc:42:
                    33:04:9a:f6:c3:f1:1b:51:8b:72:2a:f0:58:f9:11:
                    2f:8e:a5:39:88:17:3a:e5:da:7f:25:bb:a7:ce:6b:
                    85:1a:78:59:4e:60:a8:75:71:f3:ae:fa:74:23:c8:
                    0d:32:35:91:85:68:d7:65:b0:73:be:77:fb:f5:10:
                    87:0a:f2:b1:c6:f1:00:d3:0d:64:83:57:6f:9d:ff:
                    d8:21:fc:eb:2e:20:8e:73:b3:56:95:97:6c:f6:dd:
                    f4:16:03:31:ca:bf:b8:22:d1
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                0.......
            X509v3 CRL Distribution Points:
                0g0e.c.a._http://onsitecrl.verisign.com/offlineca/VeriSignIncVer
iSignIdentityBasedACSRootforSymbianOS.crl
            2.5.29.37:
                0
..+.......
            X509v3 Key Usage:
                ....
            X509v3 Subject Key Identifier:
                ..::......"..H......./
            X509v3 Authority Key Identifier:
                0....B...[.T.!.zn.Y.K..*
    Signature Algorithm: sha1WithRSAEncryption
        2f:e7:cc:9e:d3:2d:aa:fe:df:dd:8f:1a:47:0c:61:ce:7d:c5:
        91:24:13:00:1a:ca:ae:54:f9:e7:ba:9c:f6:93:30:a1:fb:fe:
        88:6f:ed:1f:d9:31:53:78:c6:2a:63:57:ff:8f:b4:25:af:c4:
        c7:d8:ea:4e:f3:76:5c:b9:b9:62:3a:fc:32:6f:8c:db:44:68:
        ba:72:40:cb:f9:af:31:ff:a9:4d:88:b9:25:a1:1f:22:5c:f5:
        94:be:60:15:89:b4:f5:ee:81:51:38:18:5e:f2:dc:43:c6:69:
        ee:68:67:ff:66:30:68:73:5c:25:cb:92:b0:21:0e:11:fd:ab:
        df:3d:fe:57:4d:5f:20:13:44:42:e4:02:43:a4:fb:44:c3:3b:
        8b:32:47:7c:95:72:39:71:c5:1f:b1:c7:52:29:17:91:90:bd:
        76:e0:ff:aa:51:e5:bd:a5:96:fd:62:7a:ce:c2:58:f4:91:ed:
        8f:30:97:5d:f3:cc:55:76:c3:aa:60:60:88:e8:a6:a6:55:f8:
        dd:04:23:ac:bd:d2:c4:b0:a8:08:4f:76:3b:b1:49:35:80:19:
        40:8f:4f:2b:a9:c6:bf:9b:75:60:56:d0:b4:5c:b1:97:16:35:
        7d:b0:fa:61:35:5b:df:a9:a0:0f:5a:15:70:2e:63:bf:25:17:
        f8:52:7c:13
-----------------------------------------------------------------------------------
里面是一些基本的信息。里面有使用的算法。以及发布者的信息。授权者的信息。
这个证书的有效期2005-2015
其中RSA Public Key: (1024 bit)开始的是symbian的RSA的公钥。

最后    Signature Algorithm: sha1WithRSAEncryption
开始的是versigin公司对上面所有信息的数字签名。使用的算法是sha-1 和RSA
这里有versigin的对应的RSA公钥同样能验证这个数字签名的有效性。

那个这个公钥在哪里呢?
这个公钥在你的手机里。(下面讲手机安装软件时会重新提到的)


由于这个证书是verisign公司发给symbian的。
所以2005-2015里所有制作的证书包括个人免费。publisherID做的证书
这些证书里的第二段是完全相同的。



一般来说versigin的私钥在versigin的公司的签证服务器里。
symbian的私钥在symbian公司的签证服务器里。

以上是关于一个证书里的信息。
当然这个这个是例子是用publisherID做的证书。
以前还有个人开发证书。
这两个证书的区别。做过签名工具可能知道
以前个人开发证书用的是DSA算法 而publisherID用的是RSA算法。
其他都是一样的。
所以以前个人签名用的key是DSA算法中的私钥,DSA算法的公钥还是在个人证书的第一部分。
现在的publisherID的key是RSA算法中的私钥,RSA算法的公钥也是在个人证书的第一部分。
个人证书和publisherID除了算法不同外还有个区别是
publisherID有17项能力。比个人证书多4项。(关于什么是能力请看下面)

这里顺带说一下key文件也是BASE64编码的。

TOP

证书的产生


我们知道一个离线签名的证书需要用symbain的申请工具DevCertRequest.exe
提交必要的信息如imei号码 key文件(publisherID还需要提交一个特殊的证书,开发商证书)
申请的能力变成一个csr申请文件。
csr上传到塞班的服务器上。让后就变成cer文件下载下来。这个文件就是证书了。
那么csr文件是如何变成cer文件的。cer和csr的关系是什么。

首先csr 里面含有的 申请的imei号。(个人开发证书只能申请一个imei,publisherid能申请小于1000个imei
还有设备开发商能申请大于1000个imei)开发者的信息。(个人卡发证书是随便填的。publisherid这里的信息
是从ACS证书里获取的)申请的能力。这些信息。让后这些信息被 DevCertRequest.exe这个软件用key(私钥)文件加密了。
同时附带上和这个key(私钥)对应的公钥。个人证书采用的是dsa算法。他的公钥是靠key文件产生的。
而publisherid是采用的rsa算法,和他对应的公钥是在ACS证书中。
所以csr文件就是有 一段被key文件加密的信息 和一把打开这些信息的公钥组成的。

让后csr长传到symbiann服务器上。
如果是publisherid做的csr在这里会多个验证过程
先校验acs证书。
(acs证书和我们用的签名证书第一段差不多。但是acs证书了是
开发真的信息。没有串号。而个人证书里除了开发信息还有串号。
虽然就这么一点点区别但是那最后的bymbian的数字签名是不同的。

以前这个验证可能存在着漏洞,导致同样有publisherid开发帐号的
可以冒用别人的publisherid的key和签名证书就能做出证书来了,
这个在opda论坛上能看到,他的确用两个key做证书的。他做的证书
有两种一个是属于南通某公司的。一个属于广东某公司的。
可能以前服务器啊对证书的验证停留在 对数字签名的有效性验证。
我们普通的开发证书有symbian的数字签名
而ACS证也有 symbian的数字签名 只是签的内容不同。
未对里面所签名的信息进行验证。以区分开这两种证书。
导致拿到别人的key和开发证书后可以用别人的名义做出新的证书。
而发现opda14号以后没用过广东的证书。而且测试也证实现在用
别人开发证书和key是不做不出新的证书来的。所以现在symbian的
漏洞填补了。他会先验证acs证书签名。然后验证这个是不是acs证书。
acs证书和开发证书的区别是 acs证书里是不会有任何imei的。
acs证书由于有数字签名的保护。所以我们是无法伪造的。

opda用多个证书为自己签名也导致 dospy和cnpda诚惶诚恐都用一定的
技术手段保护key 而opda自己却没有保护key。

这也是大家为什么现在在论坛上找不到和自己证书对应的key的原因。导致现在的开发证书不能在手机上签名。

实际现在的漏洞已经没有了。 只要不把acs证书或上传的csr泄漏出去。
别人是没法再盗用key了。(本身盗用key的意义是防止bymbian的发现后封key
这样能起到保护自己的作用)


校验玩acs证书用证书中的rsa公钥把 刚才用key加密的信息解开
(如果是个人证书就是用dsa的公钥把 用key加密的信息解开)
这样一解开也就能证明这段信息所对应的特定的开发者。
应为key作为私钥 就因该只在开发者手中。他也代表了开发者。
就如通symbian的私钥能代表symbian是一样的。我们是不能接触到这个私钥的。
当然为了大多数机油现在这个私钥实际是人手一份的。

解开之后symbian能从csr里得到如下信息。申请者的资料。申请设备的imei
需要申请的能力。和申请者手中的key私钥对应的公钥。申请的时间。
让后symbian用自己的rsa的私钥对上面的信息做了个数字签名(这步在专业服务器中进行的)
这就完成了我们开发证书的第一部分。让后再加上verisign发给symbian的证书,就是证书的
第二部分。
所以第一部分的数字意义就用symbian的rsa的私钥 对开发者的提交的imei 申请的能力
基本资料 证书有效期的 数字承认与授权。这个也是证书中的重点。每个证书这里的数字签名绝对不同


开发证书就是这样出炉的。

TOP

关于证书的能力


所谓能力就是 塞班软件需要调用手机系统资源的一种权利。
一个程序如果没有系统赋予的权利。他连成为程序的能力都没有。更不要谈成为病毒了。
把这种权利控制起来能很好的控制病毒及木马。

像这样的能力一共有20种

1.无限制:60%api

2.用户能力:无限制+ReadUserData,WriteUserData,NetworkServices,LocalServices,UserEnvironment
(一个证书什么能力都没有被签名。这样签名的软件一样可以使用上面的这些能力。这就是我们说的一部分免签名的软件
所以说面签名的软件能功能差点。如免签的来电通不会自己启动。应为上面没有可以让他自己启动的能力,像百阅和dedit
都是不要求特殊能力的。一个没有能力的普通证书签名后就能用。什么样的证书是没有能力的普通证书呢。用Carbide_ui_Theme_32_Setup.exe
做出来的20年通用开发证书。和makekeys做出来的一年测试证书。都是没有包含任何能力的证书。前者是用来给主题签名的。主题当然不需要
什么能力的啦。后者开发软件测试用的。而且这些证书根本就没有上传到symbian的签证服务器上。就不会有symbian的签名。当然也不会包括
任何能力。这些证书只是有个证书的架子罢了。但没有任何能力的证书签的软件还是可以使用上面的能力的。)

3.系统能力: 用户可以授权的能力+Location,ReadDeviceData,WriteDeviceData,
PowerMgmt,SurroundingsDD,ProtServ,TrustedUI,SwEvent。
(这是13个能力的个人开发证书)
        13项个人开发证书的能力+CommDD,DiskAdmin,MultiMediaDD,NetworkControl
        publisherID做的开发证书的能力功17项。
        
4.设备开发商的能力:DRM,TCB,AllFiles
  其中a4最高权限版需要其中的drm能力,所以即使你有上面17项能力的证书。但高权限的a4还是没法装的。
  那些a4没法装的大都是签错了版本。一般的证书只能签普通权限版的a4. 那么最高权限的a4是给谁用的?
  那个是给内测名单的人用的。那个需要在www.symbiansigned.com上填写“能力请求表单”申请获得,那个a4上
  有imei的限制的。只有你的设备的imei在a4上带有的imei列表里才能装的。那么我们把那个列表里添上自己的
  imei不久行了吗?不行,那样同样会使数字签名失效。而无法安装。
  
一下是能力的解释

能力:
NetworkServices:用于使用移动网络,例如:拨打电话或发送文本消息。
LocalServices:用于通过USB、红外和蓝牙发送或接收消息。
ReadUserData:准许读取用户数据。系统服务器和应用引擎可以自由地对他们的数据施加这一限制。
WriteUserData:准许写入用户数据。系统服务器和应用引擎可以自由地对他们的数据施加这一限制。
Location:准许访问手机的位置信息。
UserEnvironment:准许访问用户及其附近环境的实时保密信息。
PowerMgmt:准许在系统中中断任何进程或者转换机器状态(关掉设备)。
SwEvent:准许生成或者捕获键盘以及笔输入事件。
ReadDeviceData:准许读取系统设备驱动数据。
WriteDeviceData:准许写入系统设备驱动数据。
SurroundingsDD:准许访问提供外围设备输入信息的逻辑设备驱动。
TustedUI:区分”normal”应用和”trusted”应用的UI。当一个”trusted”应用在屏幕上显示内容时,一个”normal”的应用不能伪造它。
ProtServ:准许服务器应用可以用一个受保护的名字进行注册。受保护的名字以”!”开头。
NetworkControl:准许修改或者访问网络协议控制。
MultimediaDD:准许对所有多媒体设备驱动(声音、摄像头等)的访问。
DRM:准许访问DRM保护的内容。
TCB:准许在终端中访问/sys以及/resource目录。
CommDD:准许访问通信设备驱动。
DiskAdmin:准许进行硬盘管理操作,例如格式化驱动器。
AllFiles:准许系统中的所有文件可见,而且还可对在/private下的文件进行写操作。

TOP

证书的孪生兄弟key文件


证书我们知道了是怎么样的了。接下来说说证书的孪生兄弟key文件
很多机油问我这个问题为什么有了证书还要key

现在大家知道了key是ras或dsa加密算法里的私钥。他和证书里的rsa
或dsa的公钥是一一对应的。 共同完成着加密与解密, 签名与校验签名。

首先说说个人的证书的key
上面说过个人证书的key是dsa算法中的私钥。
这个key是靠一个叫makekey的程序产生的。产生时要输入随机数据。

而publisherid的key是symbian做好了之后发给申请者的。
拿到的是一个pfx文件。分解开来得到acs证书和key文件

这两个文件就是rsa算法中的公钥和私钥了。

TOP

证书与其被签名的塞班软件


大家都知道s60 一版和二版是没有证书的。
s60v3rd和uiq中一部分人软件需要证书签名后才能安装的。
有些软件则不需要签名。


那些不需要的签名的软件有两种可能。第一软件的开发商已经获得symbian认证
上面已有symbian或软件开发商的正式签名所以所以可以免签名。如来电过滤。这个没有imei限制
第二种这个软件不需要使用系统特殊的资源(不需要申请能力)。这样的软件用
20年开发证书签名后就能用。而且没有imei限制

其他申请能力而没有symbian的认证签名的软件都需要用开发证书签名后安装。
而这些开发证书是有imei限制的。
所以用开发证书签名的软件都有imei限制。只能在开发证书里包含的imei对应设备上才能安装
以前的个人证书只有1个imei。那个证书签的软件就只能装对应那个imei设备上。
现在的publisherid能签小于1000个imei。那个证书签的软件就能装在那些对应的imei设备上。
这个就是目前的publisherid和以前的个人证书的区别。所以所现在是几百个设备同一个证书。
这个证书签的软件这几百个设备都能装。而以前只能装一个设备上。publisherid做的证书是17项能力
而个人证书是14项能力。就这么两个区别。

(有人问1000个imei一个号是不是没有以前安全了。其实你用证书给软件签名就是把权限给了程序。
你是以开发商的身份使用软件的。所以安全问题symbian是不负责的。你要是把权限给了一个木马。
他当然能偷你的东西。在后台拨打电话了。所以安全方面来说两种证书是一样的。publisherid的能力多
你签给木马的话危害大点。但是我们一般是不可能傻到签个木马装装的。木马没有签名是没法进入系统的。
所以关于证书带来的安全方面的担忧有点没有必要。而且成为一个病毒最需要的三个能力symbian没有放出来
只有程序通过严格的认证提交申请表才能用使用这些能力。所以s60 3rd系统一共有20项能力。)


早有人解释设计签名的原因并不是为了给机油没事找事。
而是以前的1,2版病毒太多。才引入认证机制的。

对于对付病毒认证机制比杀毒更彻底。

因为杀毒是基于特征码扫描的。需要浪费不小的系统资源。

而认证机制防毒的原理就一条。只把重要的权利交给那些可以完全相信的软件。

认证机制就像一道墙把不可信任的程序挡在墙外。

而在墙外的程序要进入系统就需要证书这把钥匙。

一般病毒软件是不会有认证的代码的。没有认真代码。这个病毒就没有能力复制自己。
传播自己。窃取用户信息。隐蔽自己。保护自己。而作为一个合格的病毒连这些必要
的能力都没有的话。那就失去了成为病毒的意义。


给软件签名的过程
1.用安全散列算法对要签名的软件产生一段数字标识。
2.用key文件对这个数字标识进行加密。
3.把这个数字签名和证书里的两段内容一起附加到这个软件的头部。


软件安装的过程
1.手机里是有个rsa的公钥这个公钥就是上面提到的verisign公司的RSA算法的公钥。
由这个公钥验证证书里第二段内容的verisign公司的数字签名。
如果这个时候失败则手机显示 证书错误 请与应用程序供应商联系
如果成功的话手机系统就会信任这个数字签名里包含的symbian的一个RSA公钥。

因为有且只有公钥才能验证私钥的签名。所以就可以判断这个信息的却为verisign公司发布
绝无伪造和篡改过。所以程序可以信任那个symbian的一个RSA公钥。

2.有了一个可信任的symbian的一个RSA公钥。就可以验证开发证书里的第一段内容symbian的数字签名
如果失败还是显示 证书错误 请与应用程序供应商联系
成功的话手机系统就可以信任里面的 一个公钥。 (个人证书是DSA公钥,publisherid是RSA公钥)
还有这个签名中包含的有效期,申请的能力,开发者的资料。包含的授权的imei号码 等信息了

由于这些信息是用symbian的rsa私钥签名的,有了可信任的symbian的一个RSA公钥,就可以完全说明这些
信息是symbian发布和承认的。


3.有了上面可信任的资料程序会做一下几件事。
a.与当前手机时间核对有效期。如果超出则显示"证书过期"。 有这样的问题我们都知道把手机时间改到有效期内就行了。
b.核对当前的imei号码是否包含在签名的那些imei号里。如果没有则显示 "无法安装受限制证书" imei号没法改。
否则我们就不需要提交imei号码来制作证书了。现在那些新手该明白为什么要提交imei制作证书了吧。
c.把刚才用key文件签名的那个数字标识加密的信息,用刚才信任的那个公钥(开发证书里的那个公钥。就是和key文件对应的那个公钥)
解开得到软件的数字标识。 然后再次计算软件的数字标识。比较这连个数字标识是否完全相同。不同则显示 软件已损坏。
相同说明软件未被篡改过和保持着完整性。
d.获取软件申请的能力 和证书给予的能力。如果软件申请的能力 证书没有给予则显示 "没有足够权限"
如果没有出错就开始软件的安装了。

塞班软件的签名和安装实际就是一个信任传递的过程可以简单表示为
verisign→symbian→开发商(publisherid)/个人开发者→被签名软件
用这样的信任传递机制来确认一个软件的可信性。并赋予相应的权利。

到此证书和软件的关系结束了。

TOP

证书的历史


证书的历史。
现在个人开发证书已经被symbian封闭了。
publisherID据说也有可能被查封。
也许有人会说没有证书无所谓。但别人有证书能装模拟器,游戏…………。
一样的价钱一样的手机不同的只是别人有个证书。到时你能平衡吗?
智能机无非就是软件丰富使得功能多点。不能签证的智能机功能真的不如国产机。
没有证书像这样的智能机有必要吗?那时再看看windowsmobile的智能机你还能
骄傲的说我的也是智能机吗.
现在symbian推出个在线签,而且很麻烦。
用了这么长时间的symbian系统我的感觉。symbian并不像其他公司那样很重视我们
这个方块字的大市场。并不是我们国人买的symbian的手机少。但微软大多数网页有中文
但在symbian中文的指导实在是少的可怜。这样非得使我们放弃用了5000年的母语文字
而非得去理解才有千把年历史的acd的组合。而且在symbian居然没有像样的拼音输入法。
要知道当年为了抢中国市场手机几乎是一夜之间就有了中文功能。可作为[wiki]智能手机[/wiki]的塞班
居然没有个像样的拼音输入法。非要装a4。而且a4还非要签名。这可以说塞班完全忽略了
我们这些黄皮肤黑眼睛的人。

如果publisherid(这个id本来就要科技公司的营业执照+200美金才能申请,而且塞班只封我们的id)
被封了。我不会再在塞班系统中流连。

既然证书的加密是完全没法破解的。
那个整个签证体制唯一能破解的地方就是。那个公钥。替换掉手机里那个verisign公钥我们就能自己制作证书了。
还有验证验证机制。然他不要验证就安装。也就破解掉了。
那个能装a4最高权限的破解版的固件就是这个原理吧。

TOP

什么样的证书是一个完完整整的证书?

7d ef f0 是17项能力

是的现在用publisherid做的证书能有17项能力

上面的文章说了一共识20项。还有三项控制在塞班手里。

那三项完全控制了病毒传播所必须要的要素。

别的论坛上转贴的。他对个问题做了更新。我不想更新了,没人看得。




什么样的证书是一个完完整整的证书?
1.当一个证书下载下来后
先右键选打开



2.选择 详细信息 选项卡 看下图
这样能知道这个证书的有效期 。
a.如果安装时显示"证书过期"就把手机的时间调到这个区段里就能安装
这里还能了解到这个证书对应的手机串号。
b.如果安装时显示"无法安装受限制证书" 这时你可以校对 这里的手机序号是否和你的手机的序号一致。(不一致,那个证书就不是你手机的证书了)(也有可能软件上带有其他个人证书的签名,换个sis文件试一下。或先用反签工具把残留在sis文件上的其他签名除掉。)



3.用签名程序签名时会校验证书的的正确性.
但是通过签名程序签名的的证书并不能说这个证书是正确的.
signsis对证书的验证只是有限的.
当那个签证的软件安装时出现"证书错误请与应用程序供应商联系"时
说明这个证书已经损坏了.
所以不要以为能签名的证书就是没有问题的证书.


4.一个能签名,签名后软件能安装的证书就是一个完整的证书吗?
不是,有可能你的证书申请的功能不齐.在签其软件时就会运行错误
会出 "没有足够权限" 这也是证书的问题。下图是一个申请了13个
功能的证书(目前就能申请这么多)



看看你的证书这里的值是否为"2d8ff0"如果不是那你的证书
并不是一个完全的证书哦。下面是一个不完全的证书



要知道少申请了那两个功能的证书就能通过签名
软件的安装但是.你在安装有些软件会出错的.
把上买你黑框里的数值复制到
计算器把它从16进制转到2进制
这个二进制的值是:11010000111111110000
把它和下的表比对
00A0BC0DE000FGHIJKLM0000
A = PowerMgmt
B = ReadDeviceData
C = WriteDeviceData
D = TrustedUI
E = ProtServ
F = SwEvent
G = NetworkServices
H = LocalServices
I = ReadUserData
J = WriteUserData
K = Location
L = SurroundingsDD
M = UserEnvironment
        11010000111111110000
00A0BC0DE000FGHIJKLM0000
比对是把末尾对齐。得出A和E的对应位置为0。其他字母对应位置为1
对应1这的这项功能就是有的。对应0的就是这个功能没有。
有上表查出ae的功能PowerMgmt,ProtServ这个两项功能这个证书里是
没有的。当这样的证书签到一个电源管理,这样的软件时能正确签名。
但是会显示"没有足够权限"。而用他签其他软件。又不会有问题。
所以说这个证书是个正确的证书但不是一个功能齐全的证书。
----------------------------------
一个完全的的证书要能正确签名.正确安装. 带有所有的功能.这样才能算完全的个人证书.
----------------------------------------------------------------------------
要是能把上买你零的部分全变成1那肯定会有更大的权限。
但是看看他的签名体系似乎不行。
http://bbs.dospy.com/thread-1085603-1-1.html


能力分类:
无限制:60%的API。

用户可以授权:无限制+ReadUserData,WriteUserData,NetworkServices,LocalServices,UserEnvironment。
(以前说的20年普通权限开发证书)


Symbian Signed:用户可以授权的能力+Location,ReadDeviceData,WriteDeviceData,
PowerMgmt,SurroundingsDD,ProtServ,TrustedUI,SwEvent。
(这是13个功能的个人开发证书)

许可获得者/平台批准:Symbian Signed的能力+
[DRM,TCB]需要通过向厂商申请获得。
[AllFiles,CommDD,DiskAdmin,MultiMediaDD,NetworkControl]需要在www.symbiansigned.com上填写“能力请求表单”申请获得。
(a4输入法最高权限版就是需要这里面的drm能力。所以个人证书签了没有用的。需要开发商的acs证书这个证书要几百美元/年,做出来的证书才有[DRM,TCB]权限)


能力:
NetworkServices:用于使用移动网络,例如:拨打电话或发送文本消息。
LocalServices:用于通过USB、红外和蓝牙发送或接收消息。
ReadUserData:准许读取用户数据。系统服务器和应用引擎可以自由地对他们的数据施加这一限制。
WriteUserData:准许写入用户数据。系统服务器和应用引擎可以自由地对他们的数据施加这一限制。
Location:准许访问手机的位置信息。
UserEnvironment:准许访问用户及其附近环境的实时保密信息。
PowerMgmt:准许在系统中中断任何进程或者转换机器状态(关掉设备)。
SwEvent:准许生成或者捕获键盘以及笔输入事件。
ReadDeviceData:准许读取系统设备驱动数据。
WriteDeviceData:准许写入系统设备驱动数据。
SurroundingsDD:准许访问提供外围设备输入信息的逻辑设备驱动。
TustedUI:区分”normal”应用和”trusted”应用的UI。当一个”trusted”应用在屏幕上显示内容时,一个”normal”的应用不能伪造它。
ProtServ:准许服务器应用可以用一个受保护的名字进行注册。受保护的名字以”!”开头。
NetworkControl:准许修改或者访问网络协议控制。
MultimediaDD:准许对所有多媒体设备驱动(声音、摄像头等)的访问。
DRM:准许访问DRM保护的内容。
TCB:准许在终端中访问/sys以及/resource目录。
CommDD:准许访问通信设备驱动。
DiskAdmin:准许进行硬盘管理操作,例如格式化驱动器。
AllFiles:准许系统中的所有文件可见,而且还可对在/private下的