★☆★JNSAメールマガジン 第29号 2014.2.21.☆★☆

こんにちは
JNSAメールマガジン 第29号 をお届けします。

昨年頃から、オンラインサービスのアカウントに対する攻撃が頻発 しています。事件や事件に関する解説などをみると、IDとパスワード による認証は、セキュリティの基本でありながら、正しく理解されて いない事が多いようです。
 本メールマガジンでは、読者の方に「認証」について理解を深めて 頂けるように4名の方に「認証」についてのコラムをお願いしました。
初回は「認証」の中でも特にサーバ側の問題に焦点を当てた内容で、 HASHコンサルティング株式会社 徳丸浩様から寄稿いただきました。


【連載リレーコラム:テーマ「認証」(1)】
「今時のWebサイトでのパスワードの取り扱い方」
(HASHコンサルティング株式会社 徳丸 浩)
◎狙われるパスワード

Webサイトのパスワードが狙われています。従来からパスワードを狙った攻撃は報告されていましたが、従来からの推測しやすいパスワードを狙った攻撃に加えて、昨年からパスワードリスト攻撃と呼ばれる手法による不正ログインが急増しています。

パスワードリスト攻撃とは、SQLインジェクション攻撃などで漏えいしたID・パスワードの情報を別のWebサイトに当てはめて、ログイン試行する攻撃です。従来から、この方法で不正ログインができると予想はされていましたが、日本でも大規模なパスワード漏えいの事故があったことや、これらパスワード情報がブラックマーケットで流通していることから、パスワードリスト攻撃と見られる不正ログイン事件が頻繁に発生するようになってしまいました。

◎パスワードの安全な保管が重要である理由

このようにパスワード情報が漏えいして悪用される背景には、利用者がパスワードを複数のサイトで共通にする(使い回す)ことと合わせて、漏えい元のWebサイトがパスワードの保護を十分にしていなかったことがあります。具体的には、パスワード情報が外部に漏えいした後に、簡単には悪用できないようにする施策が不足していたと考えられます。

それでは、なぜパスワードの保護が重要なのでしょうか。パスワードがWebサイト経由で漏えいしているという局面では、他の個人情報等も漏えいしている可能性が高いので、個人情報保護という観点からは、パスワードを特に重点的に保護する理由にはなりません。パスワード保護が重要である理由は下記の通りです。

2)のパスワードリスト攻撃が最近大きな問題になっていることは既に説明した通りです。パスワードリスト攻撃の対策は難しい課題ですが、ここでは、パスワードリスト攻撃の前段として、パスワードをできるだけ漏えいさせないための保護施策について説明します。

◎パスワードの保護方法

パスワードの保護方法として、まず思いつく方法は、パスワードを暗号化して保存することです。しかし、暗号化のためには、暗号鍵の管理が必須になりますが、サーバーに侵入されているという前提では、暗号鍵を安全に管理できるという保証が難しいと言えます。このため、パスワードの保護は、暗号学的ハッシュ関数という方法を用いることが一般的です。

一般に、ハッシュ関数とは、任意のデータを入力として、比較的短い固定長のデータ(ハッシュ値)に変換する関数のことです。ハッシュ関数のうち、ハッシュ値から元のデータを推測することが困難などの暗号学的な性質を持つものを暗号学的ハッシュ関数と呼び、MD5、SHA-1などのアルゴリズムが広く用いられています。

パスワードをハッシュ値として保存することは、ハッシュ値からは元のデータ(パスワード)を推測することが困難であることを利用したパスワードの保護方法です。

パスワードをハッシュ値として保存している場合は、認証の際にパスワードを照合する場合には、平文のパスワードは分からないため、利用者が入力したパスワードのハッシュ値を求め、データベースに保存されたハッシュ値と比較することで、正しいパスワードであることを確認します。

◎ハッシュ値からの元パスワードの解読方法

