2012/06/09

LinkedIn のパスワード漏洩事故を受けてシステム開発者はどうすればいいのか


LinkedIn のパスワードが約650万件も漏洩するという事故が起きました。

LinkedIn は影響のあると思われるユーザーにメールでパスワードの再設定をよびかけるそうです。なお、LinkedIn からのメールにはリンクは記載されていないので、リンクのあるメールは詐欺メールの疑いがあります。

この事故のために、LinkedIn はユーザーの信頼を大きく損ねてしまいました。退会したユーザーも多くいるでしょうから、ビジネス的な影響も非常に大きいでしょう。

シマンテックによる調査では、情報漏洩1件あたりのコストは1万1011円になるとのこと。単純計算すれば、LinkedIn は約715億円の損害があったことになります。情報漏洩の怖さを痛感する数字ですね。

では、この事故を受けてシステム開発者はどうすればいいのでしょうか。

 

まず、「自分のシステムでは情報漏洩なんて起きない」という考えを捨てることが重要です。

LinkedIn のシステム担当者だって情報漏洩するとは思ってなかったでしょう。情報漏洩はシステムの脆弱性を利用されて起きる場合もありますが、内部犯行の場合もあり完全に防止することはできません。

そして、正しいパスワードの保存方法を理解することも重要です。

LinkedIn もパスワードを平文(人間に読める形式)で保存していないことから、パスワードを安全に保存する意識はあったと思います。ですが、SHA-1 というハッシュアルゴリズムでハッシュ化してパスワードを保存していました。

この方式を採用しているシステムは多いのではないかと思います。しかし、SHA-1は情報漏洩した場合には、レインボーテーブルという手法で比較的簡単に解読されると言われています。

現時点で正しいパスワードの保存方法は、ソルト+ハッシュ化+ストレッチング という3つの手法を組み合わせることです。

ソルトとはユーザーごとに異なる文字列のことです。このソルトをパスワードに連結した上でハッシュ化します。

ハッシュアルゴリズムは SHA-256 を利用します。SHA-1 自体が脆弱なアルゴリズムとまでは言えませんが、SHA-1 用のレインボーテーブルが登場していることを考えると SHA-256 を選択することが現時点では安全だと言えます。

そしてストレッチングとは、ソルト+ハッシュ化を1000回~数万回繰り返すことです。この時の方法は、「ハッシュ関数(ハッシュ済文字列 + ソルト + パスワード)」となります。

このパスワード保存方法は以下の記事で詳しく解説されています。

また、具体的な実装方法は書籍「体系的に学ぶ 安全なWebアプリケーションの作り方 」が参考になります。

現実にはいろいろな障害があると思いますが、システム開発者にはパスワードを安全に保存して、信頼できるシステムを構築してほしいですね。


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    現在、Enty で支援を受け付けています。もしよければご支援ください。



    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから