これはスタエフの文字起こしをブログ化したものです。
音声は stand.fm の「音楽&テクノロジー雑談」でお聴きいただけます。

🔗stand.fm記事を見る ›

この秋は、企業の情報流出が毎日のように発表されています。
今回は、その中でもインパクトの大きかったソースネクストの件を題材に、パスワードの暗号化とハッシュ化の違いについてお話ししました。
僕は情報セキュリティの専門家ではないので、自分なりに咀嚼した範囲での解説です。

ソースネクストの流出が注目された理由

ソースネクストの情報流出は、いろいろと言われるポイントがあります。
一つは、1Passwordなどセキュリティ関連の製品も販売している会社が被害に遭ったことです。
もう一つは、情報が流出したときの状態でした。

今回はパスワードが平文のまま出ていました。
平文というのは、パスワードがあやめであれば、あやめという文字のままということです。
これはかなり危険なことです。
お客様から預かったパスワードを、そのまま見える形で持っているわけにはいきません。

実際には、平文で保存していたわけではなく、暗号化して保存していたそうです。
ただ、その暗号化の鍵が悪意のある人に盗まれてしまい、パスワードの中身が見えてしまいました。
暗号化したものは、鍵があれば元に戻せます。
パスワードの保存としては、AI以前の問題で、何年も前の話だと感じます。

暗号化とハッシュ化の違い

パスワードを保存する方法には、暗号化とハッシュ化の二つがあります。
普通、パスワードはハッシュ化して保存するのが、セキュリティ上の定石です。

ハッシュ化とは、パスワードという素材をぐしゃぐしゃにすることです。
ログインするときも、システムは入力されたあやめという文字をぐしゃぐしゃにして、保存してあるものと同じかどうかを照らし合わせています。
ぐしゃぐしゃにするルールは、その会社にしか分かりません。
ですから、ぐしゃぐしゃになったデータが漏れても、何のことか分からないわけです。
そして、ハッシュ化したものは元に戻せません。

暗号化は、鍵があれば元に戻せます。
保存したデータの中身が読めないと不便ですから、元に戻せるのは当然のことです。
元に戻るか戻らないかが、暗号化とハッシュ化の決定的な違いです。

イメージとしては、リンゴで考えると分かりやすいです。
目の前のリンゴをミキサーにかけてジュースにしたら、そのジュースを元のリンゴに戻すことはできません。
二つのリンゴが同じかどうかを調べるときに、両方をジュースにして、味がまったく同じなら一致している、と判断するのがハッシュ化です。
ジュースを見ても、元がどんなリンゴだったのかは分かりません。
パスワードのように、合っているかどうかを判定できれば足りるものは、暗号化ではなくハッシュ化で保存するのが常識です。

使い回しを避けることと、企業の姿勢

今回漏れたパスワードは、リセットをかければ済む話ではあります。
ただ、一番まずいのは、パスワードを使い回している人が多いことです。
メールアドレスとパスワードの組み合わせが分かれば、他のサービスでも総当たりで試され、ログインされてしまうかもしれません。
個人でできる対策としては、パスワードを使い回さないこと、そしてどこかで漏れたと分かったらすぐにリセットすることが一番です。
二段階認証なども、当然の対策です。
僕自身、パスワードがたくさんあるので、どこかで漏れていると思いますし、先日初めて漏れたという通知も受け取りました。

もう一つ気になったのは、なぜハッシュ化にしなかったのかという点です。
報道によると、最新のものに対応できなかったということのようです。
開発では、どうしても目に見えやすいところに注目が集まり、セキュリティにお金をかける感覚は難しいものです。
それでも、昔なら対策に大きな費用がかかったことが、AIを使えば、そこまでお金をかけずにシステムの移行ができたかもしれません。

日本の弱いところは、変更のたびに上の許可が必要で、時間がかかってしまうことだと思います。
その間にも、ハッカーは次々とハッキングを進めていきます。
フットワークを軽くして、情報セキュリティを強化していく姿勢が重要になっています。

今年の秋は本当に情報の流出が多く、このままだと今年の漢字が「漏」になりそうです。
今日は情報セキュリティについてお話ししました。
企業だけでなく、一人ひとりが意識して、セキュリティを高めていく必要があると思っています。