web-dev-qa-db-ja.com

安全と見なすことができるSSL / TLS暗号はどれですか?

OpenSSL Webサイト は、SSLおよびTLSで使用可能なさまざまな暗号の長いリストを提供します。私の質問は、これらの暗号のうちどれが今日安全であると考えられるかです。私はそれが問題ではないと思うが、私は特にHTTPSに興味があります。私は Apacheの推奨事項 を使用してSSLCipherSuite HIGH:MEDIUMを使用することを認識しており、これがベストプラクティスであることに同意します。

私が探しているのは、公式の標準、またはよく知られたセキュリティ組織のような受け入れられて認められた情報源からの最近の論文です。特定のキー長の特定の暗号が安全であると見なされる期間の推定を含むそのような論文が存在する場合、これはさらに優れています。そのようなものは存在しますか?

33
Demento

NULL」が付いた暗号スイートは、データの暗号化を提供せず、整合性チェックのみを提供します。これは、ほとんどの用途で「安全でない」ことを意味します。

EXPORT」が付いた暗号スイートは、設計上、脆弱です。それらは暗号化されていますが、アマチュアハードウェア(たとえば、基本的なホームPC-40に依存する対称暗号化)でさえクラックされるほど十分に小さいキーでのみビットキー)。これらのスイートは、暗号システムに関する米国の輸出規則(2000年までは非常に厳格であった規則)に準拠するように定義されました。現在、これらの制限は解除され、「EXPORT」暗号スイートをサポートする意味はほとんどありません。

"DES"( "3DES"ではない)を含む暗号スイートは、古いブロック暗号である [〜#〜] des [〜#〜] の対称暗号化に依存しています56ビットキーを使用する(technically、64ビットキーを使用しますが、それらのビットのうち8つを無視するため、有効なキーサイズは56ビット)。 PCでは5分ではありませんが、56ビットのキーは解読可能です。 ディープクラック は、1998年に約250,000ドルで製造された専用のマシンであり、56ビットDESキーを平均4.5日以内にクラックできました。テクノロジーは進歩しました、これは 数十のFPGA で再現できますが、市販のハードウェアハードウェアではありませんが、多くの人が手に入れることができます。

OpenSSLでサポートされている他のすべての暗号スイートは脆弱ではありません。それらに問題がある場合は、アルゴリズム自体の暗号の脆弱性が原因ではありません。 「MD5」を特徴とする暗号スイートは、実際の既知の弱点のためではなく、広報のために避けたい場合があります。 MD5 は、ハッシュ関数として「壊れています」。なぜなら、その関数の多くの衝突を効率的に見つけることができるからです。 SSLで使用されているため、これはMD5の問題ではありません。それでも、MD5の評判が悪くなるにはそれで十分であり、それを避ける方がよいでしょう。

暗号スイートは、サーバーキー(サーバー証明書の公開キー)のサイズに何も適用しないことに注意してください。これは、十分な堅牢性を提供するのに十分な大きさでなければなりません(RSAまたはDSSの場合、少なくとも1024ビット、1536ビットにしてください優れています-ただし、あまりプッシュしないでください。キーのサイズに応じて計算オーバーヘッドが大幅に増加するためです)。


[〜#〜] nist [〜#〜] 、あらゆるセキュリティ組織と同じように受け入れられ、よく知られている米国の連邦組織は、いくつか公開しています 推奨事項 (特に22および23ページの表を参照)。これは2005年のものですが、現在でも有効です。 NISTは「承認済み/未承認」ベースで動作することに注意してください。「承認されていない」アルゴリズムが何らかの方法で弱いと主張することはありません。彼らが組織として彼らを保証しないということだけです。

37
Thomas Pornin

Eric Rescorlaによる SSLおよびTLS:安全なシステムの設計と構築 を読みましたか?これは、SSLに関するIETF標準ワーキンググループの主要な貢献者の1人によって書かれた、SSLで受け入れられているクラシックです。さまざまなSSL暗号スイートの強度に関する適切なステートメントが含まれていると思います。

それがあなたのニーズを満たさない場合は、友好的なライブラリに行き、それらが持っているすべての暗号化とセキュリティの教科書をチェックし、SSL/TLSで書かれたセクションを読んでください。

基本的に、すべてのセキュリティ専門家が既に知っている事実を文書化するための参照を探している場合は、最善の引用を見つけるために自分でいくつかのレッグワークを行う必要があるかもしれません。

4
D.W.

Thomas Porninの回答へのいくつかの小さな追加:NIST SP800-52は一般にTLSの公式のままです(多少古くなっている場合)が、キーサイズについては特にSP800-57に取って代わられました:part1はキーサイズとライフタイム全般をカバーし、最後に改訂2012年; part3は、2010年に発行されたTLSを含むいくつかの特定のアプリケーションをカバーしています。簡単に言えば、2011年にRSA DSAおよびDH 2048ビットとECC 224ビットを要求しようとしましたが、プッシュバックが多すぎたため、2014年になりました-近日公開! (2048または3072ビットでのDSAは、FIPS 186-3で2009年に指定されていますが、まだ実装があまり見られません。opensslでもかなりぎこちなく実行されました。)www.CABforum.org concurs 2014年にRSA 2048を使用します。「公式」CAから証明書を取得する必要はありませんが、一般的な「標準」の方法よりも明らかに少ない方法で行うと、懐疑的な扱いを受ける傾向があります。FWIWNISTは現在、その強さ(Z_n 2048、 ECC 224、対称112)は2030年まで「許容可能」であり、その後3072/256/128が必要です。それらが間違っていることが判明した場合でも、それらを使用すると、あなたが見つけることができるのと同じくらい良い言い訳があります。最後に、csrc.nist.govはcybsersecurityのより良い開始URLです(NISTは全体として他にもいくつかのことを行います)。

3
Dave Thompson

公式の推奨に追いつくことは、ほとんどのユーザーにとって困難な作業かもしれません。

最新の暗号の最新リストを取得する最も簡単な方法は、定期的に Mozilla SSL Configuration Generator を確認することです。

2016年8月現在、(順序付けされた)リストは次のとおりです。

ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-CHACHA20-POLY1305
ECDHE-RSA-CHACHA20-POLY1305
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256

これらの暗号を単に適用するだけでなく、以下を確認してください。

  • tLSバージョンを1.2(またはそれ以上)に設定します
  • safeカーブを使用します( safecurves.cr.yp.to で定義されています)。

注:これらのすべての暗号は、(今後の)TLS1.3と互換性があります。

2
ATo