エフセキュアブログ

bcrypt を含む記事

TrustyConの動画

 初の「Trustworthy Technology Conference(信頼できる技術カンファレンス)」TrustyConが昨日、サンフランシスコで開催された。そして、Google/YouTubeが無償で撮影スタッフを派遣した。すばらしい!今回のイベント全体はここで確認できる。



 ミッコのプレゼンは、15分45秒に始まる。

 他の講演者:Alex Stamos、Cindy Cohn、Marcia HofmannChristopher SoghoianJoseph MennBruce SchneierGarrett RobinsonYan Zhu、Chris Palmer、Dan Boneh、Steve Weis、Jeff Moss、Ed Felten

 TrustyConのアジェンダには詳細がすべて載っている。

 そしてEventifierには、関連するつぶやきや写真について一大コレクションがある。

再録:パスワードは本当にSHA-1+saltで十分だと思いますか?

  昨日、一部メンバーのパスワードに障害が起きたという報道を、LinkedInが認めた。

  以下は彼らのブログからの情報だ:

  「我々が先頃導入した強化版のセキュリティには、現行のパスワードデータベースのハッシュとsaltが含まれており、今回の影響でパスワードを変更するユーザーにも、パスワードに障害が起きていないメンバーにも利益を与えるだろう。」

  ハッシュとsalt? それで十分なのか? それは以下の再録記事(アップデートを含む)で、昨年、エフセキュアのジャルノ・ネメラが呈した疑問だ。

—————

  アナーキーなインターネットグループ「Anonymous」が先頃、HBGary Federalとルートキットテクノロジの分析と開発に専心しているオンラインフォーラム「rootkit.com」をハッキングした。「rootkit.com」の全ユーザパスワードに障害が起きている。

  この件に関連して、アプリケーションセキュリティで気に入っているトピック、すなわちパスワードハッシュについて指摘したい。

I've forgotten your password again, could you remind me?

  Web(およびその他の)アプリケーションが、ユーザパスワードのハッシュにMD5、SHA1またはSHA-256を使用しており、先進的なデベロッパさえ、そのパスワードをsaltしている。そして私は長年に渡って、salt値はどのように生成されるべきか、どのくらいの長さであるべきかについて、白熱した議論を目にしてきた。

  残念なことに、ほとんどの場合、MDおよびSHAハッシュファミリーは計算速度のために設計されており、そして「rootkit.com」で起こったように、salt値のクオリティは、攻撃者が完全なコントロールを握ったとき、重要ではないという事実が見逃されている。攻撃者がルートアクセスを有するとき、彼らはあなたのパスワード、saltおよびあなたがパスワードを確認するために使用するコードを獲得する。

  そして、どんなセキュリティ設計でも基づくべき推測は、攻撃者がサーバ上のすべてにアクセス可能である、ということだ。

  saltは主として、レインボーテーブルとしても知られる、事前計算された攻撃を防止することを目的としている。そして事前計算された攻撃が防止される限り、たとえ攻撃者がユーザパスワードと共にsalt値を獲得したとしても、パスワードは比較的安全だと、一般に推測されてきた。

  しかしMDおよびSHAハッシュバリアントは、計算速度のために設計されており、これは、処理用のビデオグラフィックスディスプレイカードを使用すると、攻撃者が1秒に何億ものブルートフォースを容易に試みることができるということを意味する。

  以下を参照:http://www.golubev.com/hashgpu.htm

  すなわち、単一のATI HD 5970でさえ、攻撃者は33日で典型的レインボーテーブル(2^52.5ハッシュ)に相当するパスワードスペースをカバーすることができる、ということを意味している。そしてシリアスな攻撃者が、仕事に複数のカードを使用していることは間違いない。

  攻撃者があなたのsalt値とコードを獲得した場合、ユーザアカウントを保護するものは、使用されているパスワードの強度しかないが、我々はあまり、エントロピーの良いソースであるとは言えない。辞書攻撃とブルートフォースの手法を組み合わせることによって、多くのアカウントを持つ大規模サイトであっても、かなりの量のパスワードを破るのに、それほど長い時間はかからないだろう。

  このような事態を避けるには、どうすべきだろう?

  最初に考えるべきことは、パスワードが現実世界の金庫に非常に似ているということだ。重要なのは、中身を守る金庫を開けるのに必要なコードの長さだけでなく、開けるのにどのくらいの時間が掛かるかということだ。

  これは、SHA1あるいは他のプレーンなハッシュアルゴリズムは明らかに、セキュアなパスワード認証向きではないことを意味している。

  我々が使いたいのは、ブルートフォースに対して無力でないものだ。1秒あたり23億回の試みを行う代わりに、あなたは攻撃者を10,000回あるいは100,000回の試みに制限する何かを望むだろう。

  そしてsalt値の使用は適切なインプリメンテーションに不可欠であるものの、あなたの問題を解決する確実な方法ではないのだ。

  それには、以下のプロパティを満たすパスワードハッシュスキームが必要だ:

  •  処理パワーが増大した場合、必要とされる計算時間を容易に調節することができる。
  •  各ユーザが反復の固有番号を持つことができる。
  •  各ユーザハッシュがユニークであり、2人のユーザが同じパスワードであるかを、ハッシュを比較して知ることが不可能である。

  以下から、こうしたスキームをいくつか選ぶことができる:

  •  PBKDF2 http://en.wikipedia.org/wiki/PBKDF2
  •  Bcrypt http://www.openwall.com/crypt/
  •  PBMAC http://www.rsa.com/rsalabs/node.asp?id=2127
  •  scrypt http://www.tarsnap.com/scrypt.html


  各選択肢はそれぞれの強みと弱みがあるが、これらは全てSHA1+saltのような汎用ハッシュのインプリメンテーションより、はるかに強力だ。

  よって、あなたがパスワードを扱っているなら、上記のスキームのうち1つを選び、望ましい時間(10、200msなど)内にサーバがパスワードをチェックする反復の回数を決定し、それを使用する。攻撃者が各反復で全アカウントに対して試せるようにするのではなく、各アカウントに個別にフォーカスさせるよう、各ユーザに対してユニークなsalt値と反復カウントを用意することだ。

  オリジナルの記事(およびコメント)はここにある。

