キー使用拡張と拡張キー使用

キー使用拡張では、証明書に含まれるパブリックキーの目的を定義します。キー使用拡張によって、パブリックキーの使用対象を必要な操作に制限できます。たとえば、パブリックキーを署名または署名の検証でのみ使用する場合は、Digital signature や Non-repudiation の拡張を有効にします。また、キー管理専用に使用する場合は、Key Encipherment を有効にします。

キー使用拡張

CA プロセスを使用して作成された証明書で使用できるキー使用拡張を次の表に示します。

注: デフォルトでは、Digital signature と Data encipherment のキー使用拡張は、すべてのインターネット証明書で有効になっています。
表 1. キー使用拡張

キー使用拡張

説明

Digital signature

パブリックキーをデジタル署名機構で使用して、Non-repudiation、Certificate signing、CRL signing 以外のセキュリティサービスをサポートする場合に有効にします。Digital signature は、多くの場合、エンティティ認証やデータ送信元認証で整合性を保つために使用されます。

Non-repudiation

パブリックキーを使用して、Non-repudiation サービスを提供するために使用する Digital signature を検証する場合に有効にします。Non-repudiation を指定すると、署名エンティティが何らかのアクション (Certificate signing と CRL signing を除く) を間違って拒否しないように保護できます。

Key encipherment

キーを暗号化するプロトコルと証明書を併用する場合に有効にします。一例である S/MIME エンベロープでは、証明書のパブリックキーを使用して高速 (対称) キーが暗号化されます。SSL プロトコルでも、キー暗号化が実行されます。

Data encipherment

暗号化キーではなくパブリックキーを使用してユーザーデータを暗号化する場合に有効にします。

Key agreement

パブリックキーの送信者と受信者が、暗号化を使用しないでパブリックキーを抽出する必要がある場合に有効にします。このキーを使用すると、送信者と受信者の間でやり取りするメッセージを暗号化できます。これは通常、Diffie-Hellman 暗号化方式と併用します。

Certificate signing

対象者のパブリックキーを使用して、証明書の署名を検証する場合に有効にします。この拡張は、CA 証明書でのみ使用できます。

CRL signing

対象者のパブリックキーを使用して、失効情報 (CRL など) について署名を検証する場合に有効にします。

Encipher only

Key agreement も有効にする場合のみ有効にします。Key agreement を実行しながら、パブリックキーをデータの暗号化のみに使用できます。

Decipher only

Key agreement も有効にする場合のみ有効にします。Key agreement を実行しながら、パブリックキーをデータの暗号化解除のみに使用できます。

拡張キー使用

拡張キー使用によって、キー使用拡張をさらに微調整できます。拡張キーには、critical と non-critical があります。拡張が critical の場合、証明書は指定された目的 (複数可) のためだけに使用する必要があります。証明書を他の目的で使用すると、CA のポリシーに違反することになります。

non-critical の場合、該当キーの使用目的 (複数可) を示し、キーまたは証明書が複数個あるエンティティの正確なキーまたは証明書を検索する際に使用できます。その場合、拡張は、単なる情報フィールドになり、CA がキーの使用を特定の目的に制限していることを意味しません。ただし、証明書を使用するアプリケーションでは、証明書を受け入れることができるように、特定の目的を指定するよう要求する場合もあります。

1 つの証明書に critical なキー使用フィールドと critical な拡張キー使用フィールドが含まれる場合、それらのどちらのフィールドも別々に処理する必要があります。また、証明書は、両方のフィールドと一致する目的でのみ使用しなければなりません。両方のフィールドで一貫性のある目的が存在しない場合、証明書はいかなる目的でも使用してはいけません

表 2. 拡張キー使用

拡張キー

対応するキー使用拡張

TLS Web server authentication

Digital signature、Key encipherment、Key agreement

TLS Web client authentication

Digital signature、Key agreement

Sign (downloadable) executable code

Digital signature

Email protection

Digital signature、Non-repudiation、Key encipherment、Key agreement

IPSEC End System (host or router)

Digital signature、Key encipherment、Key agreement

IPSEC Tunnel

Digital signature、Key encipherment、Key agreement

IPSEC User

Digital signature、Key encipherment、Key agreement

Timestamping

Digital signature、Non-repudiation

表 3. 必須のキー使用拡張の例

アプリケーション

必須のキー使用拡張

SSL クライアント

Digital signature

SSL サーバー

Key encipherment

S/MIME の署名

Digital signature

S/MIME の暗号化

Key encipherment

証明書への署名

Certificate signing

オブジェクト署名

Digital signature