証明書失効リスト(CRL)

  • このエントリーをはてなブックマークに追加

証明書失効リスト(Certificate Revocation List)

CRL(証明書失効リスト)とは – 意味をわかりやすく – IT用語辞典 e-Words ExternalLink ここから-
CRLとは、何らかの理由で有効期限前に失効させられたデジタル証明書(公開鍵証明書)のリスト。証明書の発行元の認証局(CA)が管理・公開しており、定期的に更新される。
CRL(証明書失効リスト)とは – 意味をわかりやすく – IT用語辞典 e-Words ExternalLink ここまで-

任天堂の公式Webサイト
任天堂ホームページ (nintendo.co.jp) ExternalLink
の証明書には、「CRL エンドポイント」の配布点が載っている。
http://crl3.digicert.com/DigiCertTLSRSASHA2562020CA1-4.crl ExternalLink

CRL(証明書失効リスト)エンドポイントは、公開鍵基盤(PKI)内で証明書失効リスト情報を提供するための特定のネットワーク上の場所またはサービスを指す。



このCRLの中身を見ていく。

環境
Windows10
使用したGit Bashのバージョンは「git version 2.40.0.windows.1」である。


B-6@B-6-PC MINGW64 ~
$ git -v
git version 2.40.0.windows.1

次のコマンドを実行してCRL「DigiCertTLSRSASHA2562020CA1-4.crl」の中身を見る。
※サーバー証明書のSerial Numberは大量に表示されたので一部抜粋した。


B-6@B-6-PC MINGW64 ~/test
$ openssl crl -inform DER -in DigiCertTLSRSASHA2562020CA1-4.crl -text -noout

Certificate Revocation List (CRL):
        Version 2 (0x1)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, O = DigiCert Inc, CN = DigiCert TLS RSA SHA256 2020 CA1
        Last Update: May 13 22:05:45 2023 GMT
        Next Update: May 20 22:05:45 2023 GMT
        CRL extensions:
            X509v3 Authority Key Identifier: 
                keyid:B7:6B:A2:EA:A8:AA:84:8C:79:EA:B4:DA:0F:98:B2:C5:95:76:B9:F4

            X509v3 CRL Number: 
                592
            X509v3 Issuing Distribution Point: critical
                Full Name:
                  URI:http://crl3.digicert.com/DigiCertTLSRSASHA2562020CA1-4.crl
                  URI:http://crl4.digicert.com/DigiCertTLSRSASHA2562020CA1-4.crl

Revoked Certificates:
    Serial Number: 081F4D8276E4291EEBB78F13E575AF3B
        Revocation Date: Apr  5 03:39:18 2022 GMT
    Serial Number: 024A1910B9C882795183DE16A4ADC9C1
        Revocation Date: Apr  5 05:57:57 2022 GMT
    Serial Number: 02192FA86F56A944B370193A5A56E43E
        Revocation Date: Apr  5 11:54:34 2022 GMT
    Serial Number: 0D10D0EC4839927D8FDA9CAFF7238B5B
        Revocation Date: Apr  5 13:14:08 2022 GMT
    Serial Number: 08807B0E2A3B1E34C2F743AF95ECF601
    Serial Number: 08E40F418B8D78AE1D046A6062547730
        Revocation Date: Apr 11 12:04:01 2022 GMT
    Serial Number: 05CDC73756828E966BEF0CABBA45CDF7
        Revocation Date: Apr 11 15:09:32 2022 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code: 
                Superseded
    Serial Number: 0E971F4808F55F28CEE159BFC2FA7653
        Revocation Date: Apr 11 15:09:32 2022 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code: 
                Superseded
    Serial Number: 05A871F9FCB86C80643288C4D43B69DB
        Revocation Date: Apr 11 15:52:03 2022 GMT
    Serial Number: 0BB06263079E8473EE6149C4E0A86D7E
        Revocation Date: May 13 22:05:30 2023 GMT
    Signature Algorithm: sha256WithRSAEncryption
         35:76:8d:1c:37:ae:1b:55:b6:a9:f9:61:cf:8c:6e:d6:d7:ea:
         fa:74:e7:23:38:ec:62:ec:e1:6d:7b:72:57:16:b9:16:6d:ed:
         fc:ad:88:5f:48:79:04:74:f6:56:a5:8b:c5:76:cd:70:66:3e:
         c9:65:a8:92:44:a9:91:d8:db:3f:28:72:21:d9:2e:1c:28:fa:
         fd:cf:a0:21:53:90:1e:b5:8e:1e:42:74:3e:5b:f0:38:58:87:
         32:58:1e:1e:30:41:4c:11:da:60:7d:4c:aa:47:96:bf:69:1f:
         61:63:17:a9:2c:ce:81:00:47:be:55:33:9e:90:e4:45:b9:e3:
         dc:34:3b:16:c9:98:7a:0c:63:79:da:41:ba:d8:4d:2e:e5:24:
         e7:af:ab:81:fd:2e:bb:2c:0a:c1:b1:d1:21:c3:51:62:0b:e3:
         81:33:e9:9b:ef:38:b0:ea:8e:46:48:43:c2:2c:cc:e7:37:10:
         8b:af:63:1e:62:ba:38:c4:16:d6:a9:1f:10:96:fd:01:b6:e7:
         51:b3:ba:bd:e8:47:3f:6f:e7:28:7d:d9:48:33:fa:9d:36:9a:
         a4:ad:33:24:8c:79:8d:f9:ad:df:80:b1:75:23:cc:e0:c3:58:
         b5:55:c0:bb:25:1c:2c:f0:9c:30:a5:9c:cf:24:4d:1b:06:e5:
         fa:a8:bc:b0