「SHA-1+salt」はパスワードに十分だと思いますか?

  アナーキーなインターネットグループ「Anonymous」が先頃、HBGary Federalとルートキットテクノロジの分析と開発に専心しているオンラインフォーラム「rootkit.com」をハッキングした。「rootkit.com」の全ユーザパスワードに障害が起きている。

  この件に関連して、アプリケーションセキュリティで気に入っているトピック、すなわちパスワードハッシュについて指摘したい。

I've forgotten your password again, could you remind me?

  Web(およびその他の)アプリケーションが、ユーザパスワードのハッシュにMD5、SHA1またはSHA-256を使用しており、先進的なデベロッパさえ、そのパスワードをsaltしている。そして私は長年に渡って、salt値はどのように生成されるべきか、どのくらいの長さであるべきかについて、白熱した議論を目にしてきた。

  残念なことに、ほとんどの場合、MDおよびSHAハッシュファミリーは計算速度のために設計されており、そして「rootkit.com」で起こったように、salt値のクオリティは、攻撃者が完全なコントロールを握ったとき、重要ではないという事実が見逃されている。攻撃者がルートアクセスを有するとき、彼らはあなたのパスワード、saltおよびあなたがパスワードを確認するために使用するコードを獲得する。

  そして、どんなセキュリティ設計でも基づくべき推測は、攻撃者がサーバ上のすべてにアクセス可能である、ということだ。

  saltは主として、レインボーテーブルとしても知られる、事前計算された攻撃を防止することを目的としている。そして事前計算された攻撃が防止される限り、たとえ攻撃者がユーザパスワードと共にsalt値を獲得したとしても、パスワードは比較的安全だと、一般に推測されてきた。

  しかしMDおよびSHAハッシュバリアントは、計算速度のために設計されており、これは、処理用のビデオグラフィックスディスプレイカードを使用すると、攻撃者が1秒に何億ものブルートフォースを容易に試みることができるということを意味する。

  以下を参照:http://www.golubev.com/hashgpu.htm

  すなわち、単一のATI HD 5970でさえ、攻撃者は33日で典型的レインボーテーブル(2^52.5ハッシュ)に相当するパスワードスペースをカバーすることができる、ということを意味している。そしてシリアスな攻撃者が、仕事に複数のカードを使用していることは間違いない。

  攻撃者があなたのsalt値とコードを獲得した場合、ユーザアカウントを保護するものは、使用されているパスワードの強度しかないが、我々はあまり、エントロピーの良いソースであるとは言えない。辞書攻撃とブルートフォースの手法を組み合わせることによって、多くのアカウントを持つ大規模サイトであっても、かなりの量のパスワードを破るのに、それほど長い時間はかからないだろう。

  このような事態を避けるには、どうすべきだろう?

  最初に考えるべきことは、パスワードが現実世界の金庫に非常に似ているということだ。重要なのは、中身を守る金庫を開けるのに必要なコードの長さだけでなく、開けるのにどのくらいの時間が掛かるかということだ。

  これは、SHA1あるいは他のプレーンなハッシュアルゴリズムは明らかに、セキュアなパスワード認証向きではないことを意味している。

  我々が使いたいのは、ブルートフォースに対して無力でないものだ。1秒あたり23億回の試みを行う代わりに、あなたは攻撃者を10,000回あるいは100,000回の試みに制限する何かを望むだろう。

  そしてsalt値の使用は適切なインプリメンテーションに不可欠であるものの、あなたの問題を解決する確実な方法ではないのだ。

  それには、以下のプロパティを満たすパスワードハッシュスキームが必要だ:

  •  処理パワーが増大した場合、必要とされる計算時間を容易に調節することができる。
  •  各ユーザが反復の固有番号を持つことができる。
  •  各ユーザハッシュがユニークであり、2人のユーザが同じパスワードであるかを、ハッシュを比較して知ることが不可能である。

  以下から、こうしたスキームをいくつか選ぶことができる:

  •  PBKDF2 http://en.wikipedia.org/wiki/PBKDF2
  •  Bcrypt http://www.openwall.com/crypt/
  •  HMAC http://en.wikipedia.org/wiki/HMAC

  各選択肢はそれぞれの強みと弱みがあるが、これらは全てSHA1+saltのような汎用ハッシュのインプリメンテーションより、はるかに強力だ。

  よって、あなたがパスワードを扱っているなら、上記のスキームのうち1つを選び、望ましい時間(10、200msなど)内にサーバがパスワードをチェックする反復の回数を決定し、それを使用する。攻撃者が各反復で全アカウントに対して試せるようにするのではなく、各アカウントに個別にフォーカスさせるよう、各ユーザに対してユニークなsalt値と反復カウントを用意することだ。

