web-dev-qa-db-ja.com

認証局のkeyUsage拡張機能

プライベートCA(ルートまたは下位)を作成するときに選択するキーの使用法について質問があります。

ルートと発行元のWeb認証局を調べたところ、digitalSignaturecRLSignkeyCertSignを使用する傾向があります。しかし、CAの仕事は他の証明書とCRLに署名することなので、cRLSignkeyCertSignのみを使用するのが理にかなっていますか?

CAのキー使用法拡張をクリティカルとしてマークする必要がありますか? (私の推測はイエスですが、それを正当化する方法がわかりません。)

誰かがこれらの選択の背後にある方法論を明確にできますか?

編集:

C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3

-----BEGIN CERTIFICATE----- MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/ MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8 SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0 Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj /PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/ wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6 KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg== -----END CERTIFICATE-----

2
No name

OCSPの場合?

OCSP用だと思います。

CABフォーラムのベースライン要件 を確認しました。 digitalSignatureの全文検索を行ったところ、ヒットは2つしかありませんでした。

ヒット1/2はルートCA用です。

b。 keyUsage
この拡張は存在しなければならず、クリティカルとしてマークされている必要があります。 keyCertSignおよびcRLSignのビット位置を設定する必要があります。ルートCA秘密鍵がOCSP応答の署名に使用される場合、digitalSignatureビットを設定する必要があります。

ヒット2/2は下位CA向けです。

e。 keyUsage
この拡張は存在しなければならず、クリティカルとしてマークされている必要があります。 keyCertSignおよびcRLSignのビット位置を設定する必要があります。 OCSP応答の署名に下位CA秘密鍵を使用する場合は、digitalSignatureビットを設定する必要があります。

3
StackzOfZtuff

私はあなたが正しいと思います。 RFC 5280セクション4.2.1.3。キーの使用法 は次のように述べています(鉱山を強調):

KeyUsage ::= BIT STRING {
       digitalSignature        (0),
       nonRepudiation          (1), -- recent editions of X.509 have
                            -- renamed this bit to contentCommitment
       keyEncipherment         (2),
       dataEncipherment        (3),
       keyAgreement            (4),
       keyCertSign             (5),
       cRLSign                 (6),
       encipherOnly            (7),
       decipherOnly            (8) }

KeyUsageタイプのビットは次のように使用されます。

証明書(ビット5)とCRL(ビット6)の署名以外のデジタル署名*の検証にサブジェクト公開鍵が使用されると、digitalSignatureビットがアサートされます*(エンティティ認証サービス、データオリジン認証サービス、整合性サービスで使用されるものなど)。

...

ただし、サブジェクトの公開鍵を使用して証明書やCRL、その他のオブジェクトの署名を検証する場合は、keyCertSignビットやcRLSignビットに加えて、digitalSignatureビットやnonRepudiationビットを設定できます。

私の推測では、CAはルートキーを他の種類の認証に使用する機能を必要としています。誰が知っているのか、おそらくログに署名するのか?それか、設定ミスです。


完全な開示、私はEntrustで働いているので、それらを例として使用します:publicly-trusted Entrust Root Certificate Authority—G2 であり、L1KおよびL1M発行CAにはdigitalSignature keyUsage、それは確かに必要ではありません:

Entrust Root Certificate Authority—G2 does not have the digitalSignature key usage


あなたの他の質問については:

CAのキー使用法の拡張機能に、重要かどうかをマークする必要がありますか? (私の推測はイエスですが、それを正当化する方法がわかりません)

RFC 5280(同じセクション)は言う:

存在する場合、適合CAはこの拡張をクリティカルとしてマークする必要があります(SHOULD)。

これを非クリティカルとしてマークするとどうなるかわかりませんが、一部のクライアント/検証機能が正常に動作し、一部の動作がおかしいと思います。

3
Mike Ounsworth