暗号解読とコンピュータセキュリティにおいて、辞書攻撃とは、キー空間の制限されたサブセットを使用して暗号または認証メカニズムを破る攻撃であり、その復号鍵またはパスフレーズを決定しようとし、時には過去のセキュリティ侵害のリストから得られる数千または数百万の可能性のある可能性[1]を試すこともあります。
技術
辞書攻撃は、事前に用意されたリストにあるすべての文字列を試すことに基づいています。このような攻撃は、もともと辞書にある単語を使用していました(そのため、辞書攻撃というフレーズが使われています)[2]。しかし、現在では、過去のデータ侵害から回復された何億ものパスワードを含む、はるかに大きなリストがインターネット上で利用可能です。[3]また、そのようなリストを使用して、似たような文字を数字に置き換えるなど、一般的なバリエーションを生成するクラッキングソフトウェアもあります。辞書攻撃は、成功する可能性が高いと思われる可能性のみを試します。辞書攻撃が成功することが多いのは、多くの人が普通の単語や一般的なパスワードである短いパスワード、または数字や句読点を追加するなどして得られるバリエーションを選択する傾向があるためです。辞書攻撃は、クラッキングソフトウェアのパターン生成と組み合わせた利用可能なリストで、よく使用される多くのパスワード作成手法がカバーされているため、成功することがよくあります。より安全な方法は、パスワードマネージャープログラムを使用するか、手動でパスワードを入力して、長いパスワード(15文字以上)または複数単語のパスフレーズをランダムに生成することです。
事前計算辞書攻撃/レインボーテーブル攻撃
辞書の単語のハッシュのリストを事前に計算し、そのハッシュをキーとしてデータベースに格納することで、時間と空間のトレードオフを実現できます。これにはかなりの準備時間が必要ですが、実際の攻撃をより速く実行できます。事前計算されたテーブルのストレージ要件はかつては大きなコストでしたが、現在ではディスク ストレージのコストが低いため、それほど問題にはなりません。事前計算された辞書攻撃は、大量のパスワードをクラックする場合に特に効果的です。事前計算された辞書は 1 回生成するだけでよく、完了すると、パスワード ハッシュをほぼ瞬時に検索して、対応するパスワードをいつでも見つけることができます。より洗練されたアプローチでは、レインボー テーブルを使用します。これにより、検索時間がわずかに長くなりますが、ストレージ要件が削減されます。このような攻撃によって侵害された 認証システムの例については、LM ハッシュを参照してください。
事前計算辞書攻撃、または「レインボーテーブル攻撃」は、ソルトを使用することで阻止できます。ソルトは、ハッシュ辞書を各パスワードごとに再計算するように強制する技術で、可能なソルト値の数が十分に大きい場合は事前計算を実行不可能にします。 [4]
辞書攻撃ソフトウェア
参照
- ブルートフォース攻撃
- 電子メールアドレスの収集
- 大陸間辞書シリーズ、オンライン言語データベース
- キー導出関数
- キーストレッチ
- パスワードクラッキング
- パスワードの強度
参考文献
- ^ Junghyun Nam、Juryon Paik、Hyun-kyu Kang、Ung Kim 、 Dongho Won (2009-03-01)。「単純な3者間鍵交換プロトコルに対するオフライン辞書攻撃」。IEEE Communications Letters。13 ( 3): 205–207。doi :10.1109/ LCOMM.2009.081609。ISSN 1089-7798 。
- ^ ジェフ・アトウッド。「辞書攻撃101」。
- ^ CrackStation のリスト。たとえば、14 億語以上あります。
- ^ 「CAPEC - CAPEC-55: Rainbow Table パスワードクラッキング (バージョン 3.5)」. capec.mitre.org . 2021年9月12日閲覧。
外部リンク
- RFC 2828 – インターネット セキュリティ用語集
- RFC 4949 – インターネット セキュリティ用語集、バージョン 2
- 米シークレットサービスは、容疑者のパスワードを保護する暗号鍵に対して分散辞書攻撃を使用する
- ブルートフォースのテスト (OWASP-AT-004) 2020-01-14 にWayback Machineでアーカイブされました