バックナンバー
セキュリティ関連リンク
セキュリティ機関

政府関連

セキュリティ関連団体

研究機関・大学
詳細カテゴリ
メディア関係者の皆様へ
エフセキュアブログメンバー
エフセキュアブログメンバー
ミッコ・ヒッポネン
エフセキュア CRO(セキュリティ研究所主席研究員)(ヘルシンキ)
(Twitterアカウント)
(研究所Twitter)
ショーン・サリバン
エフセキュア セキュリティ・アドバイザー(ヘルシンキ)
(Twitterアカウント)
高間 剛典
メタ・アソシエイツ代表
(公式ブログ)
(Twitterアカウント)
星澤 裕二
株式会社セキュアブレイン 最高技術責任者
(公式ブログ)
(人物紹介)
岩井 博樹
デロイト トーマツ リスクサービス株式会社 (〜2013年3月 株式会社ラック) 情報セキュリティ大学院大学 客員研究員
(Twitterアカウント)

(人物紹介)
福森 大喜
株式会社サイバーディフェンス研究所 上級分析官
CDI-CIRTメンバー
(人物紹介)
鵜飼 裕司
株式会社FFRI 代表取締役社長
(人物紹介)
福本 佳成
楽天株式会社
執行役員
OWASP Japan
アドバイザリーボード
Rakuten-CERT representative
(人物紹介)
神田 貴雅
エフセキュア株式会社 プロダクトグループ 部長
富安 洋介
エフセキュア株式会社 プロダクトグループ
コーポレートセールスチーム
エフセキュア株式会社
(エフセキュアブログ公式Twitterアカウント)

海外記事翻訳
株式会社イメージズ・アンド・ワーズ
エフセキュアメールマガジン

ブログに載らないメルマガ限定情報や、技術者インタビュー、製品情報、技術解説を掲載して毎月一回配信します。アドレスのみの登録で購読無料。

エフセキュアブログQRコード
QRコード