CRL 処理について一旦書き出してみる
RFC を読んでいて、手順を追っていくのがつらくなってきたので,
条件を絞った上での処理をいったん書き出してみます
条件
- delta CRL は使用しない(そもそも需要はあるのか?)
- 検証対象の証明書は,Root CA 証明書から直接発行されている
- CRL は,Root CA 証明書から直接発行されている
- 対象の証明書を検証する CRL の入手先は 1 つだけとする
- 下記で示す証明書と,CRL を使用する
Root CA 証明書
Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: sha1WithRSAEncryption Issuer: C=JP, CN=CA Validity Not Before: Dec 16 06:24:36 2012 GMT Not After : Jan 31 06:00:00 2013 GMT Subject: C=JP, CN=CA Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:b8:4c:d7:44:3c:42:04:0d:60:4e:82:8c:2c:19: 09:8c:e1:1e:65:a3:b8:91:17:54:86:85:e7:b4:31: f9:17:3a:8a:28:57:23:ba:af:c4:c7:31:73:fe:19: e9:d9:42:b4:1c:64:b1:2d:f4:1d:f6:5b:47:77:84: 6d:a9:eb:03:04:77:13:b6:d9:68:88:ff:53:91:a3: 88:a6:63:08:b1:e1:bf:7b:0c:15:eb:c3:53:02:ae: c6:d4:7d:59:55:e7:07:90:ea:d3:24:e4:c6:f1:a9: 35:32:24:a3:a8:31:15:dd:30:19:34:e2:d5:7b:5d: 16:6a:94:33:83:f7:a8:91:89:c5:6e:a7:a6:35:a2: 4e:61:bd:21:bc:3a:bc:d9:8e:4d:2b:67:75:3a:2d: 77:0f:8b:a7:e3:a9:bf:a8:99:4d:ae:6a:83:35:fd: 50:e4:45:8d:7f:96:5b:63:aa:ea:73:a7:84:2b:6c: 7c:bb:06:40:35:37:a2:9b:e0:58:56:da:9f:b4:b1: 25:00:89:bf:89:50:7e:49:64:ef:74:bd:d4:17:bf: 63:e8:11:60:a1:8f:5e:c4:45:b9:0c:62:c9:3c:a5: 9a:45:4f:df:31:11:d9:8c:75:6d:4a:ce:73:df:4f: 6e:66:05:60:47:fc:bf:80:f4:ed:8f:86:65:89:c6: 70:67 Exponent: 3 (0x3) X509v3 extensions: X509v3 Subject Key Identifier: E1:92:E7:CD:7D:34:CD:BB:D0:E4:92:D4:55:EF:8A:D9:08:F1:9D:6C X509v3 Authority Key Identifier: keyid:E1:92:E7:CD:7D:34:CD:BB:D0:E4:92:D4:55:EF:8A:D9:08:F1:9D:6C X509v3 Basic Constraints: critical CA:TRUE X509v3 Key Usage: critical Certificate Sign, CRL Sign Signature Algorithm: sha1WithRSAEncryption 66:af:b0:50:c0:a7:22:98:6d:57:4d:93:d5:e4:36:ec:4e:9a: da:48:e1:69:b9:0a:69:a7:c5:f5:33:3a:2a:4c:3d:22:72:41: 83:b6:4c:8b:ef:4c:d0:e3:81:68:98:43:97:26:ab:3b:f2:f4: 3f:ef:31:9e:d2:22:f3:d1:28:d5:61:d2:57:b1:f7:29:aa:e7: b7:56:79:e8:e7:53:66:ef:5c:3d:23:33:4e:c7:de:13:a5:ab: 6e:a8:48:dc:43:ef:6f:73:ae:35:1e:63:af:65:9c:c9:d7:b9: e7:3f:5d:5f:9a:c9:6b:5f:50:35:b1:fe:e2:de:c6:7f:a0:9f: e0:b3:ee:b2:a8:29:03:cb:5b:e7:dd:dc:8c:92:85:38:15:31: e3:60:19:7c:9f:78:ab:92:86:5c:91:cc:f9:b4:5c:ad:a4:f1: a4:78:ef:ec:d3:11:91:5b:05:5b:5e:1d:77:8d:fb:ba:a1:ca: 01:83:18:cf:d9:54:27:bd:9d:89:e7:79:27:43:2d:14:3b:6f: aa:a0:b8:11:be:b4:ab:0e:f2:8f:85:91:79:7d:99:16:ca:bc: ac:6d:11:84:68:cd:6c:4b:9e:b4:aa:21:ff:39:bc:d8:ec:08: 37:23:a9:2a:55:23:84:ab:96:fa:e1:1f:8c:b2:b7:a5:c7:85: 0f:9f:6b:72 -----BEGIN CERTIFICATE----- MIIDEDCCAfigAwIBAgIBATANBgkqhkiG9w0BAQUFADAaMQswCQYDVQQGEwJKUDEL MAkGA1UEAwwCQ0EwHhcNMTIxMjE2MDYyNDM2WhcNMTMwMTMxMDYwMDAwWjAaMQsw CQYDVQQGEwJKUDELMAkGA1UEAwwCQ0EwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw ggEIAoIBAQC4TNdEPEIEDWBOgowsGQmM4R5lo7iRF1SGhee0MfkXOoooVyO6r8TH MXP+GenZQrQcZLEt9B32W0d3hG2p6wMEdxO22WiI/1ORo4imYwix4b97DBXrw1MC rsbUfVlV5weQ6tMk5MbxqTUyJKOoMRXdMBk04tV7XRZqlDOD96iRicVup6Y1ok5h vSG8OrzZjk0rZ3U6LXcPi6fjqb+omU2uaoM1/VDkRY1/lltjqupzp4QrbHy7BkA1 N6Kb4FhW2p+0sSUAib+JUH5JZO90vdQXv2PoEWChj17ERbkMYsk8pZpFT98xEdmM dW1KznPfT25mBWBH/L+A9O2PhmWJxnBnAgEDo2MwYTAdBgNVHQ4EFgQU4ZLnzX00 zbvQ5JLUVe+K2QjxnWwwHwYDVR0jBBgwFoAU4ZLnzX00zbvQ5JLUVe+K2QjxnWww DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQAD ggEBAGavsFDApyKYbVdNk9XkNuxOmtpI4Wm5CmmnxfUzOipMPSJyQYO2TIvvTNDj gWiYQ5cmqzvy9D/vMZ7SIvPRKNVh0lex9ymq57dWeejnU2bvXD0jM07H3hOlq26o SNxD729zrjUeY69lnMnXuec/XV+ayWtfUDWx/uLexn+gn+Cz7rKoKQPLW+fd3IyS hTgVMeNgGXyfeKuShlyRzPm0XK2k8aR47+zTEZFbBVteHXeN+7qhygGDGM/ZVCe9 nYnneSdDLRQ7b6qguBG+tKsO8o+FkXl9mRbKvKxtEYRozWxLnrSqIf85vNjsCDcj qSpVI4SrlvrhH4yyt6XHhQ+fa3I= -----END CERTIFICATE-----
end entity 証明書
Certificate: Data: Version: 3 (0x2) Serial Number: 2927772090 (0xae8241ba) Signature Algorithm: sha1WithRSAEncryption Issuer: C=JP, CN=CA Validity Not Before: Dec 16 06:24:36 2012 GMT Not After : Jan 21 06:00:00 2013 GMT Subject: C=JP, CN=end entity Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:b1:25:59:cd:c0:5d:90:ba:b3:3c:ee:bc:0a:18: 6d:fb:c7:25:1c:5b:af:37:59:57:ed:9d:08:e6:4f: 82:49:59:1e:28:4c:a2:93:70:d5:65:7a:16:b1:b0: 57:71:a0:f3:4f:25:21:08:07:90:e4:3e:a6:e0:8e: 6c:9f:7a:02:3a:e7:7d:1f:85:c2:bc:60:f5:39:16: dc:f3:08:76:41:8f:a3:35:d0:aa:65:3d:2d:a2:9d: ce:1d:03:38:a0:2c:b9:c2:8b:8a:18:aa:cf:dc:00: fd:e4:90:f5:71:de:d5:57:8b:6d:ac:3c:e4:23:d8: 4f:0c:a4:f4:a8:f9:e1:46:7c:bc:f8:11:05:e8:4e: 53:87:66:ee:67:ad:ff:16:cc:87:59:d7:49:40:a1: 5d:76:a9:b3:52:f2:00:a3:f7:a9:cb:b2:ee:63:cc: 10:02:c5:26:a1:b1:0a:ef:ff:f1:d5:32:ac:b3:b4: 37:e2:6f:26:7c:b2:27:19:f4:bc:52:60:76:86:db: 62:a1:1f:fe:89:47:7a:a4:da:10:2a:70:26:28:88: 6f:50:21:75:65:13:b4:71:ea:8f:13:9a:0a:02:63: f8:9c:c2:68:1a:8a:ed:06:74:d6:7f:81:c4:bd:21: 20:f3:db:60:90:43:94:fa:01:31:54:5a:e9:63:dd: 11:85 Exponent: 3 (0x3) X509v3 extensions: X509v3 Subject Key Identifier: 7C:37:12:43:A5:B7:AB:FB:34:17:F4:67:F6:82:E7:08:48:ED:5A:9D X509v3 Authority Key Identifier: keyid:E1:92:E7:CD:7D:34:CD:BB:D0:E4:92:D4:55:EF:8A:D9:08:F1:9D:6C X509v3 Basic Constraints: critical CA:FALSE X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 CRL Distribution Points: Full Name: URI:http://example.com/example.crl Reasons: Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Privilege Withdrawn Signature Algorithm: sha1WithRSAEncryption b2:c9:b1:60:ba:d5:76:be:c1:02:8c:42:e0:db:b8:44:9f:dc: 62:3a:8f:ca:51:47:84:11:9d:22:96:71:79:7e:76:9e:c1:03: f4:2d:b2:34:ba:b7:62:f2:dd:a8:bc:11:b3:1e:a3:97:7b:e3: a5:08:fe:28:e5:1b:1b:19:6d:73:f9:23:82:4d:96:6d:08:61: 46:d5:88:1e:50:31:65:f2:4b:58:eb:8c:ce:ce:97:ff:7b:d4: c9:7a:c4:7c:c2:88:14:2b:e9:ec:15:aa:e9:59:d1:66:69:1b: c1:7f:ec:10:d2:0c:bb:8d:5b:9c:84:3e:8f:8e:fa:ff:81:07: 42:9c:a1:ed:d4:24:37:cb:53:19:d8:94:98:be:4e:06:c6:2a: ab:42:a9:55:ed:7f:73:2b:25:c6:86:19:bc:76:41:f3:02:fa: dd:39:31:6a:dd:de:e6:40:10:30:4c:a8:77:8a:71:1f:c1:27: be:e6:af:13:fc:31:02:71:99:cc:96:3d:a2:81:b3:cd:ca:bf: 11:e0:b8:73:ec:77:49:78:90:ed:3e:8f:d7:1f:1f:45:f0:0c: da:88:41:a9:da:df:ef:ab:af:a4:7e:1a:a8:12:33:38:eb:04: 0b:c0:28:b7:74:8d:05:ac:6b:d0:f0:25:7a:22:b9:39:66:9d: b7:5c:87:b2 -----BEGIN CERTIFICATE----- MIIDVzCCAj+gAwIBAgIFAK6CQbowDQYJKoZIhvcNAQEFBQAwGjELMAkGA1UEBhMC SlAxCzAJBgNVBAMMAkNBMB4XDTEyMTIxNjA2MjQzNloXDTEzMDEyMTA2MDAwMFow IjELMAkGA1UEBhMCSlAxEzARBgNVBAMMCmVuZCBlbnRpdHkwggEgMA0GCSqGSIb3 DQEBAQUAA4IBDQAwggEIAoIBAQCxJVnNwF2QurM87rwKGG37xyUcW683WVftnQjm T4JJWR4oTKKTcNVlehaxsFdxoPNPJSEIB5DkPqbgjmyfegI6530fhcK8YPU5Ftzz CHZBj6M10KplPS2inc4dAzigLLnCi4oYqs/cAP3kkPVx3tVXi22sPOQj2E8MpPSo +eFGfLz4EQXoTlOHZu5nrf8WzIdZ10lAoV12qbNS8gCj96nLsu5jzBACxSahsQrv //HVMqyztDfibyZ8sicZ9LxSYHaG22KhH/6JR3qk2hAqcCYoiG9QIXVlE7Rx6o8T mgoCY/icwmgaiu0GdNZ/gcS9ISDz22CQQ5T6ATFUWulj3RGFAgEDo4GdMIGaMB0G A1UdDgQWBBR8NxJDpber+zQX9Gf2gucISO1anTAfBgNVHSMEGDAWgBThkufNfTTN u9DkktRV74rZCPGdbDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMC MDUGA1UdHwQuMCwwKqAioCCGHmh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLmNy bKEEAwIAfzANBgkqhkiG9w0BAQUFAAOCAQEAssmxYLrVdr7BAoxC4Nu4RJ/cYjqP ylFHhBGdIpZxeX52nsED9C2yNLq3YvLdqLwRsx6jl3vjpQj+KOUbGxltc/kjgk2W bQhhRtWIHlAxZfJLWOuMzs6X/3vUyXrEfMKIFCvp7BWq6VnRZmkbwX/sENIMu41b nIQ+j476/4EHQpyh7dQkN8tTGdiUmL5OBsYqq0KpVe1/cyslxoYZvHZB8wL63Tkx at3e5kAQMEyod4pxH8EnvuavE/wxAnGZzJY9ooGzzcq/EeC4c+x3SXiQ7T6P1x8f RfAM2ohBqdrf76uvpH4aqBIzOOsEC8Aot3SNBaxr0PAleiK5OWadt1yHsg== -----END CERTIFICATE-----
CRL
Certificate Revocation List (CRL): Version 2 (0x1) Signature Algorithm: sha1WithRSAEncryption Issuer: /C=JP/CN=CA Last Update: Dec 16 06:24:36 2012 GMT Next Update: Dec 21 06:00:00 2012 GMT CRL extensions: X509v3 CRL Number: 1 X509v3 Authority Key Identifier: keyid:E1:92:E7:CD:7D:34:CD:BB:D0:E4:92:D4:55:EF:8A:D9:08:F1:9D:6C X509v3 Issuing Distrubution Point: Full Name: URI:http://example.com/example.crl Only User Certificates Only Some Reasons: Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Privilege Withdrawn Revoked Certificates: Serial Number: 01 Revocation Date: Dec 16 06:24:36 2012 GMT CRL entry extensions: X509v3 CRL Reason Code: CA Compromise Serial Number: AE8241BA Revocation Date: Dec 16 06:24:36 2012 GMT CRL entry extensions: X509v3 CRL Reason Code: Key Compromise Signature Algorithm: sha1WithRSAEncryption 3e:cd:04:1e:3b:0e:81:3b:11:ff:cf:b1:fb:f1:4a:ef:f3:d2: 02:96:3b:1d:36:0e:5b:cb:1b:60:eb:8d:b9:24:f7:98:20:51: a1:58:cd:d7:bd:64:fb:5c:1b:51:05:0d:30:5a:7e:4f:58:70: 22:a7:a7:54:33:cd:a1:b5:c7:e4:64:21:44:e5:4f:8a:53:27: f5:14:7f:06:8d:ec:98:0f:7a:fe:c5:8f:c5:bd:7d:bc:39:6b: 16:95:d0:22:a5:66:f2:53:42:d6:25:47:44:7c:16:86:a2:e2: b9:88:81:90:0c:40:0c:eb:57:88:2b:0d:3f:93:1e:65:29:65: a8:91:55:a1:0a:fc:c2:07:ff:96:2c:5e:ca:af:52:4e:0c:7f: 1c:61:c6:f7:1b:81:7b:47:9a:ba:ac:b9:e7:20:a0:74:2c:dc: 30:ff:1a:cf:48:fb:78:24:bd:57:05:0b:2e:41:4b:85:42:9a: 10:a4:fd:e4:e8:78:f7:01:d9:9f:f9:b6:96:c6:c2:43:f4:e1: 32:b1:e3:66:ea:78:58:c5:58:eb:07:45:bc:37:3e:6e:57:79: 8b:58:14:10:3d:b9:93:12:03:44:a9:08:e7:74:6c:be:9b:d1: 61:89:0f:ba:90:c1:d3:6e:b8:c7:c3:a1:65:d7:01:1f:56:38: 54:a5:56:21 -----BEGIN X509 CRL----- MIICGTCCAQECAQEwDQYJKoZIhvcNAQEFBQAwGjELMAkGA1UEBhMCSlAxCzAJBgNV BAMMAkNBFw0xMjEyMTYwNjI0MzZaFw0xMjEyMjEwNjAwMDBaMEgwIAIBARcNMTIx MjE2MDYyNDM2WjAMMAoGA1UdFQQDCgECMCQCBQCugkG6Fw0xMjEyMTYwNjI0MzZa MAwwCgYDVR0VBAMKAQGgaTBnMAoGA1UdFAQDAgEBMB8GA1UdIwQYMBaAFOGS5819 NM270OSS1FXvitkI8Z1sMDgGA1UdHAQxMC+gIqAghh5odHRwOi8vZXhhbXBsZS5j b20vZXhhbXBsZS5jcmyhAwEB/6MEAwIAfzANBgkqhkiG9w0BAQUFAAOCAQEAPs0E HjsOgTsR/8+x+/FK7/PSApY7HTYOW8sbYOuNuST3mCBRoVjN171k+1wbUQUNMFp+ T1hwIqenVDPNobXH5GQhROVPilMn9RR/Bo3smA96/sWPxb19vDlrFpXQIqVm8lNC 1iVHRHwWhqLiuYiBkAxADOtXiCsNP5MeZSllqJFVoQr8wgf/lixeyq9STgx/HGHG 9xuBe0eauqy55yCgdCzcMP8az0j7eCS9VwULLkFLhUKaEKT95Oh49wHZn/m2lsbC Q/ThMrHjZup4WMVY6wdFvDc+bld5i1gUED25kxIDRKkI53RsvpvRYYkPupDB0264 x8OhZdcBH1Y4VKVWIQ== -----END X509 CRL-----
処理
- 以前に処理された CRL はローカル CRL キャッシュに保存されます
- delta CRL は使用しないため,これ以下では complete CRL は単に CRL と記載します
- ここでは,上記の証明書と CRL の場合に検証する内容のみを記載します
- Extension の内容が異なる場合等には,検証項目数が増減するかもしれません
- RFC では Extension にない CRL による検証も想定しているので,ソフトウェアの仕様次第で手順は増えそうですが…
- Extension の内容が異なる場合等には,検証項目数が増減するかもしれません
1. CRL の Next Update の値のチェック
CRL の Next Update (次回発行日時) を確認します
CRL の下記の箇所です
Next Update: Dec 21 06:00:00 2012 GMT
- 現在の時刻が Next Update よりも前の場合は,次の処理へ
- 現在の時刻が Next Update よりも後の場合は,CRL を更新して,現在の時刻が Next Update よりも前であることを検証します
2. CRL の Issuer と証明書の Issuer が一致することの確認
CRL の Issuer は下記の箇所です
Issuer: /C=JP/CN=CA
証明書の Issuer は下記の箇所です
Issuer: C=JP, CN=CA
テキストで表示させた場合の表示形式は異なりますが,バイナリで確認してみると,双方ともに
301a310b3009060355040613024a50310b300906035504030c024341 (16 進数)
であることが分かります
3. CRL に Issuing Distribution Points CRL Extesnsion (以下 IDP Extension) を含む場合の検証
今回作成した CRL はこの条件に該当します
IDP Extension は,CRL の下記の箇所です
X509v3 Issuing Distrubution Point: Full Name: URI:http://example.com/example.crl Only User Certificates Only Some Reasons: Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Privilege Withdrawn
3.1. IDP Extension に Distribution Point Name が 存在しており,その Distribution フィールドに Distribution Point が存在している場合の検証
IDP Extension の DistributionPointName の 1 つが,証明書の CRL Distribution Points Extension (以下 DP Extension) の Distribution Point の DistributionPointName の 1 つに一致することを検証します
CRL の IDP Extension の Distribution Point Name
X509v3 Issuing Distrubution Point: Full Name: URI:http://example.com/example.crl
証明書の DP Extension の Distribution Point Name
X509v3 CRL Distribution Points: Full Name: URI:http://example.com/example.crl
上記の項目が一致することを検証します
4. CRL の IDP Extension に、onlyContainsUserCerts が含まれている場合
対象の証明書が CA 証明書で無いことを検証するために,CA:TRUE の Basic Constraints Extension が含まれていないことを確認します
CRL の IDP Extension の該当箇所です
X509v3 Issuing Distrubution Point: Full Name: URI:http://example.com/example.crl Only User Certificates
Only User Certificates が含まれているため Basic Constraints Extension が CA:TRUE でないことを確認します
end entity 証明書の basicConstraints Extension の該当箇所です
X509v3 Basic Constraints: critical CA:FALSE
5. onlyContainsCACerts が IDP Extension に含まれている場合
今回の CRL には onlyContainsCACerts が IDP Extension に含まれていないため,この条件に該当しません
X509v3 Issuing Distrubution Point: Full Name: URI:http://example.com/example.crl Only User Certificates Only Some Reasons: Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Privilege Withdrawn
6. onlyContainsAttributeCerts が含まれていないことの確認
今回の CRL には onlyContainsCACerts が IDP Extension に含まれていません
X509v3 Issuing Distrubution Point: Full Name: URI:http://example.com/example.crl Only User Certificates Only Some Reasons: Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Privilege Withdrawn
7. この CRL でサポートされている失効理由の取得
CRL の IDP Extension に SomeReasons が含まれており、証明書の DP が reasons を含んでいる場合は,双方に共通の失効理由を取得します
CRL の IDP Extension の onlySomeReasons
Only Some Reasons: Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Privilege Withdrawn
証明書の DP Extension の reasons
Reasons: Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Privilege Withdrawn
CRL の IDP Extension の onlySomeReasons と,証明書の DP Extension の reasons の共通箇所は下記の 7 つです
- Key Compromise
- CA Compromise
- Affiliation Changed
- Superseded
- Cessation Of Operation
- Certificate Hold
- Privilege Withdrawn
8. 上記で取得した失効理由の集合が,これまでに検証した CRL がサポートしている失効理由に含まれていなかった失効理由を 1 つ以上含んでいることの確認
複数の Distribution Point のそれぞれに CRL がある場合は、Distribution Point 毎にサポートする失効理由が異なります
そのため,1 つ目の CRL の検証の場合は,これまでに検証した CRL がないため,必ず失効理由を 1 つ以上含みます
2 つ目以降の CRL の検証の場合はサポートしている失効理由がそれまでの CRL と重複していないことを確認します
9. CRL の発行者についての認証パスの取得と検証
CRL 発行者の認証パスのトラストアンカーと,対象の証明書のトラストアンカーは同じである必要があります
今回は、証明書および CRL は、同一の Root CA から直接発行していますので、CRL ン発行者の認証パスのトラストアンカーと、対象の証明書のトラストアンカーは、下記の CA です
Subject: C=JP, CN=CA
10. Key Usage Extension が CRL 発行者の証明書に存在している場合の検証
Key Usage Extension に cRLSign が含まれていることを確認します
CRL 発行者の証明書の Key Usage Extension
X509v3 Key Usage: critical Certificate Sign, CRL Sign
11. 上記 9 で検証された公開鍵を使用して,CRL の署名を検証
CRL 発行者の公開鍵を使用して,CRL の署名を検証します
下記のコマンドを使用した場合の verify OK に該当する(はず)
$ openssl crl -CAfile ca.pem -in example.crl verify OK -----BEGIN X509 CRL----- MIICGTCCAQECAQEwDQYJKoZIhvcNAQEFBQAwGjELMAkGA1UEBhMCSlAxCzAJBgNV BAMMAkNBFw0xMjEyMTYwNjI0MzZaFw0xMjEyMjEwNjAwMDBaMEgwIAIBARcNMTIx MjE2MDYyNDM2WjAMMAoGA1UdFQQDCgECMCQCBQCugkG6Fw0xMjEyMTYwNjI0MzZa MAwwCgYDVR0VBAMKAQGgaTBnMAoGA1UdFAQDAgEBMB8GA1UdIwQYMBaAFOGS5819 NM270OSS1FXvitkI8Z1sMDgGA1UdHAQxMC+gIqAghh5odHRwOi8vZXhhbXBsZS5j b20vZXhhbXBsZS5jcmyhAwEB/6MEAwIAfzANBgkqhkiG9w0BAQUFAAOCAQEAPs0E HjsOgTsR/8+x+/FK7/PSApY7HTYOW8sbYOuNuST3mCBRoVjN171k+1wbUQUNMFp+ T1hwIqenVDPNobXH5GQhROVPilMn9RR/Bo3smA96/sWPxb19vDlrFpXQIqVm8lNC 1iVHRHwWhqLiuYiBkAxADOtXiCsNP5MeZSllqJFVoQr8wgf/lixeyq9STgx/HGHG 9xuBe0eauqy55yCgdCzcMP8az0j7eCS9VwULLkFLhUKaEKT95Oh49wHZn/m2lsbC Q/ThMrHjZup4WMVY6wdFvDc+bld5i1gUED25kxIDRKkI53RsvpvRYYkPupDB0264 x8OhZdcBH1Y4VKVWIQ== -----END X509 CRL-----
12. CRL 上の証明書を検索して,対象の証明書の発行者とシリアル番号が一致するエントリがあるかの確認
一致するエントリが存在している場合は,その失効理由を取得します
失効理由は,CRL entry extensions の CRL Reason Code の箇所です
CRL やエントリによっては,CRL entry extensions が存在しない場合があります
CRL entry extensions が存在しない場合の失効理由は,unspecified とします
CRL entry extensions が該当箇所です
Serial Number: AE8241BA Revocation Date: Dec 16 06:24:36 2012 GMT CRL entry extensions: X509v3 CRL Reason Code: Key Compromise
13. これまで取得した CRL がサポートしている失効理由に,上記の 7 で取得した失効理由を追加します
これは,失効状態の判定と,次の(他に入手可能な) CRL 処理で使用します
14. 13 で追加した失効理由も含めて 1 つ以上の CRL を検証して,全ての失効理由を取得しているか,または,この時点で対象の証明書の失効理由を取得している場合
この時点で失効の状態は決定しています
- 全ての失効理由が揃うまで CRL を取得したにもかかわらず,対象の証明書のエントリが CRL 上にない場合は,失効されていません(UNREVOKED)
- 対象の証明書の失効理由を取得している場合は,その失効理由(今回用意した証明書の場合は Key Compromise)です
15. 14 で失効の状態が決定せずに,また,入手可能な全ての CRL を検証しても,全ての思考理由が揃わなかった場合
失効の状態は UNDETERMINED となります
疑問点
- 現在の時刻が Next Update よりも後の場合はどこから CRL を取得するのか
- はじめにチェックする割にはこの時点では cRLDistributionPoints は取得していないはず
- Distribution Point 毎にサポートされる失効理由は,他の Distribution Point の CRL がサポートしていない失効理由を含んでいれば,一部が重複してもよいか
- IDP には name は 1 つしかないのに複数を想定している記述になっているのはなぜか
- 読み間違えているかな…
- UNDETERMINED の場合はどう処理すべきか
- CRL の検証失敗で、この証明書は受け入れない、または、受け入れるのどちらになるのか