脆弱な暗号化
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/22 00:56 UTC 版)
保存したパスワードを保護するにあたり、設計の悪いパスワードハッシュ法をシステムが使っている場合、適切に考えられたパスワードであろうとも、攻撃者はそれを割り出す脆弱性を突くことができる。一例として、Microsoft Windows XP およびそれ以前のバージョンが標準で使っている、14文字以下でパスワードを保存するLMハッシュが挙げられる。LMハッシュはパスワードを全て大文字に変換し、それを 2 個の 7 バイト列に分け、別々にハッシュ値を求める。つまり、それぞれを個別にアタックすることができる。 MD5・SHA-512PA・SHA-1・RIPEMD-160 といった、より強力なハッシュ関数を使ったパスワード暗号法は、総当り攻撃や事前計算に対してまだ耐性を持っている。その種の攻撃は、ハッシュ関数を逆算するのではない。そうではなく、大量の単語やランダムな文字列のハッシュ値を求め、その結果を対象のパスワードハッシュ値と比較するのである。MD5-crypt や bcrypt のような現代的手法は、意図的に計算量の多いアルゴリズムを使っており、一定時間内に攻撃者が試行できる候補が比較的少なくなるようにしている。後述するソルトは事前計算攻撃の難易度を飛躍的に上げるものであり、場合によってはあらゆる攻撃に耐えうるものである。しかしその使用は、各々のケースについて評価すべきである。 既存の暗号ハッシュアルゴリズムの分析を進めることは常に可能なので、今日は充分に耐性を持つハッシュであろうと、明日もそうだとは限らない。長らく安全だと思われていた MD5 と SHA-1 は、効率的に行われる総当り攻撃に対しては充分でないことが示されている。(暗号ハッシュとは別の)暗号化アルゴリズムについても、同じ事が言える。(既知の総当り攻撃に対しまだ耐性があるという程度において)DES は既に破られており、その(56ビットという)短いキーは総当り攻撃に対してすら耐性がないことが明確かつ公然と分かるほど、コンピュータの性能は上がってきている。これらの方法で攻撃から保護されているパスワードはいずれ耐性を失い、それに対応しないパスワードは暴かれることになるだろう。長く使われてきた仕組みであろうと、今日のセキュリティ問題に対していつまでも無縁でいるわけにはいかない。
※この「脆弱な暗号化」の解説は、「パスワードクラック」の解説の一部です。
「脆弱な暗号化」を含む「パスワードクラック」の記事については、「パスワードクラック」の概要を参照ください。
- 脆弱な暗号化のページへのリンク