SSLのさまざまな段階を理解しようとしています。私は SSL/TLSのしくみ について、特に 認証メカニズム についてのいくつかの素晴らしい回答、および他の多数のソースを参照しました。
しかし、これについてはまだ混乱しています。ECDH-ECDSA-AES256-SHAなどの暗号に対して_Au=ECDH
_は何を意味しますか。 cmd行から:
ECDH-ECDSA-AES256-SHA SSLv3 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256) Mac=SHA1
私が理解しているのは、サーバーの証明書にDH公開鍵が含まれることです(これは固定DHであるため)。証明書はCAによって署名されます。 DSS(aka DSA)キーがここで果たす役割は何ですか?証明書にDSS署名がありますか?
次に、認証はDSSなので、なぜ_Au=ECDH
_と言うのですか?
EDIT:SSLの認証メカニズムについて具体的に読むための優れたリソースの提案がある場合は、よろしくお願いします。
静的/固定ECDHまたは静的DHの場合、プレーンRSA(akRSA)のように、server proof-of-possessionは、keyexchangeが正しくFinishedを生成することにより暗黙的です。認証に使用される特定のアルゴリズムは実際には存在しないため、OpenSSLは、Au =アルゴリズムにKXアルゴリズムを使用してこれを明らかに示しています。注OpenSSLが実装した静的(非EC)DHはごく最近です。2015/ 01の1.0.2以降、Au = DHのケースは見られなかった可能性があります。
また、TLSv1.2では、ciphersuiteまたはCertReqメッセージ(使用されている場合)と一致するCA証明書のキータイプに対する以前の制限が削除され、代わりに新しいSignatureAlgorithms拡張がこれを制御することにも注意してください。以前のバージョンと比較した rfc5246 7.4.2 の表の後のテキスト、および 7.4.6 およびECCについては rfc4492への変更 を参照してください。
RFC4492セクション2.1 から取得
2.1。 ECDH_ECDSA
ECDH_ECDSAでは、サーバーの証明書にECDH対応の公開鍵が含まれ、ECDSAで署名されている必要があります。
ServerKeyExchangeを送信してはなりません(サーバーの証明書には、クライアントがプリマスターシークレットに到達するために必要なすべての必要なキー情報が含まれています)。
クライアントは、サーバーの長期公開鍵と同じ曲線でECDH鍵ペアを生成し、その公開鍵をClientKeyExchangeメッセージで送信します(クライアント認証アルゴリズムECDSA_fixed_ECDHまたはRSA_fixed_ECDHを使用する場合を除く)。この場合、セクション3.2またはセクション3.3からの変更適用)。
したがって、この場合、サーバーは、ECDSAで署名されたECDH対応の公開鍵を含むDSA証明書を提供します。したがって、最初の質問に答えるには、サーバーがECDSAで署名されている必要があります。鍵交換の認証(Au
)は引き続きECDSAで検証されます。私は間違っている可能性がありますが、これはOpenSSLの解析のエラーにすぎないと思われます。