おれさまラボ

実際に手を動かして理解を深めるブログ。

なぜメールアドレスをハッシュ化したものを公開してはいけないのか

はじめに

先日、以下の記事が話題となっているのを見かけました。

simatech.hatenablog.com

非常におもしろい実験であり、わかりやすかったのですが、こういう技術系記事にありがちな「じゃあなんでメアド公開したらまずいのか」「ハッシュ解析するコストを払う意味は?」といったことに言及されていないので、ハッシュを安易に公開してしまうような人たちへの啓蒙効果は非常に薄いと感じました。

ということで、今回は「なぜメールアドレスをハッシュ化したものを公開してはいけないのか」を深堀りして行きたいと思います。

インシデントの整理

この記事が出るもととなったツイートがあります。それは、AI救国論の某氏のツイートです。

どうも "アンチ氏" が某氏に対するアンチ発言をしていたようで、某氏はアンチ氏への挑戦として、「アンチ氏が受講したと主張する私の公開講座ですが、本当に受講したのか怪しいので、受講生のメールアドレスを二重md5でハッシュ化したリストを公開します。ここにマッチするメールアドレスを本人が提示できない限りは、すべて悪意のあるニセモノということになります。」とリスト付きのツイートを行いました。

ハッシュというのは不可逆性(一方向性)をもつものなので、ハッシュ化された文字列からもとの文字列を推測するのは困難です。その性質を利用して、某氏はアンチ氏の本人性確認をとろうとしたようです。

しかしながら、某氏が利用したのは md5 とよばれるハッシュ関数です。コンピュータ性能の進化によって危殆化したと言われる技術のひとつです。それがどれほどのものなのかは、先にあげた記事の通りです。

記事によれば、単純な総当りではなく、工夫すれば md5(二重)でも SHA-256(一重)でも1分半程度で解析できてしまったということです。一般のご家庭の PC でも 11 日程度の時間をかければ解析できてしまうレベルとのことでした。

なぜメールアドレスを公開してはいけないのか

じゃあ、なんでハッシュ化したメールアドレスを Web に公開したらいけないのか、という話を掘っていきます。

個人情報公開の危険性

総務省が公開している「国民のための情報セキュリティサイト」というのがあるのですが、その中に 個人情報の公開の危険性という記事があります。

この記事によれば、個人情報を晒すと、

  • ネットストーカーによる被害
  • 意図しない範囲までのプライバシー情報拡散
  • 迷惑メールや振り込め詐欺のような犯罪(≒ フィッシング詐欺)に巻き込まれる恐れ

があるとされています。

メールアドレスは個人情報か

「メールアドレスって個人情報なんだっけ?」と思われる方もいると思うので、補足しておきます。こちらも総務上の公開している 行政機関・独立行政法人等における個人情報の保護|<3 個人情報の該当性> という記事ですが、メールアドレスについては以下の記述があります。

保護法では「個人情報」を、「生存する個人に関する情報であって、当該情報に含まれる氏名、生年月日その他の記述等により特定の個人を識別することができるもの」と規定しています(第2条第2項)。  メールアドレスには、個人情報に該当するものとしないものがあります。記号を羅列したもの(例えば「0123ABCD@soumu.go.jp」)のように、それだけでは特定の個人を識別できない場合には、個人情報には該当しません。しかし、特定の個人の氏名を記載したもの(例えば「〔氏名のローマ字記述〕@soumu.go.jp」)のように、特定の個人を識別できる場合には、個人情報に該当します。  なお、保護法では、「他の情報と照合することができ、それにより特定の個人を識別できることとなるもの」(第2条第2項)も個人情報としています。このため、記号を羅列したメールアドレスであったとしても、例えば、それがある省のある職員のメールアドレスであって、当該省の職員であれば職員名簿等により誰のメールアドレスなのか分かるような場合には、そのようなメールアドレスは、個人情報であるといえます。

立ち位置としては「限りなく個人情報に近いもの」といったところで、慎重な取り扱いが求められています。

攻撃者がメールアドレスを入手する方法

攻撃者がメールアドレス情報を入手しようと思うと、だいたい以下3つの方式になってくると思います。

  • ブログや SNS掲示板等へのアップロード情報確認
  • ダークウェブで売買される情報の購入
  • 不正侵入によって自ら情報を得る