コマンドの解説
「crl」コマンドは、 OpenSSLコマンドのCRL操作を指定する。
「-inform」オプションは、入力ファイルの形式を指定する。「-inform DER」でCRLファイルがDER形式であることを指定する。DER(Distinguished Encoding Rules)は、バイナリ形式でデータをエンコードするための一般的な規則セットである。CRLファイルのDER形式とは、CRLデータをDERエンコーディング形式で表現したバイナリ形式のファイルを指す。
「-in」オプションは、入力ファイルのパスを指定します。この場合、DigiCertTLSRSASHA2562020CA1-4.crlというファイルがCRLの入力ファイルとなる。
「-text」オプションは、CRLファイルの内容をテキスト形式で表示する。
「-noout」オプションは、CRL自体は出力しない。

CRLファイルの解説
バージョンは、Version 2 (0x1)
RFC3280では電子証明書失効リストはX.509ver2の形式が用いられる。このVersion2とはX.509ver2を意味している。
署名アルゴリズムは、Signature Algorithm: sha256WithRSAEncryption
発行者(Issuer)は、Issuer: C = US, O = DigiCert Inc, CN = DigiCert TLS RSA SHA256 2020 CA1
最終更新日時(Last Update)は、Last Update: May 13 22:05:45 2023 GMT
次回更新予定日時(Next Update)は、Next Update: May 20 22:05:45 2023 GMT
失効された証明書(Revoked Certificates)の一覧が表示される。
シリアル番号(Serial Number)は、 081F4D8276E4291EEBB78F13E575AF3B
失効した日時(Revocation Date)は、 Apr 5 03:39:18 2022 GMT
署名アルゴリズム(Signature Algorithm)は、sha256WithRSAEncryption

CRLに含まれる拡張機能(CRL extensions)は、次の通り。


CRL extensions:
    X509v3 Authority Key Identifier: 
        keyid:B7:6B:A2:EA:A8:AA:84:8C:79:EA:B4:DA:0F:98:B2:C5:95:76:B9:F4

    X509v3 CRL Number: 
        592
    X509v3 Issuing Distribution Point: critical
        Full Name:
          URI:http://crl3.digicert.com/DigiCertTLSRSASHA2562020CA1-4.crl
          URI:http://crl4.digicert.com/DigiCertTLSRSASHA2562020CA1-4.crl

X509v3 CRL Number(X509v3 CRL番号)は、証明書失効リスト(CRL)内で一意の番号を識別するために使用されるフィールドである。CRLは、証明書の失効情報を含むドキュメントであり、一連の証明書が失効したことを示すために使用される。
CRL番号は、各CRLに割り当てられる一意の識別子である。この番号は、CRLの更新や管理、検索のために使用される。CRL番号は通常、数値またはバージョン番号として表現される。

ここがややこしいとこを解説する。
CRLのバージョンは、「Version 2 (0x1)」である。
しかし、「X509v3 CRL Number」というラベルがついている。これはCRL内の特定のフィールドを表すラベルという意味しか持たない。「X509v3 CRL Number」の「v3」は無視していい(とくに意味のない値)。
CRL entry extensionsの訳は「証明書失効リストのエントリーの拡張機能」
X509v3 CRL Reason Codeの訳は「証明書失効リスト理由コード」
Supersededの訳は「置き換え済み」
Supersededの「置き換え済み」とは、証明書が別の証明書によって置き換えられたことを意味する。つまり、証明書が失効した後に新しい証明書が発行され、その新しい証明書に差し替わったことを意味する。「X509v3 CRL Reason Code」はX.509 version3のCRLでのみ使用される拡張機能であるので、X.509 version3のCRLである場合だけしか使用できない。

「X509v3 CRL Reason Code」の値は次の通り。
unspecified(未指定): 失効理由が特定されていない場合に使用される。
keyCompromise(鍵の危険性): 秘密鍵が漏洩した、盗まれた、もしくは破損した場合に使用される。
CACompromise(認証局の危険性): 認証局の秘密鍵が漏洩した、盗まれた、もしくは破損した場合に使用される。
affiliationChanged(所属変更): 証明書所有者の所属が変更された場合に使用される。
superseded(置き換え): 別の証明書によって置き換えられた場合に使用される。
cessationOfOperation(操作終了): 証明書所有者の操作が終了した場合に使用される。
certificateHold(証明書保留): 証明書の一時的な無効化または保留が必要な場合に使用される。

うーん。この辺が実際に動作していることを確かめるにはどうしたらいいのだ?
個人レベルではCRLファイルをopensslコマンドで確認するくらいしかできないか。




  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*