パスワードのハッシュ化の話

WASCのMLが、非常に盛り上がってました。

The websecurity June 2008 Archive by thread

SSL通信でも、ブラウザ上でパスワードをハッシュ化してからサーバに送るべきなんじゃないの? という話です。SSLプロトコル自体や実装上の欠陥がある場合や、弱い暗号が使われる場合などでは、SSLも完全ではないのだから、多層防御すべき・・・というのがその主張の根拠のようです。

しかし、MLの議論では、この主張に対する否定的な意見が多かったように思います。SSLが安全でない前提に立つと、パスワードをハッシュ化したり、チャレンジ・レスポンス方式にしたとしても、殆ど安全にはならないからです。もしSSLに問題があるならばSSLの問題を直すべきであり、殆ど効果が無いハッシュ方式は「false sense of security」だということでしょう。

ところで、実際にブラウザ側でパスワードをハッシュする方式をとっているWebサイトは殆どないと思います(私は殆ど見たことないです)。

唯一私が知っているのは、Yahoo! Japanのログインです。ただし、SSLのログインではパスワードをハッシュせずに普通にサーバに送ります。「標準(http)」を選ぶとチャレンジ文字列とパスワードを組合せた文字列をハッシュ化してサーバに送信します(なぜかGETメソッドが使われています)。

Yahooのヘルプには以下のようなことが書かれていました。

なおYahoo! JAPANでは、標準(http)モードでログインする際にも、パスワード部分は暗号化した通信を行うことで、安全性の確保に努めています。

http://help.yahoo.co.jp/help/jp/edit/edit-17.html

微妙な言い回しです。「標準(http)モードは安全ではない」と言ってしまった方が、すっきりするような気がします。