もちろん、ターゲットが決まっている場合はソーシャルエンジニアリングによる情報収集などが行われますが、今回は不特定多数の情報を得るという観点で考えます。

自ら不正侵入を行うようなレベルの攻撃者はまれで、世の中にあふれている攻撃者(犯罪者)の多くはそれほどのスキルを備えていません。ダークウェブの情報にたどり着く犯罪者もごく一握りといって差し支えないかと思います。ということで、多くの情報は一般人がアクセスできるインターネット上にアップロードされたデータから得られるということになります。

攻撃者の心理

一般に情報セキュリティにおいて登場する攻撃者(犯罪者)は、効率を重視すると言われます。

いくらインターネット上に情報がアップロードされていたとしても日々ネットサーフィンするのは骨が折れるので、bot と呼ばれるプログラムを作成し、自身の代わりに広大な Web を自動巡回させてメールアドレスの情報を入手します。

そのため、ハッシュ化されていないメールアドレスをインターネット上にさらしてしまうと、すぐに攻撃者の手元に情報が渡ってしまうと考えてください。

ハッシュ化したメールアドレスなら問題ない?

ハッシュ化しても簡単に解析できてしまうよ、というのが冒頭に紹介した記事でした。なので、問題ありです。

そのメールアドレス、ハッシュ解析する価値はあるのか

でもここでひとつの疑問が浮かびます。

攻撃者は効率を重視するのに、わざわざハッシュ化されたメールアドレスを解析するなんてめんどくさいことをするのだろうか、と。

手間 > 利益の場合

わたしは攻撃者の心理を真に理解などできないのでわかりませんが、数個のメールアドレスのハッシュ値が公開されていたとしても、それを解析する手間と得られる利益を天秤にかけたときに、明らかに手間が大きいと思います。たとえばフィッシングの場合、不特定多数にメールを送って、その中の一部が引っかかればいいなー、という攻撃なので、数個のメールアドレスのハッシュ値が落ちていたからといって解析するのは面倒と感じます。

でも、数分で解析が終わると思えばやるのかもしれませんね。

利益 > 手間の場合

また、明らかに価値のあるメールアドレス(高所得者や著名人のメールアドレス)だとハッシュ値の時点で分かっている場合は、手間をかけてでも解析するでしょう。

確率から考える

もう少し、客観的に考えてみます。

先日、GitLab という会社で 1200 名の社員に対してフィッシングメールを送信し、どのくらいひっかかるかの訓練が行われました。

www.publickey1.jp

結果、約 20%(約 240 名)の従業員が引っかかったそうです。約 2 割という数字をどう考えるかはあなた次第ですが、攻撃の成功率としてはまずまずではないでしょうか。

このことを考慮に入れると、攻撃者は、多少の手間をかけてでもハッシュ解析するかもしれません。

攻撃者自身がハッシュ解析しなくても良いかもしれない

もうひとつ、攻撃者自身がハッシュ解析しなくても、攻撃者の手にメールアドレスが渡る可能性はあります。

いわゆるスクリプト キディと呼ばれるような攻撃者が間に挟まるケースです。要は趣味でハッシュ値の解析を行い、その結果をインターネットにアップロードする場合です。

f:id:naoto408:20200607141339p:plain

冒頭に紹介した記事の筆者は、ホワイトハットハッカーに近いのでしょう。自己のスキルレベルを見せつけてはいるものの、解析結果自体は公開していません。

ですが、同じように解析を行い、その結果をこれ見よがしにネットに公開してしまったらどうでしょう。

メールアドレスを収集する bot が解析されたメールアドレスを見つけ、攻撃者の手に情報が渡ることになります。

おわりに

正直エンジニアをやっていて思うのは、趣味で際どいことやっちゃう人なんてたくさんいるということです。際どいことをやっていても、本人たちにそれほど悪意はないのがたちが悪くて、純粋にスキルを高めること、見せびらかすことを楽しんでいるのです。これを止めるのはかなり難しいです。

スクリプト キディたちの「際どい」が「アウト」になったとき、あなたが公開したメールアドレスのハッシュ値が全世界に公開されるかもしれません。インターネットに公開されたら、それはも攻撃者の手にあなたの情報が渡ったことと同義です。

だからこそ、機微な情報をインターネットに晒すことは極力避けなければなりません。

以上