一般的に、MD5やSHA-1などの暗号学的ハッシュ関数により平文をハッシュ値に変換すると、ハッシュ値から元の平文を求めることは大変困難と言われていますが、パスワードの場合は事情が異なります。パスワードには文字種や長さの制限があるため、総当たり的な方法によりハッシュ値から平文パスワードが分かる場合があるからです。最近はGPU(Graphics Processing Unit)の高速演算を悪用して、ハッシュ値からのパスワード解読が行われるようになりました。この方法だと、単純なMD5ハッシュで保存された8文字英数字のパスワードの解読には、1日未満しか掛かりません。

◎ソルトとストレッチング

このため、ソルトとストレッチングという方法により、パスワードの保護を強化することが行われます。

まず、ソルトというのは、ハッシュ値を求める前のパスワードに付加する短い文字列のことです。ソルトをユーザ毎に異なるものにすることで、同じパスワードをつけている利用者がいてもハッシュ値は異なるものになるので、利用者毎にパスワードの総当たり探索を行う必要がでてきます。これにより、利用者全員のパスワードを求めるために必要な時間が、利用者の人数に比例して増加します。

ソルトは、副作用が少なく大きな効果が得られるため必ず利用すべきですが、特定利用者のパスワードを守りたい場合にはあまり効果がありません。このニーズに対してはストレッチングが有効です。

ストレッチングとはハッシュ値の計算を繰り返し(例えば1万回)行う方法のことです。これにより、1日で終わる計算が1万日(約27年)掛かるようになります。ストレッチングの回数は多いほど効果がありますが、サーバー負荷が増大するという副作用があるため、バランスの良い回数を実測により求めるとよいでしょう。

◎パスワード認証を安全にするには、長い複雑なパスワードを

ストレッチングは、あまり安全でないパスワードを保護するための救済策という側面があります。利用者が十分長いパスワードをつけていれば、ストレッチングは必要ありません。このため、利用者が安全なパスワードを設定することにより、ストレッチングがなくても安全性が保たれる状況が望ましいと言えるでしょう。

そのためには、サイト(サーバー)側と端末側の両方の改善が必要です。現状のWebサイト等では、8文字程度までのパスワードしか設定できないサイトが多いようです。しかし、ハッシュ値でパスワードを保存する前提では、パスワード長を制限する意味はあまりなく、長いパスワードを受け入れるようにサイト側の改善が求められます。

一方、パスワードが長くなると、記憶や入力の手間が大変になります。このため、パスワード管理ツールなどの普及により、利用者が手軽に、長い安全なパスワードをつけられる未来が望ましいと筆者は考えます。



#連載リレーコラム、ここまで
<お断り>本稿の内容は著者の個人的見解であり、所属企業及びその業務と関係するものではありません。


【部会・ワーキンググループ便り】
★<新WGメンバー募集中!>
 調査研究部会にシンギュラリティ調査WGが発足します。
 第1回WG会合を以下の通り開催しますので、参加希望の方は事務局までご連絡ください。
  <日時> 2014年3月4日(火) 16時〜18時
  <場所> NPO 日本ネットワークセキュリティ協会事務局
      (港区西新橋1-22-12 JCビル3F)
★PKI相互運用技術WG・電子署名WG主催セミナー「PKI Day 2014」の申込み受付中です。
「PKI Day 2014」
 https://www.jnsa.org/seminar/pki-day/2014/
 <日 時> 2014年3月13日(木)10時00分〜18時00分
 <場 所> IIJグループ本社 17階大会議室
(千代田区神田神保町1-105 神保町三井ビルディング)
 <申込み> 下記申込みフォームよりお願いします。
       ※終了しました。


【事務局からの連絡、お知らせ】
★「JNSAソリューションガイド」
IPA「2013年版 10大脅威 身近に忍び寄る脅威」に対応した検索ページを作成しました。   https://www.jnsa.org/JNSASolutionGuide/
☆コラムに関するご意見、お問い合わせ等はJNSA事務局までお願いします。
jnsa-mail

*************************************
JNSAメールマガジン 第29号 
発信日:2014年2月21日
発行: JNSA事務局 jnsa-mail
*************************************
Copyright (C)  Japan Network Security Association. All rights reserved.