web-dev-qa-db-ja.com

安全と見なされない暗号化アルゴリズムは何ですか?

どの暗号アルゴリズムが安全であるとは考えられていませんが、それでも広く使用され、標準ライブラリで利用できますか?該当する場合は、安全な代替案について言及します。

25
Olivier Lalonde

これらは最も一般的です:

  • MD5-SHA512を使用
  • SHA1-SHA512を使用します(これは実際には安全ではありませんが、その古さを示しており、今後数年で壊れやすくなることに注意してください...)
  • DES/3DES-AESを使用
21
AviD

2010年末の時点で、米国政府はNISTの非常に精通した人々からの推奨に基づいて、これらのアルゴリズムを非推奨にしています。

  • SHA-1
  • 1024ビットRSAまたはDSA
  • 160ビットECDSA(楕円曲線)
  • 80/112ビット2TDEA(2つの主要なトリプルDES)

MD5は、他の多くの古いアルゴリズムとともに、政府が使用するための許容可能なアルゴリズムではありませんでした。

2030年までのセキュリティのために、少なくともSHA-224、RSAまたはDSAには2048ビット、224ビットEDCSA、およびAES-128または3キートリプルDESの使用を推奨しています。

これは数年前から行われています。この投稿とそれが参照するNISTドキュメントを参照してください: http://securitymusings.com/article/1587/algorithm-and-key-length-deprecation

更新:もう1つの簡潔で有用なアドバイスは、Colin Percivalによる Cryptographic Right Answers です。

15
nealmcb

安全ではないが広く使用されている暗号化アルゴリズムは次のとおりです。

  • ハッシュ関数:MD4、MD5、(SHA-1)(MD2も安全ではありませんが、広く使用されていません。SHA-1は「弱体化」されているだけです。MD4およびMD5は、暗号耐性が必要ない状況でも広く使用されているため、そうではありません。問題)

  • 対称暗号化:DES(56-bit key)、RC4(非ランダム性-ただし、RC4のほとんどのセキュリティ問題は、アルゴリズム自体ではなく、その使用方法にあります)、ストリームZipアーカイブ形式の暗号化(新しいZipユーティリティはAESを使用)

  • 非対称暗号化:キーが短すぎる(つまり768ビット以下)RSA、パディングが不適切なRSA(例:ISO 9796-1)、素数が小さすぎるDiffie-Hellman(768ビット以下)(Diffie-Hellmanは、実際には非対称暗号化アルゴリズムですが、鍵合意アルゴリズムですが、非対称暗号化のほとんどの使用法は、偽装された鍵合意です)

  • デジタル署名:キーが短すぎる(つまり、768ビット以下)RSA

  • 自分を過剰に賢明にした人々からの多くの(多すぎる)手作りアルゴリズム。 CSSの代表的な例、DVDの暗号化

安全な代替策:ハッシュ用のSHA-256(米国陸軍と同じサイズのフェチがある場合、および/または32ビットシステムでパフォーマンスを殺したい場合はSHA-512)、対称暗号化用のAES。主要な合意については、ECDH(楕円曲線上のDiffie-Hellman)を標準のNIST曲線の1つ(例:P-224、K-233、またはB-233-ですが、P-256がより広くサポートされています)で検討してください。非対称暗号化の場合は、RSAを十分な大きさのキー(短期セキュリティの場合は1024ビット、できれば1536または2048ビット)と PKCS#1 パディング(v1.5 "古いスタイル"で問題ありません)を使用します。 OAEPの方が細かい)。署名については、ECDSA(ECDHの場合と同じ曲線)または十分に大きい鍵とPKCS#1パディング(v1.5またはPSS)を備えたRSAを検討してください。 決して独自のアルゴリズムを設計する(または、設計する場合はnever信じる安全であること)。

ただし、ほとんどのセキュリティ問題は、アルゴリズムの選択ではなく、それらの使用方法にあります。 WEPはRC4を使用しますが、RC4はWEPの多くの弱点の1つではありません。ソニーは安全なECDSAでPlayStation 3を保護しましたが、ランダムネスジェネレーターが故障し、破滅的な障害(秘密キーの公開...)が発生しました。

12
Thomas Pornin

コンテキストは重要です。 whatのセキュリティを確保しますか? どのように使用されていますか

例えば:

  • AES-256は「安全」です。 AES-256でブロック構造化データのストリームを暗号化することを決定するまで ECBモードの場合
  • AES-256は「安全」です。 CBCモードで同じキーで複数のメッセージを暗号化するまで および同じIV
  • AES-256は「安全」です。実装を使用するまでは、timingが異なります キーまたはデータのビットで
6
yfeldblum

この質問はすでに回答されていますが、多くの回答がありません。

  • RC2、RC4
  • MD4(一部のライブラリで引き続き使用可能)

さらに、それはアルゴリズムの使用と目的に依存します。破壊するDESは難しいことではありませんが、非常に高価です。攻撃者が誰であるか、およびセキュリティを破壊するためにどれだけの費用をかけることができるかを検討してください。

5
Henri

以下のリンクは、セキュリティ要件に適した方法とキーの長さをすばやく選択するのに役立ちます(これにより、安全でない方法を回避できます)。

「このWebサイトは、数式を実装し、よく知られた組織からのレポートを要約して、システムの最小セキュリティ要件をすばやく評価できるようにします。これらすべての手法を簡単に比較し、目的の保護レベルに適したキーの長さを見つけることもできます。」

4
Tate Hansen

明らかに、自作の暗号化システムを作成するプログラマーの数と同じくらい多くの壊れたアルゴリズムがありますが、概してそれらは特定のソフトウェアパッケージに制限されています。ドキュメントとアーカイブのいくつかの「パスワード保護」スキームが例として思い浮かびます。

ただし、アルゴリズムには(キーの長さではなく)欠陥があるために通常の使用では「壊れている」と見なされ、まだ広く採用され、受け入れられている唯一の汎用暗号化アルゴリズム(ハッシュアルゴリズムではありません)はRC4です。 。

RC4の既知の欠陥にもかかわらず、RC4が根強く残る主な理由は、最初の数Kの出力を破棄することで脆弱性を緩和できることです。また、これは唯一広く採用されているストリーム暗号であり、多くのプログラマーは、適切なブロックチェーンモードを使用してブロック暗号をストリーム暗号に変換できることに気付いていません。

2
tylerl

RC4はおそらく回避するのが最善です。その不適切な使用がWEPの問題の原因であり、専門家であっても正しく理解するのは難しいことを示唆しています。適切に使用するには、十分な大きさのキー(少なくとも128ビット)を選択し、キーとIVを安全な方法(たとえば、連結ではなくハッシュ)で混合し、キーストリームの最初の部分を破棄して弱いキーの攻撃(256)を軽減します。オクテットは最小)。

1
stiabhan

ECB(Electronic Code Book) モードで操作する場合、BlowfishやAESなどのブロック暗号を使用します。

0
Bradley Kreider