問題タブ [rainbowattack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cryptography - レインボーアタックとは正確には何ですか?
私はソルトとパスワードハッシュに関するいくつかの記事を読んでいて、数人の人々がレインボー攻撃について言及していました。レインボーアタックとは正確には何ですか?それを防ぐための最良の方法は何ですか?
windows - レインボー テーブル: どうやって防御するの?
最近、Windows 用の l0pht-CD を入手して、自分の PC で試してみたところ、うまくいきました!!
2600hertz.wordpress.com/2009/12/22/100-windows-xp-vista-7-パスワード-回復
同様の方法で pwd-s を格納する「ログイン シミュレーター」を設計しています。現在の実装は、上記の攻撃に対して脆弱です。このようなレインボー テーブル攻撃に対して強化する方法を (できるだけ簡単な言葉で) 誰でも説明できます。
MY GOAL : 「Login-Simulator」を可能な限り安全に構築します。(ハッキング大会を読んでください ;-) )
ありがとうございました。
passwords - レインボー テーブルの開発
私は現在、レインボーテーブルを使用してパスワードをクラックしようとしている並列コンピューティングプロジェクトに取り組んでいます。
私が考えた最初のステップは、長さ 5 または 6 のパスワード (最初は数字のパスワードのみ) をクラックする非常に小さなバージョンを実装することです。まず、構成設定についていくつか質問があります。
1 - 私が始めるべきサイズは何ですか。私の最初の推測では、1000 の初期、最終ペアを持つテーブルから始めます。始めるならこのサイズでいいのでは?
2- チェーンの数 - チェーンのサイズがどうあるべきかについて、オンラインで情報を得ることができませんでした
3 - リダクション機能 - どのように構築すればよいかについて誰かが私に情報を与えることができれば.
また、誰かが情報や例を持っていれば、それは本当に役に立ちます。
security - なぜレインボーテーブルと呼ばれるのですか?
レインボーテーブルと呼ばれる理由を知っている人はいますか? 「辞書攻撃」と呼ばれる攻撃があることを知ったのを思い出しました。なぜコール辞書ではないのですか?
hash - (部分的な) MD5 ハッシュからパスワードを取得することは可能ですか?
MD5 ハッシュの最初の 16 文字しかないとします。ブルート フォース攻撃、レインボー テーブル、またはその他の方法を使用して元のパスワードを取得した場合、何人の互換性のある候補が期待できますか? 1? (思わない) 10、100、1000、10^12? 大まかな回答でも大歓迎です (数値については、ハッシュ理論と方法論に一貫性を持たせてください)。
cracking - freerainbowtables.com からレインボー テーブルを読み取る
freerainbowtables.com から Rainbow Tables をダウンロードしました。その拡張子は .rti です。このファイルをテキスト ファイルまたはその他のファイルとして読み取る方法があるかどうか疑問に思っていました。このファイルを読み取り、その内容をハッシュマップに保存する簡単なプログラムを作成したいと考えています。私は私のプロジェクトのためにこれを行う必要があります。
私はグーグルを試し、フォーラムも調べましたが、今のところ運がありません. ヘルプ/リンクをいただければ幸いです。
security - レインボーテーブル攻撃は脅威でさえありますか?
単純な非ソルトハッシュ関数、単なる古いものを想定しましょう$hash = md5($pass)
。
敷地内:
- パスワードハッシュはすべてサーバー側で行われ、ハッシュはデータベースに保存されます。クライアントはこれらを見る方法がありません。
- レインボーテーブル攻撃は、パスワードを取得するためにハッシュの知識を持っている必要があります。
前提2を考えると、それはハッカーがすでにデータベースを制御していることを意味します。その時点で、あなたははるかに大きな問題を抱えています。
つまり、すでに侵害されたデータベース/システムからのパスワードの取得を保護するためだけに、レインボーテーブル攻撃を阻止しようとするポイントです。それはそれほど単純なことですか、それとも私が見逃している何か他のものがありますか。
私はすでにパスワードハッシュ手法に精通していますが、なぜレインボーテーブルについてこれほど多くの誇大宣伝があるのか疑問に思っています。ありがとう!
passwords - レインボーテーブルはどのくらいの長さのパスワードを使用しますか?
私の銀行はパスワードを14文字に制限しており、無塩のMD5またはSHAハッシュで暗号化されていると思われます。
14文字までのすべての可能なハッシュを含むレインボーテーブルはありますか?
python-2.7 - Python ルックアップによるレインボー アタックが失敗します。
与えられた課題にいくつか問題があります。要点は、「カーフォップ」に虹の攻撃をしなければならないということです。ジェネレーター テーブルを使用すると、RainbowAttack.py
スクリプトは次のようになります。
- キーは車にブロードキャストします (この場合は敵対者)
- カー/イブはチャレンジで応答し
u
ます。 - キーは、
MD5(s||u)
. - Eve は、Rainbow テーブルを使用して
s
.
MD5 を使用して、応答とキーをハッシュします。次に、ハッシュでリダクション関数を使用し、最初の 28 ビットを取得します。
f_i(x) = (f(x)+i) mod 2^28.
私のハッシュと削減関数
とにかく、スクリプトを実行すると、すべてのサクセサーを計算し、それらをレインボーテーブルのエンドポイントと比較します。一致が見つかった場合は、コリジョンの開始ポイントを取得し、キーがチェーンにあるかどうかを確認します始点から終点まで、ここにあるキーの 1 つが fop から得た応答と同じであれば、前のキーが車のドアを開けるための秘密であることがわかります。
現時点では、レインボー テーブルの開始位置または終了位置にあるキーのみを実際に見つけることができ、チェーン内にある場合は見つかりません。次のループのコードは、successors をチェックし、successor のいずれかがレインボーテーブルにあるかどうかをチェックし、もしそうなら、カー fop からの応答がそこにあるかどうかをチェックします。
リダクション関数はキーで使用されるものとは異なるため、後継者を計算するときに発生する問題である可能性があります(チェーン内のすべてのキーに対してリダクション関数がわずかに異なるようにインクリメントします)。
レインボー テーブルとファイルはこちら (github)にあります。
(derp.py(レインボーアタック)とtable1.csv(名前をtable.csvに変更))
hash - レインボー テーブル - 開始プレーンテキストの選択方法
1000 個の SHA1 ダイジェストとそれに対応するパスワード (それぞれ 24 ビットまたは 6 桁の 16 進数) が与えられる割り当てを実装しています。ディスク上に<2MBのレインボーテーブルを構築する必要があり、Javaでは、チェーンの長さが192を超えると検索プロセスが遅くなりすぎることがわかります。
要件は、このレインボー テーブルが少なくとも 45% (または 450) のハッシュを解決し、パスワードを返す必要があることです。リダクション関数は単純です - ハッシュから最上位の 32 ビット (d0、d1、d2 としましょう) を取得し、チェーンの現在の長さ (i は 0 から 191 になります) を d0 のみに追加します (以下のように)。 :
コード (ハッシュとリデュース) 関数が正しいと確信しています。しかし、この方法では、対応するパスワードに対して約 250 個のハッシュ (25% の精度) しか解決できません。
チェーンの数を増やすと、解決されたハッシュの対応する数の利益が減少することがわかります。チェーンの数を 2 倍にしても精度は 2 倍にはなりませんが、レインボー テーブルのサイズは既に 2MB を超えています (8MB のようです)。
最初の単語については、0 から始めて (全範囲は 0 から 2^24 になります)、1 ずつ増やしてみました。または、この範囲の間でランダムにしようとしました。レインボー テーブルにはループがなく、リダクション関数でいくつかの衝突が発生したとしても (リダクション関数が上記のように異なるのと同じ深さで)、エンドポイントが既にテーブルにあるチェーンは受け入れません。
精度を 45% に上げるために私ができることについてアドバイスをいただければ幸いです。