2022-03-16

ハッシュ化すれば安全か? 

 パスワードファイルは、可逆暗号化するだけでは不足であり、不可逆暗号化であるハッシュ化が必要だ、という見解がある。

 可逆暗号化では、暗号化の解読が可能だが、ハッシュ化ならば、暗号の解読はできないからだ、という理屈だ。

 → https://b.hatena.ne.jp/entry/s/www.itmedia.co.jp/news/articles/2203/15/news172.html

 

 しかし、それは正しくない。たとえハッシュ化しても、ハッシュ化の解読は可能である

 それには、次の方法を取る。

 「文字列の組み合わせ(総当たり)のハッシュ化をしたリストを得る」

 

 たとえば、 8桁以下の英字(大小)の組み合わせのすべてに対して、そのハッシュ化をしたリストを得る。

 こうした一覧リストを得れば、ハッシュ化されたデータファイルから、元のパスワード復元することが可能である

 

 ※ 全員が復元できるわけではないが、8桁以下の英字をパスワードとしているユーザーに限っては、パスワード復元することができる。

 

 ※ 詳しくは下記を参照。

    → https://qiita.com/gakuri/items/89ddc4fd9b39a884a305

   レインボーテーブル攻撃と言われる方法

 

 ――

 

 問題は、それに要する時間だ。一体どのくらいの時間で「総当たりの一覧リスト」を得られるか?

 

 それについては、ネット上で調べたところ、すでに調べた人がいた。下記だ。

  → https://qiita.com/ockeghem/items/5a5e73528eb0ee055428

 

 これによると、かかる時間は、ハッシュ化の方法レベル)しだいとなる。具体的には下記だ。(高性能の GPU を使った場合

  ・ ハッシュ化が簡単方法ならば、22分で一覧リストを得る。

  ・ ハッシュ化が複雑な方法ならば、62年で一覧リストを得る。

 

 というわけで、結論としては、こうなる。

 「ハッシュ化すれば、パスワード復元不可能だ、とは限らない。特に、低レベルハッシュ化では、パスワード復元は容易になされる。高レベルハッシュ化ならば、たぶん大丈夫だが、スパコンを長時間使えば解読されてしまレベルではある」

 

 というわけで、「ハッシュ化すればパスワード復元はされない」というのは、早計だとわかったことになる。

 ※ 英字だけでなく数字を混ぜたり、文字数を長くしたりすれば、強度は格段に強くなる。

 

 ※ 余剰な文字管理者パスワード)を付け加えて、自動的文字数を長くする手法がある。これを「ソルト」という。

   → https://it-trend.jp/encryption/article/64-0068

 

 ※ ソルトがあれば強靱になるが、ソルトがなければ強靱にならない。その意味で、「ハッシュ化をやりさえすれば大丈夫だ」とは一概には言えないわけだ。

 

  • 何回もハッシュ化するから無意味です

  • blueboy先生の弁明。 だからソルトをつけるんだよ。 ほんとにド素人だったんだな…。

    •  ソルトの話は、すでに追記済みですよ。

      • ソルト付きハッシュ+ストレッチングはもうWeb開発者なら常識の範疇やろ。

        • Web開発者なら常識だとしたら、どうして記事の会社(ドコモ , softbank )は、それができなかったの?    常識じゃないからでしょ。日本の IT 技術はすごく低いんだよ。まずはそこから...

          • お前みたいな常識外れのバカがいたってことでしょ

            • あんた何を熱くなってんだ? まるで運動会で応援しているパパさんだぜ

              • 言うほど運動会で応援してるパパさんは熱くなってるか? カメラを回すのに精一杯やないか?

          • ソフトバンクに関しては、 携帯でwebを見られない契約の人に対してパスワードを郵送するフローがあったため(今もある?)。

  • 「安全のために○○しろ」 ↓ 「○○すれば安全だというのは間違い」 この反応って馬鹿に見える

    • それつまり、 「DBファイルは暗号化しているから平文じゃない」 という元コメントに対して、 「ハッシュ化の話をしないのはど素人だ」 と難癖を付けた はてなー多数に当てはまる話だ...

      • 「安全のために避妊しろ」 『ちゃんと外出ししてるから大丈夫!』 「いや外出しは避妊じゃないというのは常識だろ」 難癖だと思いますか?

        • 我慢汁でデキ婚するのも乙じゃあありませんか

        • たとえが間違っている。 「安全のために避妊しろ。方法はオギノ式で万全だ」 「オギノ式は万全じゃない」 「オギノ式の話をするだけで、コンドームやピルの話をしないのは、ど素人...

          • 生中より咥えゴムダブルピース派

          • 「方法はオギノ式で万全だ」 たとえ話のこのくだりは、どれに当たるんだ 例えば元のハッシュ化の話だと「ハッシュ化すれば万全だ」という発言があることになると思うが

            • > たとえ話のこのくだりは、どれに当たるんだ 元コメントだと明示してあるだろ。元記事の次のコメントだよ。引用すると: > 「平文を個別に提供する」からといって、「パスワ...

              • 「ハッシュ化すれば万全だ」とは誰も言ってないのに、「ハッシュ化しても安全とは言えない」ってキリッと反論したつもりになってるってことでいい?

                • > ってことでいい? 全然ダメだね。勝手に歪曲している。(誤読して改変している。)   「DBファイルの暗号化ファイルが平文ではないという話をしているなら、ハッシュ化の話を...

                  • もう Bcrypt 使うだけでよくなくね?

                    • それでいい。 セキュリティの世界にあらゆる怪物を倒せる銀の弾丸は無いが、この例のように特定の種類の怪物を打ち倒す特攻武器はある。

                  • 「DBファイルの暗号化ファイルが平文ではないという話をしているなら、ハッシュ化の話をするべきだ。ハッシュ化こそが大事であって、これを書かなくては駄目だ。ハッシュ化の話を...

                    • そもそも、DBファイルが平文でなく暗号化されているということを指摘して、事実報道の誤りを指摘したのが、元コメントだ。   それに対して、「正しいデータ保護には暗号化ではなく...

                  • 例1 https://anond.hatelabo.jp/20220830112403 長い!圧倒的に長い!しかも長い上に読みにくい!空白をふんだんに用いて読みやすくしているはずなのに、つめっつめで大量の文字数を書き連ねるコ...

          • BLってBlueBoyのこと?

      • blueboyさんこんにちは!

  • マッシュガイアすればオルテガか?

  • パスワードのハッシュとか管理者による文字列のソルトとかに加えて そのアカウントの名前とか年齢とか性別とかをつなげてハッシュ化したものをさらに加えたら強くなるかな

    • bycript という関数がすべて自動で十分に強くしてくれるんやで。 自分であれこれ工夫して強くなるか気にするくらいなら、基本的なライブラリを使った方が安心安全。

  • Bcrypt 使えばええんちゃうかな。

  • 無限弁明編

  • あーーーほ そもそも何でハッシュ化が必要なのかわかってないんだろうな。 暗号化しても平分で持ってても、ようはDBにアクセスされてる時点でハッキングされてるわけ。 そんなときに...

    • めっちゃ早口でしゃべってそう

    • まるで本質を理解してなくて笑う

    • そもそも何回いうねん

    • どうやったら「平分」って打ち間違えるんだろう まさか「へいぶん」って読んでないよな... 「ひらぶん」だと「平文」としか変換できないんだが...

    • ソルトめっちゃ長いな

    • blueboy氏はその辺のことわかったうえであのコメントを書いてるみたい 平文保持って言ったらサーバーにあるデータ盗まれたらアウトって誤解されそうだけど、そうじゃないって指摘でし...

      • 退路を奪うな

        • 退路?誰も間違ったことは書いてないって認識なんだけど

          • まあ、はてブってのは、わざと他人の話を曲解して、他人を「間違っている」と罵るための場所だから。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん