アカウント名:
パスワード:
John……懐かしい.昔はずいぶんとお世話に.あっちこっちでスペースを借りて(略)#若気の至りって怖い.
Johnの辞書ファイル(wordlist)はあるsaltの元でハッシュ化したとかそういうものではなく,単なる単語帳ですよね?で,wordlistモードの場合は与えられたpass/saltに対し,wordlistから単語を一つずつ拾ってきては与えられたsaltの元でハッシュ値に変換し照合,を延々と繰り返すだけで.
そもそも,総当たりのハッシュ値(しかも異なるsaltに対しても)を記録しておくのはストレージ容量的に非現実的では?128bitのハッシュ値の総和はとんでもない容量になりますし.
いや、そうじゃないのが出ているそうですが。# John the Ripper じゃないのか?いや、Johnだと聞いたんだが…亜種なのか??
私のきいたのは、Saltごとに辞書を分けた上で、パスフレーズを「ハッシュ値でソート」して持つ、というもの。パスワード表から探したいハッシュ値とSaltは解っているので、まずSaltで辞書を選んで、あとは辞書を二分木探索していく。ハッシュ値でソートしてあるので、たとえば辞書の真ん中の単語のハッシュ値を求めて、探しているハッシュ値と比較すれば、辞書の前半分と後ろ半分のどちら側に目的のパスフレーズがあり得るのか、が判る。
登録してあるパスフレーズ数 n に対してO(log n)で探索が終わる。
>そうじゃないのが出ているそうですが。
そうですか,そんなものがでているのですか.世の中進歩してるんだなあ……#進歩……と呼んでいいのかはわかりませんが(苦笑)
>パスフレーズの長さの最短と最長の両方を決めて、その範囲だけについて辞書を作る。
なるほど.普通だったら辞書+ルールで時間をかけてやるようなものを,ある程度あらかじめ変換済みの辞書を作っておくことでいくらか高速化出来る,と.世の中進歩(それはもういい)確かに,ハッシュ関数が複雑化して計算に時間がかかるようになると,そういう事前にある程度準備しておく,ってのの利点が増えるわけですね.
恐らく現実的には,そういう場合でも乱数的なパスワードは相変わらず強いんでしょうが,「一般のユーザーアカウントを適当に何個か引っこ抜けりゃいいや」って目的だと脅威になっちゃうわけですね.しかも短いパスワードに対してはあらかじめ計算機をぶんまわしてリスト化できるから,ハッシュ関数をめんどくさい計算量の(多少)多いものにしても意味がない,と.
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ見習い
ん? (スコア:1)
John……懐かしい.昔はずいぶんとお世話に.
あっちこっちでスペースを借りて(略)
#若気の至りって怖い.
Johnの辞書ファイル(wordlist)はあるsaltの元でハッシュ化したとかそういうものではなく,単なる単語帳ですよね?
で,wordlistモードの場合は与えられたpass/saltに対し,wordlistから単語を一つずつ拾ってきては与えられたsaltの元でハッシュ値に変換し照合,を延々と繰り返すだけで.
そもそも,総当たりのハッシュ値(しかも異なるsaltに対しても)を記録しておくのはストレージ容量的に非現実的では?
128bitのハッシュ値の総和はとんでもない容量になりますし.
Re: (スコア:1)
いや、そうじゃないのが出ているそうですが。
# John the Ripper じゃないのか?いや、Johnだと聞いたんだが…亜種なのか??
私のきいたのは、Saltごとに辞書を分けた上で、パスフレーズを「ハッシュ値でソート」して持つ、というもの。
パスワード表から探したいハッシュ値とSaltは解っているので、まずSaltで辞書を選んで、あとは辞書を二分木探索していく。ハッシュ値でソートしてあるので、たとえば辞書の真ん中の単語のハッシュ値を求めて、探しているハッシュ値と比較すれば、辞書の前半分と後ろ半分のどちら側に目的のパスフレーズがあり得るのか、が判る。
登録してあるパスフレーズ数 n に対してO(log n)で探索が終わる。
fjの教祖様
Re:ん? (スコア:1)
>そうじゃないのが出ているそうですが。
そうですか,そんなものがでているのですか.
世の中進歩してるんだなあ……
#進歩……と呼んでいいのかはわかりませんが(苦笑)
>パスフレーズの長さの最短と最長の両方を決めて、その範囲だけについて辞書を作る。
なるほど.
普通だったら辞書+ルールで時間をかけてやるようなものを,ある程度あらかじめ変換済みの辞書を作っておくことでいくらか高速化出来る,と.
世の中進歩(それはもういい)
確かに,ハッシュ関数が複雑化して計算に時間がかかるようになると,そういう事前にある程度準備しておく,ってのの利点が増えるわけですね.
恐らく現実的には,そういう場合でも乱数的なパスワードは相変わらず強いんでしょうが,「一般のユーザーアカウントを適当に何個か引っこ抜けりゃいいや」って目的だと脅威になっちゃうわけですね.しかも短いパスワードに対してはあらかじめ計算機をぶんまわしてリスト化できるから,ハッシュ関数をめんどくさい計算量の(多少)多いものにしても意味がない,と.