パスワードがどんどん漏らされている!
2019年1月25日には「宅ふぁいる便」から、1月30日には「Peing-質問箱-」からと、立て続けに情報漏えいの発表がありました。いずれも利用者のメールアドレスやパスワードなどの認証関連の情報が漏えいしています。

> ITmedia NEWS「『宅ふぁいる便』不正アクセスで480万件のユーザー情報流出 メアド・パスワードも」

>ITmedia NEWS「『Peing-質問箱-』のメールアドレス漏えい、最大149万件」

いくら自分がパスワード管理をちゃんとやっていても、登録した先で漏らされてしまえば、「もしそのパスワードが、漏えいしたサービスだけのパスワードではなく、他のサービスでも使いまわししているものだとしたら」漏えいしたパスワードで他のサービスが不正利用されたり、乗っ取られたりするリスクが生まれてしまいます。
こういった情報漏えい事件が発生するたびに、個人レベルでは「パスワードの使い回しはしない」必要があると、口うるさく感じるほどに言われてしまいます。(パスクリ通信読者のほとんどはPassClipを使っていると思うので、大丈夫だと思いますが)

では、IDやパスワードなどの認証情報を管理しているサービス事業者側は、どのように管理しているのでしょうか。

パスワードの「ハッシュ化」と「暗号化」
サービス事業者はIDやパスワードといった認証情報をサーバー内に管理しています。そして、その情報が漏えいしないような対策を十分に行うと当時に、万一情報が漏えいしてしまった場合でも、悪用されることがないように、パスワードを利用者が入力(登録)したデータ(文字列)をそのまま(平文)の状態ではなく、暗号化やハッシュ化という処理をして、平文のまま保存しないようにすることが一般的です。
暗号化もハッシュ化も特定のアルゴリズムにより、元のパスワードを全く違った文字列に変換してしまうことを言いますが、暗号化の場合は、暗号化に使った鍵を使えば、元のパスワードに戻すことができます。
それに対してハッシュ化というのは、一度変換してしまうと、元のパスワードには戻すことができない「不可逆変換」のことです。
悪意のあるハッカーによる脅威が増大している現在では、これらの変換処理をしておくことは常識的なことなのです。

サービス事業者を盲信できない状況
ところが今回情報流出が発覚した「宅ふぁいる便」は、パスワードの暗号化もハッシュ化もしていなかったというから驚きです。
ログイン用のメールアドレスと暗号化されてないパスワードのセットが流出してしまったのですから、このセットをいろいろなサービスで使い回してしまっていた人には、まさに一大事です。

「Peing-質問箱-」の場合は、パスワード自体はハッシュ化されていました。
しかし、ハッシュ化時に使われる「ソルト」と呼ばれる文字列も同時に流出してしまっています。

ハッシュ化には数学的に考えられたいくつかの代表的な手法があり、大抵のサービスはその中から選択して使っているのです。

そして、このソルトとは、パスワードをハッシュ化する際に固有の文字列を追加して、安全性を上げるために使われるものです。ですので、ソルトが分かれば、(もしくは使われていない場合は)あとはハッシュ化のアルゴリズムをひとつずつ試していけば、不可逆変換なのでそのものズバリのパスワードにはならないにしても、元のパスワードの候補リストなら作ることができるというわけです。(もちろん相当の環境や時間が必要になるので、安易には解析されることはないようですが)

暗号化の場合は、代表的な暗号アルゴリズムを採用している場合、暗号化の鍵が漏えいすると、暗号化されたパスワードから平文のパスワードに戻せてしまうので、その鍵は厳重に管理する必要があります。

セキュリティがしっかりしたサービス事業者であれば、そもそもしっかり管理しているだけでなく、暗号化やハッシュ化を駆使して、ゴニョゴニョして、漏えいしたとしてもよりバレにくくしています。
複雑にし過ぎると認証に時間がかかったり、管理が大変になったり、弊害が出てきたりするので、そこはバランスですね。

残念ながら利用者側からは、サービス事業者がどのようにパスワード情報を管理しているのかは正確に知ることはできません。
これまでも情報漏えいのニュースが、しょっちゅう流れてきている時代です。
利用者側でできることは以下の通り。

 

  • 信用できないサービスを安易に利用しない。利用したとしても重要な情報は渡さない
  • ID用に、漏えいしても問題ないメールアドレスを用意する
  • パスワードは「1サービス1パスワード」で使い回しをしない

「新しいサービスを利用しないようにする」とは申しません。
情報漏えいされたとしても「ちょっとめんどくさいけど大丈夫」で済むようにしておきましょう。