アカウント名:
パスワード:
パスワードを復元可能な形式で運用していたら社長以下専務・常務クラスまで獄門晒し首、仕様を作ったエンジニアも二度とIT業界での仕事ができないようにする、ぐらいしても良いのではないか。
GPUクラウドの時代、一般人が付けるような簡単なパスワード(人名+誕生日とか辞書に載っている単語+年号とか)ならSHA-2等でハッシュ化しても現実的な時間で解析できちゃうので無駄です。ソルトとストレッチングやっててもWebサーバで1秒以下で演算できるレベルならGPUクラウドで解析できちゃうし、強度の高いストレッチングやるためにパスワード認証するWebサーバのバックエンドにGPUクラウド使うわけでもないでしょ?
無論、10文字のランダムな英数字だとか、英単語を5個ぐらい繋げたパスワードとかはGPUクラウドで簡単に解析できないので、ハッシュ化の意味はあります。で
saltが十分に長くてもGPUクラウドで解析可能なの?
そのsaltが漏洩しないと、どれだけ自信をもって言えるか。
saltは漏洩している前提。だって、ハッシュ値が漏洩しているんだから。
パスワードをハッシュ化する理由は、サーバー内部のファイルが見られた場合に、パスワードを保存していたら、そのパスワードを使って他のサイトの情報も盗めてしまうから。ハッシュ値が流出しても、それで他のサイトにはログインできない。ハッシュ値をパスワードに戻す必要がある。
パスワードを単純にハッシュ化した場合、すでにレインボーテーブル(あらかじめパスワードとハッシュ値の対応表)が出回っているから、単純なハッシュ化では元のパスワードを復元できてしまう。
そこで、パスワードごとにランダムに生成したsaltを、パスワードに付加してからハッシュ化することで、レインボーテーブルを事実上使えなくする方法がある。
と素人の俺は考えているのだが、間違っていたら突っ込み頼む。
多分想定している攻撃が違うんだと思う。
そこそこの数のアカウントの中から、できるだけ多くのハッシュを解読するという攻撃では、レインボーテーブルは有効だし、その対策として十分長いソルトを付けることも有効。
一方で特定のアカウントのハッシュを解読するという攻撃では、パスワードのバリエーションがsaltのそれより小さくなるところで、効果がほぼ頭打ちになる。
まぁ、被害者の視点に立つなら他人のパスワードがどれだけ漏洩したかは、あまり興味ないよね。
他人のパスワードがよくある奴「12345」~で、複数のハッシュが同じ値だとそこから推測できちゃうある意味ソーシャルハック
だからソルトを使えって話では?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家
いい加減に (スコア:0)
パスワードを復元可能な形式で運用していたら社長以下専務・常務クラスまで獄門晒し首、仕様を作ったエンジニアも二度とIT業界での仕事ができないようにする、ぐらいしても良いのではないか。
GPUクラウドの時代、ハッシュ化しても無駄です (スコア:3, 興味深い)
GPUクラウドの時代、一般人が付けるような簡単なパスワード(人名+誕生日とか辞書に載っている単語+年号とか)ならSHA-2等でハッシュ化しても現実的な時間で解析できちゃうので無駄です。
ソルトとストレッチングやっててもWebサーバで1秒以下で演算できるレベルならGPUクラウドで解析できちゃうし、強度の高いストレッチングやるためにパスワード認証するWebサーバのバックエンドにGPUクラウド使うわけでもないでしょ?
無論、10文字のランダムな英数字だとか、英単語を5個ぐらい繋げたパスワードとかはGPUクラウドで簡単に解析できないので、ハッシュ化の意味はあります。
で
Re: (スコア:0)
saltが十分に長くてもGPUクラウドで解析可能なの?
Re: (スコア:0)
そのsaltが漏洩しないと、どれだけ自信をもって言えるか。
Re: (スコア:0)
saltは漏洩している前提。
だって、ハッシュ値が漏洩しているんだから。
パスワードをハッシュ化する理由は、サーバー内部のファイルが見られた場合に、パスワードを保存していたら、そのパスワードを使って他のサイトの情報も盗めてしまうから。
ハッシュ値が流出しても、それで他のサイトにはログインできない。ハッシュ値をパスワードに戻す必要がある。
パスワードを単純にハッシュ化した場合、すでにレインボーテーブル(あらかじめパスワードとハッシュ値の対応表)が出回っているから、単純なハッシュ化では元のパスワードを復元できてしまう。
そこで、パスワードごとにランダムに生成したsaltを、パスワードに付加してからハッシュ化することで、レインボーテーブルを事実上使えなくする方法がある。
と素人の俺は考えているのだが、間違っていたら突っ込み頼む。
Re: (スコア:0)
多分想定している攻撃が違うんだと思う。
そこそこの数のアカウントの中から、できるだけ多くのハッシュを解読するという攻撃では、レインボーテーブルは有効だし、その対策として十分長いソルトを付けることも有効。
一方で特定のアカウントのハッシュを解読するという攻撃では、パスワードのバリエーションがsaltのそれより小さくなるところで、効果がほぼ頭打ちになる。
まぁ、被害者の視点に立つなら他人のパスワードがどれだけ漏洩したかは、あまり興味ないよね。
Re:GPUクラウドの時代、ハッシュ化しても無駄です (スコア:0)
他人のパスワードがよくある奴「12345」~で、
複数のハッシュが同じ値だとそこから推測できちゃう
ある意味ソーシャルハック
Re: (スコア:0)
だからソルトを使えって話では?