暗号スイートTLS_DHE_RSA_WITH_AES_256_CBC_SHA
(0x0039)に関する質問です。
これは、2002年に RFC3268 で最初に言及されました。2002年に利用可能な最高のTLSバージョンは、TLS 1.0( RFC 2246 )でした。したがって、RFC3268は、TLS 1.0に新しい暗号スイートを提供する拡張機能でした。上記の暗号スイートは RFC4346 (TLS 1.1)および RFC5246 (TLS 1.2)にもリストされています。
暗号スイートをチェックするためにさまざまなツールを実行していました。最初openssl s_client
:
$ openssl s_client -cipher DHE-RSA-AES256-SHA -connect www.uni-luebeck.de:443
...
Protocol : TLSv1.2
Cipher : DHE-RSA-AES256-SHA
...
そしてnmapで:
nmap --script ssl-enum-ciphers -p 443 www.uni-luebeck.de | grep "ciphers\|TLSv\|TLS_DHE_RSA_WITH_AES_256_CBC_SHA"
| ssl-enum-ciphers:
| SSLv3: No supported ciphers found
| TLSv1.0:
| ciphers:
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA - strong
| TLSv1.1:
| ciphers:
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA - strong
| TLSv1.2:
| ciphers:
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA - strong
同じ暗号スイートをopenssl ciphers
でチェックすると、SSLv3が返されますが、これは私には間違っているようです:
$ openssl ciphers -V | grep 0x39
0x00,0x39 - DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
OpenSSLには、SSL/TLSの「暗号」の3つのカテゴリしかありません(実際には暗号スイートであり、[〜#〜] evp [〜#〜]openssl enc
で使用される名前付き暗号と混同しないでくださいかなり異なります):
SSLv2
はSSL2エンコーディング(3バイト)を使用し、SSLv2でのみ使用できます(もちろん、これはまったく使用すべきではなく、デフォルトでは、最近のバージョンのコンパイル時に#ifedされています)。
SSL3エンコーディング(2バイト、TLS1.0から1.2で同じ)を使用するSSLv3
およびSSL3で定義されたレコード形式(実際にはCBCであるGenericStreamおよびGenericBlock)は、TLS1.0から1.2で基本的に変更されていません(1.1を除く) Vaudenayによって報告され、BEASTによって悪用された、露出したIVの問題を修正する
SSL3と同じエンコーディングを使用するTLSv1.2
は、TLS1.2にのみ存在するAEAD(更新)またはHMAC-SHA2のレコード形式
この分類の結果として、OpenSSLは、TLS1.1および1.2でのエクスポート暗号スイートの使用をサポートしています。ただし、4346は(特別なエクスポートKDFとともに)それらを公式に削除し、シングルDESおよびIDEA = 5246が公式に「非推奨」であってもTLS1.2のスイート-ただし、それらがまったくサポートされている場合(最近のバージョンではほとんどがデフォルトではサポートされていません)と、ピアが同意する場合(ほとんどの場合サポートされません)のみ。
別のサイトに対してあなたが言及したopensslコマンドを試すと:
openssl s_client -cipher DHE-RSA-AES256-SHA -connect www.verificationlabs.com:443
結果から次のことがわかりますが、SSLv3とTLSv1の両方に適用されることを意味します。*:
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
したがって、これはOpenSSLが回答をフォーマットする方法の問題である可能性があります。
関連リンク: