一句话概括证书。
用来和 key文件 配合了给 塞班手机软件做数字签名的一个文件。
给软件做数字签名要用到 key文件 证书文件 和签名软件(这个有电脑版也有手机版)
证书的原理就是基于数字签名技术。
数字签名,就是用密码学的方法实现的签名。(此签名是无法伪造和可以确定此签名的来源)
-----------------------------------------------------------
下面是详细讲解。小白可以不用看了。看了会成为高手的。
写帖子的时候尽量为让新手看懂。写的多了点。但是还有没说清楚的大家提问好了。
老鸟只要看信任传递过程就能猜的差不多了。
证书无疑是s60 3rd里最热门的话题。他是装很多软件基础。
分解一个证书
证书是个文件,不错。但这个文件里面是什么呢?也许早有机油用按文本文件的格式打证书打开看过。
看到里面是一些没有意义的ACSII字符。并没有其他什么特别的地方。而且是分成两段的。那么这两段,
到底是什么内容呢。现在我们就来解答这个问题。
首先我们要说这两段是两个不同的证书。如果你分别把它们保存成两个单独的cer文件的话。
1.{dy}个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位的xx这样的密钥直接没戏。目前有记录的xx只有512位的和307位的,都是联合网络的计算机化很
长时间xx的。为什么叫RSA 这是创造这个算法的三个数学家的名字的字母,保守估计)
也许有些人已经猜到了这个RSA公钥对应的RSA私钥,就是我们签名用的key文件。
的确和这个证书对应的key文件就是这个RSA私钥。他和这个的RSA公钥,组成了
RSA的密钥对。
Signature Algorithm: sha1WithRSAEncryption
文件末尾的这段是数字签名的开始。(数字签名:用密码学的方法来验证发布信息的正确性,与发布信息的来源。)
这里是symbian对上面信息的一个数字签名。
这里用的算法是SHA-1 和RSA
SHA-1 是安全散列算法。
这个算法用于对一段信息产生{wy}的一个数字标识。
这段就是用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._sitecrl.verisign.com/offlineca/VeriSignIncVer">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的公钥。
{zh1} Signature Algorithm: sha1WithRSAEncryption
开始的是versigin公司对上面所有信息的数字签名。使用的算法是sha-1 和RSA