欢迎您,请 登录   |   马上注册
关于我们021-52582199 在线咨询 >
台湾  |  香港  |  老版本网站入口GeoTrust官方授权中国区合作伙伴
服务与支持 > SSL知识库 > X.509 介绍

X.509 介绍


X.509 

 X.509被广泛使用的数字证书标准,是由国际电联电信委员会(ITU-T)为单点登录(SSO-Single Sing-on)和授权管理基础设施(PMI-Privilege Management Infrastructure)制定的PKI标准。X.509定义了(但不仅限于)公钥证书、证书吊销清单、属性证书和证书路径验证算法等证书标准。 

历史和用途

X.509最初是在1988年的7月3日发布的,版本是X.509 v1,当时是作为ITU X.500目录服务标准的一部分。它设定了一系列严格的CA分级体系来颁发数字证书。和其他网络信任模型(譬如PGP)对比,任何人,不仅仅是特定的CA,可以签发并验证其他密钥证书的有效性。

X.509 2 版引入了主体和签发人唯一标识符的概念,以解决主体和/或签发人名称在一段时间后可能重复使用的问题。大多数证书监视文档都极力建议不要重复使用主体或签发人名称,而且建议证书不要使用唯一标识符。版本 2 证书尚未得到广泛使用。 

X.509 3 版是最新的版本(1996 年)。它支持扩展的概念,因此任何人均可定义扩展并将其纳入证书中。现在常用的扩展包括:KeyUsage(仅限密钥用于特殊目的,例如“只签”)和 AlternativeNames(允许其它标识与该公钥关联,例如 DNS 名、电子邮件地址、IP 地址)。扩展可标记为“极重要”,以表示应选中该扩展并强制执行或使用。例如,如果某一证书将 KeyUsage 扩展标记为“极重要”,而且设置为“keyCertSign”,则在 SSL 通信期间该证书出现时将被拒绝,因为该证书扩展表示相关私钥应只用于签写证书,而不应该用于 SSL。 

证书

在X.509系统中,CA签发的证书依照X.500的管理,绑定了一个唯一甄别名(DN-Distinguished Name ),可以包含多个字段和值,还可以支持别名(Alternative Name )。 

一个组织受信任的根证书会分发给所有需要用到的PKI系统的员工手上。主流浏览器:IE、Netscape/Mozilla,Opera和Safari会预先安装一部分根证书,这些根证书都是受信任的证书认证机构CA,这样他们颁发的证书,浏览器将可以直接信任。虽然用户可以删除或者禁用这些根证书,但事实上,用户很少这么做。在最新的微软平台,甚至会在用户移除了预先安置的根证书后,当用户再访问这些被删除的根证书网站的时候,会自动将这些根证书恢复到信任列表中。 

X.509包含了一个证书吊销列表(CRL-Certificate Revocation List)实施的标准,这在PKI系统中经常被人所忽略。IETF提出的检查证书有效性的方法是在线证书状态(OCSP- Online Certificate Status Protocol)。Firefo3 缺省就是使用OCSP协议。 

证书结构

X.509 v3证书数据结构如下:

  • Certificate证书 
  • Version 版本 
  • Serial Number 序列号 
  • Algorithm ID 算法标识 
  • Issuer 颁发者 
  • Validity 有效期 
    • Not Before 有效起始日期 
    • Not After 有效终止日期 
  • Subject 使用者 
  • Subject Public Key Info 使用者公钥信息 
  • Public Key Algorithm 公钥算法 
  • Subject Public Key 公钥 
  • Issuer Unique Identifier (Optional) 颁发者唯一标识 
  • Subject Unique Identifier (Optional) 使用者唯一标识 
  • Extensions (Optional) 扩展 
    • ... 
  • Certificate Signature Algorithm 证书签名算法 
  • Certificate Signature 证书签名 

 数字签名

数字签名

  • h--Hash计算 
  • E--加密计算 
  • D--解密计算 

在签发者处,首先求出传递消息Info的HASH值,然后用私钥Private Key对Hash值做加密,然后将传递消息原文Info和经过加密的HASH值一起发给接受者,接受者首先用签发者的公钥揭开密码,然后对收到的Info原文计算HASH值,然后比对是否相对,如果相同,则认证成功。 

