「理想的なトランスポート層」を維持するHTTPSサービスを構成することは非常に困難になっています。マイナーな攻撃の影響を受けないようにしながら、ある程度の互換性を許可するようにHTTPSサービスを構成するにはどうすればよいですか?
TLSダウングレード攻撃 組み合わせ ビースト、クライム、ブリーチ、プードル SSLv3以前のすべてではないにしても、ほとんどをノックアウトします。 MicrosoftはデフォルトでSSLv3を無効にしています 、これは私にとって良い動きのように思えます。 RC4の弱点 、MD5、およびSHA1のため、選択する暗号スイートはさらに少なくなっています。
「理想的な」HTTPSサービスは、TLS 1.0、1.1、および1.2のみを暗号化したキーサイズのバリアントで有効にしますか?最も好ましい暗号スイートは何ですか?
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_DH_RSA_WITH_AES_128_GCM_SHA256
「理想的な」HTTPSサービスは、暗号化に続く鍵サイズのバリアントでTLS 1.0、1.1、および1.2のみを有効にしますか?
いいえ、「理想的な」HTTPSサービスは、TLS 1.2のみを有効にし、要件に一致するタイプのSHA-2、4096ビットのDHパラメーター、および521ビットのEC曲線を備えたAEAD(関連データによる認証済み暗号化)ベースの暗号スイートのみを有効にします(政府承認された、または政府が生成したものではありません)。
上記のサービスは、Android 4.3以前、IE 10以前、Java 7(少なくともu25)以前)、OpenSSL 0.9.8y以前(OpenSSL 1.0.0は単に私のソースにリストされていません)などです。ただし、 TLS 1.1以下でのみ機能する攻撃、SHA-1に依存する攻撃、およびCBCモードまたはRC4のような古い暗号に依存する攻撃。
https://www.ssllabs.com ごとのクライアント暗号スイートの制限。
最も好ましい暗号スイートは何ですか?
場合によります!
Foward Secrecyが必要だと思います。
「現時点では合理的に安全であると信じられている」が必要条件だと思います。
私は、「少なくとも1人の主要な俳優によって実際に実装されている」ことが要件だと思います。
に関するすべての要件は、暗号の一部または別のサブセットを使用する必要があります(Xを使用する必要がある、Yを使用できないなど)。
したがって、妥当な出発点として次のリストを提案します。最上位のカテゴリ(TLS 1.2 AEAD)から始め、次に、ユーザーベースで機能するレベルに到達するか、快適ゾーンの終わりに到達するまで、リストを下に移動してカテゴリを追加します。
各カテゴリの暗号スイートをできるだけ多く含めます。これにより、次の攻撃が発生したときに、影響を受ける暗号スイートを削除して、残りの暗号スイートを続行できるようになります。
脆弱性を示す暗号スイートを引き続き削除できるように、脅威環境に注意してください。
各主要カテゴリ内で、好みに応じて暗号スイートを注文または選択してください。DHEはもちろんECDHEよりも低速ですが、楕円曲線の起源を完全に排除します。現時点では、順序付けはトレードオフのようですが、速度が必要な場合は、TLS_ECDHE_ *を優先するか、必要とすることさえあります。現在一般的に実装されている楕円曲線が信頼できない場合、または 2015年8月からのNSA Suite Bガイダンスにより、以前のSuite B楕円曲線からの移行が近い将来に予定されていることを示すNSA Suite Bガイダンス 、そしてCPUを燃やすことをいとわない、TLS_DHE_ *スイートを好むまたは必要とする。
「通常の」証明書はRSA証明書であり、TLS_ECDHE_RSA_ *とTLS_DHE_RSA_ *の両方の暗号スイートで機能することに注意してください。 TLS_ECDHE_ECDSA_ *暗号スイートで機能するDSA証明書はこれまで非常にまれであり、多くのCAはそれらを提供していません。
ここに通常のプラグインを挿入します-独自のツールで暗号リストを試してください(openssl ciphers -v '...' for opensslベースのシステムの場合) https://www.ssllabs.comにアクセスします/index.html まず、さまざまなクライアントでサポートされている暗号スイートを確認し、次にサイトを設定してから、www.ssllabs.comに戻ってサーバーテストを実行します。
もちろん、_ ECDSA _暗号スイートにはECDSA証明書が必要ですが、それらを見つけるのは非常に困難です。
ETA:NSA Suite B ECアドバイス、およびIE 11/Win7は0x9fおよび0x9eをサポートするようになりました。
ETA:2016年1月の時点で、NIST SP800-52r1は変更されておらず、1つの新しい暗号スイート(0xc00a)がリストに追加されています。
ETA:2017年1月の時点で、RFC7905は3つのTLS 1.2 AEAD CHACHA20-POLY1305暗号を変更し、「最新の」ブラウザーは新しい箇条書きで述べたようにAEADサポートを大幅に改善しました。最新のIANA暗号スイートについては、 https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4 を参照してください。
私は通常、リンクだけで答えることはしませんが、この質問への答えは頻繁に変わっているので、私はそうしています。また、「理想的な」暗号スイートは、アプリケーションと対象読者に完全に依存します。どちらを制御し、どの選択肢を選択できますか(IE6をサポートする必要があるかなど)、これらすべてが「理想的な」答えに影響します。
とにかく、 https://cipherli.st/ には、一般的なアプリケーションの暗号スイートと構成サンプルの素晴らしい要約があります。他の人が指摘したように、 Qualys SSLLabs には設定をテストするための素晴らしいツールがあり、いくつかの素晴らしい説明があります。
良い出発点は Mozillaが推奨するTLS暗号 です。
パブリックHTTPS Webサイトのセキュリティをテストする良い方法は Qualys SSL Labs です。このサイトには、TLS/SSL(HTTPSに焦点を当てた)に関する多くの記事も含まれています。
SSL Labs経由で2016を更新:
主に、強力な認証とキー交換、転送秘密、少なくとも128ビットの暗号化を提供するAEADスイートに依存する必要があります。他の弱いスイートもサポートされている可能性がありますが、それらは、何もサポートしていない古いクライアントとのみ交渉されます。
避けなければならない時代遅れの暗号プリミティブがいくつかあります。
匿名Diffie-Hellman(ADH)スイートは認証を提供しません。
開始点として、RSAキーとECDSAキーの両方用に設計された次のスイート構成を使用します。
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES128-SHA
ECDHE-ECDSA-AES256-SHA
ECDHE-ECDSA-AES128-SHA256
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES128-SHA
ECDHE-RSA-AES256-SHA
ECDHE-RSA-AES128-SHA256
ECDHE-RSA-AES256-SHA384
DHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES256-GCM-SHA384
DHE-RSA-AES128-SHA
DHE-RSA-AES256-SHA
DHE-RSA-AES128-SHA256
DHE-RSA-AES256-SHA256
EDH-RSA-DES-CBC3-SHA
注この構成例では、OpenSSLに必要な非標準のスイート名を使用しています。他の環境(IISなど)での展開には、標準のTLSスイート名を使用する必要があります。