セキュリティ

政府基準に準拠するために「より脆弱なハッシュ関数」の使用を監査人に命じられた話


ユーザーパスワードなどの重要なデータを保管する企業や組織は、平文でパスワードを保存するのではなく、暗号学的ハッシュ関数で一方向のみ変換可能な「ハッシュ値」としてデータを格納します。政府の資金を用いる機関に所属していたという人物が、「政府の基準に準拠するため、従来より脆弱なハッシュ関数を使用するように監査人に指導された」と報告して話題となっています。

They want us to be compliant, not secure | Go350
https://www.go350.com/posts/they-want-us-to-be-compliant-not-secure/

They want us to be compliant, not secure | Hacker News
https://news.ycombinator.com/item?id=25543818

2020年12月24日に匿名で投稿されたブログ記事では、「数年前、連邦政府の資金による研究に携わる機関で働いていた」という著者が体験した事例がつづられています。著者が働く施設は、Windows・Mac・Linux・UnixなどのさまざまなOSを搭載した、デスクトップ・ラップトップ・ワークステーション・サーバー・組み込みデバイスなどの多種多様なハードウェアが入り交じる環境だったとのこと。


このうち、いくつかのLinuxディストリビューションやUnixでは、ユーザーパスワードを格納するためにbcryptというハッシュ関数が標準で使われていました。1999年に公開されたbcryptはBlowfishを基にしたハッシュ関数であり、パスワードとハッシュ値の組み合わせを記録したレインボーテーブル攻撃に対抗するためにソルトを加えるといった特性を備えています。

著者は「bcryptは高速かつ効率的なパスワードハッシュであり、強力で攻撃することが困難です。当時、これは私たちが使用できる最強のパスワードハッシュであり、追加のボーナスとして全てのLinuxおよびUnixシステムで機能しました」と述べ、bcryptによるハッシュ化は強力だったと主張しています。


しかし、ある年にシステムの監査に訪れた政府のIT監査人が、施設がユーザーパスワードの保存にbcryptを使用していることを発見。監査人は著者らに対し、bcryptはアメリカの連邦情報処理標準(FIPS)に定められたアルゴリズムではないため、bcryptを使用することはFIPSに準拠していないと説明し、SHA-2ベースのハッシュ関数に切り替えるように要求しました。

これに対し、著者らはSHA-2ハッシュがbcryptハッシュよりもはるかに簡単に解読できることを示すテストを実行し、セキュリティの観点からbcryptの使用が優れていると反論しました。ところが監査人は断固としてbcryptの使用を認めず、FIPSに準拠しているSHA-2への切り替えを求めてきたそうです。

「彼らの心の中では、これは単純な問題でした。bcryptはリストにありませんでした。承認されたハッシュ関数ではありませんでした。彼らはそれ以上議論しませんでした」と著者は記しています。最終的に、施設は監査人を満足させるために全てのシステムをSHA-2に切り替えたそうで、これによりシステムがサイバー攻撃に対し脆弱になった可能性があるとのこと。著者の同僚は、「監査人は私たちが安全であることではなく、リストに準拠することを望んでいます」とコメントしました。


この一件はインターネット掲示板のHacker Newsでも話題となっており、「自分も著者と似たような境遇に陥っており、規制当局から明らかに不要な作業手順を加えるように要求されています」「特にFIPSのようないくつかの規制はかなり時代遅れに見え、実際にシステムの安全性を低下させます」」「多くのセキュリティ担当者は最新技術を駆使して仕事をするのではなく、『監査人や上級管理職が定めたポリシーに従うこと』で仕事をしています」といった、著者の意見に賛同するようなコメントが寄せられました。

一方、著者に対して「著者がするべきはこうしたブログを書くことではなく、bcryptの有効性を証明し、FIPSのリストに加えるよう働きかけることではないでしょうか」「監査人が個人の裁量でbcryptを許可した場合、問題が起きたら責任を取らされる立場であるため、明らかに劣っていても決して問題とならない判断を行うのは自然です」と意見するコメントもあります。

また、著者は大量の組織を監査する当局の観点を理解しておらず、ブログ記事は偏った視点に基づいたものだという反論もされています。「当局はさまざまな企業で監査を行うため、標準のバリエーションが少ないほど仕事の負担が減ります。FIPは、おそらく1つのハードウェアでのハッシュパフォーマンステストよりもはるかに網羅的です」「官僚主義をばかにして『政府は安全を軽視している』言う場合、人間の行動を規制するには膨大な費用がかかるという側面を無視しています。政府はこれらの費用を最適化しなければなりません」「『監査人が承認されたアルゴリズムが弱いことを気にしなかった』という点は100%著者の視点であり、監査人もbcryptについて知っていた可能性は十分にあります」といったコメントも見られました。

この記事のタイトルとURLをコピーする

・関連記事
Googleがハッシュ関数「SHA-1」を破ることに成功、90日後に手法を公開予定 - GIGAZINE

アニメーションで感覚的にハッシュ関数「SHA-256」の算出過程を理解できる「SHA-256 Animation」 - GIGAZINE

パスワード解析などに使われる「レインボーテーブル」の仕組みとは? - GIGAZINE

ユーザーにアカウントを作らせるときのルール6個 - GIGAZINE

1秒間に1000億個のパスワードを試せるマシンはすでに存在する、パスワードを安全に保つ方法とは? - GIGAZINE

8文字のWindowsパスワードはわずか2時間半で突破可能と判明 - GIGAZINE

in ソフトウェア,   セキュリティ, Posted by log1h_ik

You can read the machine translated English article here.