证书扩展文件名

  • .cer, .crt - 通常被用于二进制的DER文件格式 (同于.der), 不过也被用于Base64编码的文件 (例如 .pem). 
  • .P7B - 同于 .p7c 
  • .P7C - PKCS#7证书格式,仅仅包含证书和CRL列表信息,没有私钥。 
  • .PFX - 同于 .p12 
  • .P12 - PKCS#12文件, 包含证书(公钥)和私钥(受密码保护),已经完整的证书链信。 

PKCS#7 是一种将数据加密和签名(正式名称是“enveloping”)的技术标准。 它描述数字证书的语法和其他加密消息——尤其是,数据加密和数字签名的方法,也包含了算法。但PKCS#7不包含私钥信息。

PKCS#12 定义了一个用于保存私钥和对应公钥证书的文件格式,并由对称密钥加密保护。PKCS#12通常采用PFX,P12作为文件扩展名。 PKCS#12文件可以存放多个证书,并由密码保护,通常用于WINDOWS IIS,也能够被当作Java Keysotre文件使用,用于Tomcat,Resign,Weblogic,Jboss等,不能被用于Apache. 

X.509证书示例

以下是一个颁发给login.yahoo.com的X.509证书解码的案例,文件的实际大小大约是1KB字节。这个证书是由GeoTrust(现在已经被Verisign收购)签发。所以在签发者栏目中,可以看到“Equifax Secure Certificate Authority” (这家已经被Geotrust收购,目前Geotrust所有的证书都由这个根证书签发)。在使用者(Subject)中包含多条信息,不过最重要的是通用名(Common Name, CN),因为这个部分是用来和网站的域名相匹配的,同时也包含了RSA的公钥以及Geotrust的签名,目前所有的SSL证书都采用SHA1 HASH算法计算特征值。

Certificate:
  Data:
    Version: 3 (0x2)
    Serial Number: 368716 (0x5a04c)
    Signature Algorithm: sha1WithRSAEncryption
    Issuer:C=US,O=Equifax,
          OU=Equifax Secure Certificate Authority
    Validity
       Not Before: Jan  4 17:09:06 2006 GMT
       Not After : Jan  4 17:09:06 2011 GMT
    Subject: C=US, ST=California, L=Santa Clara, 
            O=Yahoo! Inc., OU=Yahoo, CN=login.yahoo.com
    Subject Public Key Info:
       Public Key Algorithm: rsaEncryption
       RSA Public Key: (1024 bit)
           Modulus (1024 bit):
               00:b5:6c:4f:ee:ef:1b:04:5d:be:70:4a:d8:55:1d:
               8a:77:0d:c1:45:00:f5:3b:1a:10:dd:d7:f7:bb:7a:
               65:54:7f:60:d2:16:bb:bd:12:a5:78:78:d6:b3:50:
               4e:ba:17:48:27:7a:22:6f:2a:7c:1d:a2:36:22:d8:
               59:a2:ae:3a:0b:d4:d2:1b:8a:0e:5a:89:a9:e4:9a:
               ff:db:3f:04:e2:9b:75:c1:8d:c5:8c:05:a1:f3:b5:
               92:5e:a1:44:49:19:e4:90:b4:e9:ef:e4:5d:b2:20:
               6d:f9:23:76:b8:b2:d4:af:a3:06:f5:9e:03:8f:b8:
               82:05:21:11:25:44:3a:80:05
           Exponent: 65537 (0x10001)
    X509v3 extensions:
       X509v3 Key Usage: critical
           Digital Signature, Non Repudiation, 
           Key Encipherment,Data Encipherment
       X509v3 Subject Key Identifier: 
           A0:1E:6E:0C:9B:6E:6A:EB:D2:AE:5A:4A:18:FF:0E:93:
           46:1A:D6:32
       X509v3 CRL Distribution Points: 
           URI:http://crl.geotrust.com/crls/secureca.crl
       X509v3 Authority Key Identifier: 
           keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:
           4F:33:98:90:9F:D4
       X509v3 Extended Key Usage: 
           TLS Web Server Authentication, 
           TLS Web Client Authentication
  Signature Algorithm: sha1WithRSAEncryption
       50:25:65:10:43:e1:74:83:2f:8f:9c:9e:dc:74:64:4e:71:27:
       4e:2a:6e:4a:12:7b:4c:41:2e:61:4a:11:0b:41:a6:b1:52:cb:
       13:76:b6:45:e4:8d:d4:00:9a:3b:02:c7:82:29:01:a3:ee:7d:
       f7:b9:02:88:9d:3e:c3:1c:e6:3d:d3:90:fc:9c:56:db:19:9d:
       ab:a8:03:80:7d:c4:e2:c4:09:33:9e:58:5b:77:37:89:59:a3:
       86:8e:a1:df:b3:bb:02:ed:21:62:fb:ba:c2:ba:e8:d4:8f:66:
       c1:a5:5f:ad:f9:3f:cf:22:9b:17:57:a0:ca:28:c6:76:03:a4:
       c4:e7

 

