序480万件という数字から「国内史上最悪」とも言われる個人情報漏洩事件だが、問題がいまひとつわからないという人もいるかもしれない。過去には「500円配布で済ませた」という案件もあったからだ。問題である点を軽く解説しよう。「パスワードの暗号化」お知らせメールに「パスワードを暗号化していませんでした」という記述があり、これが問題の中心になっている。「暗号化」という言葉にいささかの問題をはらんでいる。暗号化が意味するところ、というのは難しい話になるのだが、コンピュータの文脈においては普通は特定の条件下でのみ元に戻せる(復号化できる)ものを暗号化という場合が多い。暗号化を行うメソッドが暗号であり、暗号を暗号たらしめるのが暗号鍵だ。ここでいう「暗号化」はこのような暗号の話ではなく、一方向関数の話である。一方向関数(ハッシュ関数)はAという値からBという値を算出することができるが、Bという値からAという値は算出できない関数である。一方向関数で有名なのはMD5である。passwordという文字列をMD5にかけると286755fad04869ca523320acce0dc6a4という値が得られる。この得られた値からpasswordという文字列を得ることはできない。サービス側ではユーザーのパスワードをデータベース上に保存するのだが、これを平文のパスワードに代えてハッシュ化された値を保存しておく。実際に認証する際にはユーザーはもちろん平文のパスワードを送信するのだが、サービス側で認証する際にハッシュ化してからハッシュ化して保存してある値と一致するかをチェックするのである。なんのためか、というと、「パスワードそのものを持っている状態にしないため」だ。その節の以下は付加知識で、次の節まで飛ばしてもらっても構わない。MD5に関しては「ハッシュ化した結果を同一にする手法」が見つかっており、パスワードにおいては「正しくないパスワードで突破されてしまう」リスクがあり、不十分なものとなっている。現在十分とされているのはSHA256だ。SHA256でpasswordをハッシュ化すると6b3a55e0261b0304143f805a24924d0c1c44524821305f31d9277843b8a10f4eが得られる。ハッシュ化しただけでは、一発で特定されるわけではないものの、複数の(同一ユーザーの)パスワードリストを手に入れたときに、「同じパスワードを使っている」ということは一発でわかってしまい、かつ法則性などを推測して突破するのも可能性として生まれてくる。そのため、基本的には“salt”と呼ばれる値を付加してハッシュ化する。saltとしてCを使い、passwordCとしてからハッシュ化するとSHA256では57f99e20c1e9f0f7355c3afd44715bda1dc0bd01db08509c4026c56d63bced3dとなり、全く異なる値が得られる。することでより安全にすることができる。その必要性なぜパスワードそのものを持っているといけないのだろうか。答は、「パスワードが保存されているデータベースを見るのはかなり簡単である」ということがある。漏洩時のリスクを低減するというのもあるが、「内部犯による流出、あるいは悪用」を防ぐという意味もある。第一に漏洩したときに平文で保存されていると、漏洩した情報を手に入れた人は直ちに不正利用可能な状態になってしまう。ハッシュ化されているとなんらかの突破口を見つけて解き明かさないと不正利用できない。そんなことをしているのはセキュリティの専門家くらいのものだろう(私はやっているけれども)。平文で保存されていると他のサービスまで巻き込んで大きな被害が出やすい。絶対に漏洩しないようにする、というのは多人数が関わるシステムでは現実的に不可能である。そのため、「もし漏洩したとしてもなるべく被害が小さいように設計しなければならない」のであり、480万件もの個人情報を扱いながらそのような意識を持っていなかったことが批判されているのだ。それだけでは終わらないメールで「漏洩があったのでパスワードを変更するように」と呼びかけていながら、システムをロックし、パスワードが変更できないようにしているという矛盾した対応にも批判が集まっている。由来して発生したものか」ということを検証するのは極めて難しく、そもそも検証しようにも誰もがそのデータを入手できるわけではないから、宅ふぁいる便が拒否して否定すればそれ以上は追求しようがない。「不正利用を確認していない」という発表は何の役にも立たない。これはそういう問題である。本人だけの影響ではない「そのサービスは使っていないから自分は関係ない」と考えるのは早計だ。不正ログインの試行において使用するパスワードは、まず過去に使われたことのあるパスワードを使うリスト型攻撃が鉄板である。いえば、使われたことのあるパスワードがわかっていれば、AI流行りの今の御時世、「法則から人がつけそうなパスワードを類推して試みる」のがいかに容易かというのは想像に固くないだろう。パスワードの流出は悪意ある攻撃者の辞書を分厚くし、関係ない人のパスワードが破られる可能性も向上するのである。