徳丸浩氏が誤解を指摘――Webサービス運営者が知らないと損害を生む「パスワード保護の在り方」@ITセキュリティセミナー

サイバーセキュリティの世界で取り上げるべきトピックは多々あるが、「基本的な守りを固める」ことも重要だ。2019年6月26日に行われた「@ITセキュリティセミナーロードショー」の中から、その際に役立つセッションの模様をレポートする。

» 2019年07月24日 05時00分 公開
[高橋睦美@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

EGセキュアソリューションズ 代表取締役の徳丸浩氏

 2019年初め、ファイル共有サイト「宅ふぁいる便」で会員情報の漏えいが発生した事件では、世間に大きな驚きが走った。漏えいの事実自体もさることながら、保存されていたパスワード情報が「暗号化されていなかった」ためであり、特にインターネット上では「今どき、パスワードを暗号化していないなんて」と厳しい批判が相次いだ。

 複数の調査や報道によると、パスワードを平文で保存しているサイトは宅ふぁいる便に限らない。その後FacebookやGoogle、Twitterなど海外の大手Webサービスでも相次いで、パスワードが平文で保存されていることが明らかになった。

 EGセキュアソリューションズ 代表取締役の徳丸浩氏は「パスワードを平文ではなく、保護しなければならない理由は何かというと、実はそれほど自明ではない」と言う。同氏は「Webサービス運営者が知っておくべき“パスワード”の超基本」と題した特別講演を通じて、そのいきさつと適切なパスワード保護の在り方を説明した。

パスワードリスト攻撃によって顕在化したリスク

 実は、パスワードは適切に保護すべきという「常識」が広まったのは最近の話だ。10年ほど前までは、「単純なハッシュをかけて保存するのが主で、今のようにストレッチングやソルトといった処理を実施しているケースは少数派だった。というのも、日本では名前や住所、メールアドレスといった個人情報の保護が中心で、パスワード自体にはそんなに価値はないのではないか、ことさら保護する必要はないのではないかという考え方があった」と徳丸氏は説明した。

 だが、それでは済まないことがだんだん分かってきた。

 パスワードが盗ることができれば、アカウントを乗っ取り、そのユーザーの権限でさまざまなサービスを利用できる。例えば、Twitterで本人の振りをして良からぬことをつぶやかれてしまうと大きな影響が出ることは容易に推測できるだろう。

 もう一つの問題は、パスワードの使い回しだ。以前から、複数のサービスで同一のパスワードを使い回しているユーザーは多数いるのではないかと推測されていた。そして、2013年ごろから活発化した「パスワードリスト攻撃」によって、その懸念が現実であることが示されてしまったという。

 当初、パスワードリスト攻撃の目的は不明とされてきたが、パスワードリスト攻撃を行って検挙された容疑者の供述によって、金銭目的であることが明確になってきた。個人情報を閲覧できるだけではなく、クレジットカード情報を用いて買い物をしたり、ポイントを悪用したりするといった被害が生じている。

 「SQLインジェクション攻撃などでIDとパスワードのリストを入手して、他のサイトでもログインを試行すると、ある一定の確率で『当たる』。サイトによって確率はバラバラだが、0.1%から高いものでは10%を超えることもあり、総当たり攻撃と比べて非常に高い確率だ。これは攻撃者に取ってよだれの出るほど効率の良い攻撃だ。しかも脆弱(ぜいじゃく)性のないサイトにも攻撃できる」と徳丸氏は述べ、パスワードリスト攻撃のデモンストレーションを行った。

パスワードリスト攻撃とは(出典:EGセキュアソリューションズ)

 その上「今は、『パスワードを集めて売る人』『そのパスワードを使って攻撃する人』『ブロックされている海外からの攻撃のためにプロキシサーバを提供する人』という具合に、分業が非常に進んでいる」という。

パスワードにまつわる幾つかの誤解

 こうした背景を説明した上で、徳丸氏は「パスワードに関する誤解」について触れた。「パスワードについてはとかく活発に議論され、記事も多いが、中には間違ったものもある」のが現状だという。

 1つ目は、インターネット越しにIDとパスワードを試すオンラインクラックと、何かしらの形で保護されたパスワードを解読するオフラインクラックの混同だ。「短いパスワードは危険だから長くすべし」という議論の根拠としてしばしば示されるのが、IPAが2008年10月に公表した資料で、「英数字を交えた6桁のパスワードなら54日で解読できる」という計算になっている。オフラインクラックならば確かにそうだが、ネットワーク越しに総当たりを試行されたなら、サイト運営側もすぐ気付くだろう。「長くすべし」という結論には同意だが、前提条件が異なるものを一緒にして議論するプロセスには問題があるとした。

IPAが2008年10月に公表した資料から引用

 2つ目は「ハッシュ保存」に関わる幾つかの誤解だ。ハッシュ化されていれば、または、MD5などの古いアルゴリズムではなくSHA-256やSHA-512のようなアルゴリズムでハッシュ化されていれば安全だ、と思われがちだが、そうとも限らないという。

 その一例として徳丸氏は、LinkedInから約650万件の個人情報が漏えいした事件に触れた。パスワードセキュリティの専門家であるSCG(Security Consulting Group)のジェレミー・ゴスニー氏が大量のGPUを積んだモンスターマシンを使い、SHA-1でハッシュ化されていた約650万件のパスワードのうち540万件を1週間で解読してしまったという。

 ゴスニー氏は、2013年11月に起きたAdobe Systemsからの情報漏えいでも同じように1カ月程度で暗号化されたパスワードを解読し、「123456」「password」といった安易なパスワードが多く使われていることを明らかにした。パスワードを忘れた際の支援として用意されている「パスワードのヒント」の存在に加え、対象鍵暗号を用い、ECB(Electronic CodeBook)モードを選択していたことが解読を容易にしたという。

 「このケースではパスワードが暗号化されていたが、暗号の使い方に問題があった。いくら良いアルゴリズムを採用しても使い方が悪いと、こういう結果になってしまう」(徳丸氏)

安易な独自実装ではなく、ベストプラクティスに沿ったパスワード保護を

 徳丸氏はこうした幾つかのケースを踏まえて、「パスワードはどのように保存すべきか」を解説した。

 まず漏れた場合でも解読できないようにするための方法だが、「暗号化では鍵の管理が課題になる。既に攻撃者に侵入されている前提では、暗号化されたデータとともに鍵が盗まれる恐れがあるため、鍵を使わないハッシュがよく使われる」(徳丸氏)。管理者やヘルプデスク担当者でも復元が困難なことも、選択される要因の一つという。

 ただ、ハッシュといえども万能ではない。一般に、ハッシュ値から平文に戻すことは容易ではないが、パスワードの場合は桁数が限られているため、総当たり攻撃によって求められる可能性がある。

 徳丸氏は「攻撃者がアルゴリズムを知っている前提で安全な設計をすべきだ」と述べ、現時点のベストプラクティスを紹介した。それは、パスワードに、ユーザーごとに異なる「ソルト」というある程度の長さの文字列を追加した上でハッシュ化すること。加えて複数回ハッシュ計算を繰り返す「ストレッチング」を行うことだ。ユーザーごとにソルトを変えればその分解読に必要な試行回数が増えるし、ストレッチングは「ローテクではあるが、攻撃者も総当たりでくるわけなので、時間稼ぎとしては有効」という。

 そして最近注目されているのが「ペッパー」あるいは「シークレットソルト」と呼ばれる、共通の秘密の文字列を使って解読をさらに困難にする方法だ。パスワードと同一のデータベースに保存するソルトとは異なり、別経路に置いて保護する必要があるため「暗号化と同じく、守り切れるのかという問題はあるが、やらないよりはいい」ということだ。

パスワード、ペッパー、ソルト(出典:EGセキュアソリューションズ)

 徳丸氏は最後に、一度漏えいを経験し、幾つもの策を組み合わせてパスワードを保護するようになったDropboxのケースを紹介した。「こうした例を見るとまねしたくなるが、安易にまねするのは危険だ。独自に実装すると、かえってハッシュ値の『縮退』を起こすケースもある。安易な自作はせず、信頼できるライブラリやフレームワークを使うべきだ」と、保護のポイントを紹介した。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。