web-dev-qa-db-ja.com

「拡張フィールド」と「否認防止」を使用した証明書の違い

たとえば、2つの証明書ペアがあります。

  1. 最初のペア:

    • 「否認防止」(コンテンツコミットメントと呼ばれることもあります)を使用するサーバー証明書
    • 「拡張フィールド」のないクライアント証明書。
  2. 2番目のペア:

    • 「TLS Webサーバー認証」を使用するサーバー証明書
    • 「TLS Webクライアント認証」を使用するクライアント証明書。

両方のクライアントがサーバーに対して認証できます。しかし、これらすべての方法の違いは何ですか? 「否認防止」を使用する証明書では、「TLS Webクライアント認証」を使用する/使用しないすべてのクライアントを認証できますか?

しかし、「否認防止」なしの「TLS Webサーバー認証」では、「TLS Webクライアント認証」を使用してのみクライアントを認証できますか?

それが正しいか?

5
kay

拡張機能は、証明書に添付されたある種のポリシーメタデータにすぎません。技術的には、拡張機能に関係なく、証明書は同じままです。つまり、キーをIDにリンクするファイルです。その情報は、サーバー、クライアントの認証、他の証明書への署名、電子メールへの署名、ソフトウェア/ドライバーコードへの署名など​​、あらゆる目的に使用できます。

ここで拡張機能が機能します。アプリケーションは、この証明書に適用できる使用法を通知します。これにより、アプリケーションが無許可のコンテキストで証明書を見つけた場合、(または、使用法がクリティカルに設定されているかどうかに応じて)、証明書を無効として拒否します。

ただし、このチェックはアプリケーションレベルで行う必要があります。適切に実装されていないアプリケーションは、これらの使用法を適切にチェックせず、いつでも証明書を受け入れることができません。

また、補足すべき点がいくつかあります。

  • これらの拡張は制限にすぎません。拡張子のない証明書は、どの役割でも使用できます(使用制限はありません)。一方、一部の拡張子を含む証明書は、これらの拡張によって定義された使用に制限されます。
  • これらの拡張機能は、実際には2つの主要な部分に分かれています(1つは単に歴史的なものです)。

    • key usage(例では「否認防止」のように)は、この証明書に許可される低レベルの暗号の使用法を定義します。
    • 拡張キー使用法は、この証明書に対して許可されたより高いレベルの使用法を提供します(例では「TLS Webサーバー認証」と「TLS Webクライアント認証」)。
    • 一部のアプリケーションは、いわゆるNetscape Cert Typeも処理します。これは、拡張キーの使用法の前駆体と見なすことができ、「SSLサーバー」などの使用法を収集します。 「SSLクライアント」など.

    これらの主要な使用法はすべて関連付けられ、補足的な方法で使用されます。

  • 一部の拡張機能には「クリティカル」のフラグが付けられる場合があります。このフラグは、特定の拡張機能を認識しない/実装していないアプリケーションが証明書を処理する方法を決定します。このような状況で、「クリティカル」フラグが有効になっている場合、アプリケーションmust証明書を拒否します。このフラグが設定されていない場合、アプリケーションmayは証明書を受け入れます。

拡張キー使用法の名前(およびNetscape証明書タイプ)は、理解するのがかなり簡単です。ただし、キーの使用法は、プロトコル(ネットワーク通信の場合)が証明書を使用する方法に大きく依存します。 SSL/TLSクライアント/サーバーアプリケーションでよく見られるキーの使用法は次のとおりです。

  • サーバー:デジタル署名、否認防止、キー暗号化、
  • クライアント:デジタル署名、キー暗号化、データ暗号化。

したがって、編集した質問に答えるには:

「否認防止」を使用する証明書では、「TLS Webクライアント認証」を使用する/使用しないすべてのクライアントを認証できますか?

しかし、「否認防止」なしの「TLS Webサーバー認証」では、「TLS Webクライアント認証」を使用してのみクライアントを認証できますか?

サーバーの証明書からの「否認防止」の使用状況は、サーバーではなくクライアントソフトウェアによってほとんどチェックされ、サーバーがクライアントの証明書を検証する方法には影響しません。

「TLS Webクライアント認証」を使用すると、クライアントの証明書がサーバーコンテキストで使用されなくなります。それがないと、認証はブロックされません。ただし、クライアントがこの使用法を使用せずに、代わりに「TLS Webサーバー認証」を使用して証明書を使用して認証を試みる場合、認証はサーバーによって拒否される可能性が最も高くなります。

4
WhiteWinterWolf