LinkedInのパスワード漏洩

ビジネス向けのSNS「LinkedIn(リンクトイン)」で650万件のパスワードが漏洩しました。LinkedInではこの報道を認め、パスワードを無効化してユーザーにパスワードを変更する方法の案内をしました。

パスワードは暗号化されている状態でロシアのハッカーサイトに掲載されているようですが、報道があった時点ですでに30万件が解読済みになっている状態です。

LinkedInはビジネスのSNSとして履歴書のような職歴などの情報が掲載されていることから、流出して解読されたパスワードを元にアクセスされれば、そういった個人情報が不正に利用されてしまいます。

なぜ暗号化が解読された?

パスワードはSHA-1というアルゴリズムでハッシュされていたそうです。ハッシュとは固定の長さの値を生成することで、生成された値はハッシュ値と呼ばれます。ハッシュは一方向の関数を含むので、ハッシュ値から元の値を再現することはできません。

例えば、次の値をSHA-1でハッシュ値を出力すると複雑な文字列になります。

123456: 7c4a8d09ca3762af61e59520943dc26494f8941b
password: 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8

(使用したUNIXコマンド: echo -n <元の文字列> | openssl sha1)

「7c4a8d09ca3762af61e59520943dc26494f8941b」から「123456」を復元することはできませんし、「5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8」から「password」を復元することはできません。

ユーザーが入力したパスワードとあらかじめ暗号化されて保存されたパスワードをどうやって比較しているのかというと、ログオン時にユーザーが入力したパスワードに対して同じようにSHA-1でハッシュ値を求めて、それをあらかじめ保存されたパスワードと比較することで認証しています。

  1. ユーザーがパスワードを入力する。
  2. ユーザーが入力したパスワードのハッシュ値を求める。
  3. あらかじめハッシュ値として保存された値と比較する。
  4. 一致したらログインさせ、一致しなかったら拒否する。

ここで問題なのが、たとえ暗号化していてもただ単にハッシュしているだけでは、ハッシュ値は容易に求めることができてしまうということです。こういうことになれた人であれば「7c4a8d09ca3762af61e59520943dc26494f8941b」と見ただけで「123456」ということがわかってしまいます。なぜならハッシュは同じ結果を出力するからです。「7c4a8d09ca3762af61e59520943dc26494f8941b」を試しにGoogleなどで検索してみるといいでしょう。辞書攻撃や総当たり攻撃をされると、簡単なパスワードであれば早めに解読されてしまいます。aから順番にSHA-1でハッシュを求める計算を続けていけばいいだけですから。

通常はハッシュを用いる前にパスワードにソルトを加えます。例えば「123456」に対して「abcdef」というような任意の文字を付け加えて「123456abcdef」という値でハッシュを行います(本当はこの程度の短いソルトではだめですけど)。すると解読されやすいパスワードでもシステム側で自動で付与されたソルトのおかげで、ある程度の長い文字列になり、その分解析されにくくなります。もちろん、ソルトが加えられたパスワードのハッシュ値は「123456」と同じではありません。

123456abcdef: d4fbef92af33c1789d9130384a56737d181cc6df

今回漏洩したLinkedInのパスワードはソルトがない状態でハッシュされていただけでしたので、解析も容易であったということです。報道によれば、今回のパスワード漏洩をうけてソルト付きでハッシュを行うように変更されたようです。

ユーザーとしてできること

まずは今回の被害に遭った場合の対策として、LinkedInと同じパスワードを使っているシステムのパスワードを変更します。これで漏れたパスワードを使って別のシステムが被害に遭ってしまう二次災害を防ぐことができます。

複数のシステムのパスワードは使い回さないようにしましょう。同じパスワードを使うと、1カ所でパスワード漏洩があった場合に別のシステムでも被害を受ける可能性がありますが、システムごとに異なるパスワードであれば二次被害の心配はありません。

パスワードはできるだけ長く、そして辞書にない想像しにくいものを採用します。「@」や「%」など記号を含めることも考慮しましょう。英語の大文字と小文字、数字を駆使してパスワードを作りましょう。

パスワードはメモしましょう。よくパスワードをメモしないようにという指針を見かけますが、これは有効ではありません。記憶に頼ると多くのパスワードを覚えることができませんので、パスワードを使い回してしまいます。また、複雑なパスワードは記憶しづらいので簡単なパスワードにしてしまいがちです。メモした紙をディスプレイに堂々と貼っておくのはやめたほうがいいでしょうが、自分しか見ない手帳などに書いておくことで安心して複雑なパスワードをシステムごとにつけることができます。

フィッシング詐欺に注意しましょう。報道によればすでにフィッシング詐欺のメールが出回っているようです。仕事の早さだけは見習いたいものですが、悪意のあるものの手にIDやパスワードが渡らないようにメールの送信元を確認して対処しましょう。

何よりも慌てず冷静に対処するようにしましょう。

Follow me!

Feedlyで新着記事をチェックしよう!

Feedlyでフォローしておけば、新着記事をチェックすることができます。ぜひ、この機会にFeedlyに追加しておきましょう。