为了验证这个证书,需要用这个证书签发者的根证书(Geotrust的Equifax Secure Certificate Authority)。由于这个证书是用Geotrust的根证书的私钥来签名的,所以我们可以用Geotrust的公钥来对证书的SHA1哈希值进行解码,然后验证解码后的哈希值是否和证书的哈希值一致。以下是Geotrust根证书的样例:

Certificate:
  Data:
    Version: 3 (0x2)
    Serial Number: 903804111 (0x35def4cf)
    Signature Algorithm: sha1WithRSAEncryption
    Issuer:C=US,O=Equifax,
           OU=Equifax Secure Certificate Authority
    Validity
       Not Before: Aug 22 16:41:51 1998 GMT
       Not After : Aug 22 16:41:51 2018 GMT
    Subject:C=US,O=Equifax,
           OU=Equifax Secure Certificate Authority
    Subject Public Key Info:
       Public Key Algorithm: rsaEncryption
       RSA Public Key: (1024 bit)
           Modulus (1024 bit):
               00:c1:5d:b1:58:67:08:62:ee:a0:9a:2d:1f:08:6d:
               91:14:68:98:0a:1e:fe:da:04:6f:13:84:62:21:c3:
               d1:7c:ce:9f:05:e0:b8:01:f0:4e:34:ec:e2:8a:95:
               04:64:ac:f1:6b:53:5f:05:b3:cb:67:80:bf:42:02:
               8e:fe:dd:01:09:ec:e1:00:14:4f:fc:fb:f0:0c:dd:
               43:ba:5b:2b:e1:1f:80:70:99:15:57:93:16:f1:0f:
               97:6a:b7:c2:68:23:1c:cc:4d:59:30:ac:51:1e:3b:
               af:2b:d6:ee:63:45:7b:c5:d9:5f:50:d2:e3:50:0f:
               3a:88:e7:bf:14:fd:e0:c7:b9
           Exponent: 65537 (0x10001)
    X509v3 extensions:
       X509v3 CRL Distribution Points: 
           DirName:/C=US/O=Equifax
           /OU=Equifax Secure Certificate Authority/CN=CRL1
       X509v3 Private Key Usage Period: 
           Not After: Aug 22 16:41:51 2018 GMT
       X509v3 Key Usage: 
           Certificate Sign, CRL Sign
       X509v3 Authority Key Identifier: 
           keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:
           4F:33:98:90:9F:D4
       X509v3 Subject Key Identifier: 
           48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:
           98:90:9F:D4
       X509v3 Basic Constraints: 
           CA:TRUE
       1.2.840.113533.7.65.0: 
           0...V3.0c....
  Signature Algorithm: sha1WithRSAEncryption
      58:ce:29:ea:fc:f7:de:b5:ce:02:b9:17:b5:85:d1:b9:e3:e0:
      95:cc:25:31:0d:00:a6:92:6e:7f:b6:92:63:9e:50:95:d1:9a:
      6f:e4:11:de:63:85:6e:98:ee:a8:ff:5a:c8:d3:55:b2:66:71:
      57:de:c0:21:eb:3d:2a:a7:23:49:01:04:86:42:7b:fc:ee:7f:
      a2:16:52:b5:67:67:d3:40:db:3b:26:58:b2:28:77:3d:ae:14:
      77:61:d6:fa:2a:66:27:a0:0d:fa:a7:73:5c:ea:70:f1:94:21:
      65:44:5f:fa:fc:ef:29:68:a9:a2:87:79:ef:79:ef:4f:ac:07:
      77:38

如果签发证书的根证书,在浏览器的根信任列表中,浏览器就会主动识别该证书是安全的,反之,浏览器就会提出一个警告。GeoTrust的根证书已经被全球所有主要浏览器:Internet Explorer, Chrome ,Mozila ,Opera, Firefox, Safari安装在缺省的信任根证书列表中,GeoTrust签发的证书被广泛的信任和接受。



文档编写日期:2010年12月15日
为什么选择我们
  • 官方授权
    中国区合作伙伴
  • 证书远程协助
    安装服务
  • 无法安装
    30天退款保障
  • 免费提供
    28天试用证书