IDとパスワードを使いまわししてはいけない理由(2)

f:id:boost-up:20171205232013j:plain

blog.boost-up.net

前回、どんなパスワードを設定したとしても、サーバ運営者には正しいパスワードを知られてしまうということを書きました。 今回はサーバサイドのパスワード保管方法に関する話です。

Webサービスのパスワード保管方法

サーバ運営者には悪意がないことを前提とし、Webサイトは会員のパスワードリストをどのように保管しているのでしょうか。

もっともリスクの高い保管方法は、パスワード文字列をそのままの状態(これを平文といいます)でデータベースなどに保存しているケースです。 言うまでもなく、このようなWebサイトでパスワードリストが漏洩すると、取り返しのつかない問題になります。 近いケースとして、パスワードに比較的用意に復号できるアルゴリズムで暗号化(可逆性暗号方式)を施す場合があります。

今日のコンピュータを使えば、このような脆弱な暗号は短時間で破れますし、パスワードリストの中の一つでも特定されると、他のパスワードもすべて同じロジックで解明できてしまいます。 そのため、実質的にこのケースは平文の場合とほとんど同程度のリスクに晒されていると考えても良いでしょう。

もちろん可逆性暗号アルゴリズムの中にもセキュアなものはありますが、第三者には区別が付かないのと、パスワードの暗号化という観点で見た時には、あえて可逆性暗号アルゴリズムを採用する必要性は乏しいでしょう。

利用者の立場からすると、このようなWebサイトに会員登録することはできるだけ避けるべきです。

Webサイトのパスワード保管方法を知る術はあるのか?

結論を言ってしまうと、限定的な状況下ではありえますが、残念ながらほとんどのWebサイトでは困難です。

可能性で言えば、そのWebサイトが何らかのパッケージソフトを使っている場合には、htmlソースを読むことで、それが特定できることがありますが、一定の情報量とスキルを持った方以外には中々難しいと思います。 世の中には、パスワードを忘れた場合に、パスワードをメールで教えてくれるWebサイトがありますが、このようなWebサイトはパスワードセキュリティの観点からはリスクが高いと思った方が良いでしょう。

パスワードセキュリティでは、一方向暗号(不可逆性暗号方式)、ソルト、ストレッチングを施すことが、一般的にセキュリティが高い方法と言われており、このような方法を採用している場合、サーバには平文のパスワードを保存する必要がありません。

例えば、Webサイトの中にはパスワードを忘れた場合にリセットで対応するものがありますが、この種のWebサイトは少なくとも一方向暗号化は行っていると考えられ、パスワードを教えてくれるWebサイトに比べるとセキュリティレベルは高いと言えます。

中には、パスワードを教えてくれるサイトの中にも、会員の利便性のために高度な実装を施し、安全性を確保しているWebサイトもあるかもしれませんが、平文のパスワードが返ってくる状況は、最先端というよりは明らかに時代遅れと見る方が自然ですし、メールと言う配信手段自体、通常は通信経路が暗号化されませんのでアウトです。

パスワードを忘れた場合の対応方法は、FAQや良くある質問などに記載されていることも多く、ITにそれ程明るくない方でもWebサイトのセキュリティレベルを知ることができる数少ない糸口ですので、気になる場合には調べてみると良いでしょう。

話の最後に繰り返しとなりますが、今回の内容はサーバ運営者に悪意がないことを前提にして初めて意味のある内容ですのでお間違えないようご注意ください。