X.509

歷史及使用情況

X.509最早與X.500一起發布於1988年7月3日。它假設有一套嚴格的層次化的憑證頒發機構（CA）。和web信任模型相比較，PGP採用的方案是任何人都可以簽章，從而證明其他人金鑰憑證的有效性。X.509 v3憑證設計非常彈性化，除了對網橋拓撲架構網路的支援，還可以支援用於對等方式的Mesh網類似與OpenPGP那樣的web信任機制，不過這樣方式在2004年之前很少使用。X.500系統僅由主權國家實施，以實現國家身分資訊共用條約的實施目的；而IETF的公鑰基礎設施（X.509）簡稱PKIX工作群組將該標準制定成適用於更靈活的網際網路組織。而且事實上X.509認證指的是RFC5280里定義的X.509 v3，包括對IETF的PKIX憑證和憑證吊銷列表，通常也稱為公鑰基礎設施。

憑證

在X.509里，組織機構通過發起憑證簽章請求（CSR）來得到一份簽章的憑證。首先需要生成一對鑰匙對，然後用其中的私鑰對CSR進行簽章，並安全地儲存私鑰。CSR進而包含有請求發起者的身分資訊、用來對此請求進行驗真的的公鑰以及所請求憑證專有名稱。CSR里還可能帶有CA要求的其它有關身分證明的資訊。然後CA對這個專有名稱發布一份憑證，並繫結一個公鑰.
組織機構可以把受信的根憑證分發給所有的成員，這樣就可以使用公司的PKI系統了。像Firefox, IE, Opera, Safari 以及Google Chrome都預裝有早就確定的根憑證列表，所以使用主流CA發布的憑證SSL都直接可以正常使用。瀏覽器的開發者直接影響著它的用戶對第三方的信任。FireFox就提供了一份csv/html格式的列表
X.509也定義了CRL實現標準。另一種檢查合法性的方式是OCSP。FireFox 3開始就預設開啟了這項檢查功能，Windows從Vista版本以後也一樣。

例1: 兩個PKI之間的根憑證交叉認證

為了讓PKI2的用戶憑證也得到PKI1的信任，CA1生成一包含CA2公鑰的憑證cert2.1
這時候cert2和cert2.1具體相同的主題及公鑰，cert2.2 (User 2)就有了兩條合法的憑證鏈："cert2.2 → cert2" and "cert2.2 → cert2.1 → cert1"。
CA2也可以生成類似的包含有CA1公鑰的憑證cert1.1，以便PKI1的用戶(比如User 1)的憑證能在PKI2得到認證。

例2: CA憑證更新

Understanding Certification Path Construction (PDF). PKI Forum. September 2002. 為了憑證頒發者從舊的私鑰順利地轉移到新的私鑰，他可以頒發兩個憑證，其中一個是新的私鑰對舊的公鑰進行簽章，另一個是舊的私鑰對新的公鑰的簽章，這兩個都是機構自己給自己頒發的憑證，但都不是自簽章憑證。註：另外還存在新舊兩個自簽章憑證。
假設cert1和cert3具有相同的公鑰，對於cert5來說有兩條合法的憑證鏈，cert5 → cert1 和 cert5 → cert3 → cert2, cert6的情況也類似。這樣就允許老的用戶憑證可以在新舊兩個根憑證之間平滑轉移。

X.509憑證樣例

下面是GlobalSign頒發的用於wikipedia.org以及一些其它Wikipedia網站X.509憑證。憑證頒發者填在頒發者(Issuer)欄位，主題內容里是組織機構Wikipedia的描述，主題備用名稱是那些採用該憑證的伺服器的主機名。主題公鑰里的資訊表明採用的是橢圓曲線公共金鑰，位於最後的簽章演算法表示它是由GlobalSign用其私鑰並採用帶RSA加密的SHA-256演算法進行簽章的。

中間憑證

下面是憑證頒發機構的憑證範例。該憑證是由下例根憑證簽章的用於頒發上例最終實體憑證的憑證。當然它的主題識別碼跟上例憑證的授權金鑰識別碼是相匹配的。
 证书:
          版本: 3 (0x2)
        序列号: 04:00:00:00:00:01:44:4e:f0:42:47
      签名算法: sha256WithRSAEncryption
        颁发者: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
      此前无效: Feb 20 10:00:00 2014 GMT
      此后无效: Feb 20 10:00:00 2024 GMT
         主题: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2
  主题公钥信息:
            公钥算法: rsaEncryption
        2048位的公钥:
                    00:c7:0e:6c:3f:23:93:7f:cc:70:a5:9d:20:c3:0e:
                    ...
               指数: 65537 (0x10001)
  X509 v3扩展:
   X509v3 密钥使用: 
               关键:是
               用于:证书签名, CRL签名
          基本约束:
               关键:是
        证书颁发机构:是
        路径长度限制:0
    主题密钥标识符: 
               关键:否
                密钥: 96:DE:61:F1:BD:1C:16:29:53:1C:C0:CC:7D:3B:83:00:40:E6:1A:7C
                96:DE:61:F1:BD:1C:16:29:53:1C:C0:CC:7D:3B:83:00:40:E6:1A:7C
        证书策略:
               关键:否
               策略1: 任何策略标识符
            CPS URI: https://www.globalsign.com/repository/

     CRL 分发点:
               关键:否
                URI:http://crl.globalsign.net/root.crl

       授权相关信息: 
               关键:否
  在线证书状态协议(OCSP)URI:http://ocsp.globalsign.com/rootr1

     授权密钥标识符:
               关键:否
                    密钥:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B

        签名算法: sha256WithRSAEncryption
             数字签名:46:2a:ee:5e:bd:ae:01:60:37:31:11:86:71:74:b6:46:49:c8:
         ...

根憑證

下面是憑證頒發機構的自簽章根憑證。它的頒發者和主題是相同的，可以用自身的公鑰進行合法認證。憑證認證過程也將在此終止。如果應用已經在它的可信公鑰存貯里已經含有該公鑰憑證，那麼TLS連接時的那個最終實體憑證是可信的，否則就是不可信的。
 证书:
          版本: 3 (0x2)
        序列号: 04:00:00:00:00:01:15:4b:5a:c3:94
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
        Validity
            Not Before: Sep  1 12:00:00 1998 GMT
            Not After : Jan 28 12:00:00 2028 GMT
        Subject: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:da:0e:e6:99:8d:ce:a3:e3:4f:8a:7e:fb:f1:8b:
                    ...
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
    Signature Algorithm: sha1WithRSAEncryption
         d6:73:e7:7c:4f:76:d0:8d:bf:ec:ba:a2:be:34:c5:28:32:b5:
         ...

安全性

布魯斯·施奈爾、彼得·古特曼及其他安全專家已經發布了很多PKI的安全問題。