第1回 暗号モジュールの安全性について考える


萩原 雄一
日本ネットワークセキュリティ協会(JNSA)
暗号モジュール評価基準WG

2004/12/9



 セキュリティ製品というとファイアウォールやウイルス対策製品を連想される方が多いでしょう。これらの製品は、どこのメーカーがよいというのが簡単に判断できます。また動作も基本的に同じなので、どの製品を選んでも設定・運用さえ間違わなければ、ハズれるということはほとんどありません。

 それでは暗号製品についてはどうでしょうか? ここ数年は、個人情報漏えい事件が後を絶たず、今年も表面化しただけでも11月時点で200件もの事件が起きています。特に最近目立つのがファイル単体ではなく、ノートパソコンごと盗まれてしまうケースです。このようなケースで企業が「パソコンへのアクセスはパスワードを設定しているので、個人情報流出の可能性は少ない」と発表することがあります。

 しかし、物理的な盗難に遭ってしまうと、OSのロック機能はほとんど意味がありません。なぜならログオンするためにいくら強力なパスワードを設定していたとしても、パソコンからハードディスクを抜いて別のパソコンにつなげれば簡単に中を見ることができるからです。この場合の有効な対策は、ハードディスク内の重要なファイルを暗号化することです。

 暗号はかなり広い用途で使用されています。VPNでは、SSLIPSecといった暗号技術を使用してインターネット上で秘匿通信を確保することができます。日常使用しているほとんどのWebメールも、認証の際に入力するパスワードはSSL・TLSを使用して暗号化されて送られています。

 このように暗号は気付きにくいさまざまな場面で使用されており、数多くの暗号製品が販売されています。それではどのような基準で製品を選べばよいのでしょうか? なるべくハズレを引かないためには何に注意をすればよいのでしょうか? 本連載では暗号製品を選ぶ際の基準の1つとなる、暗号の実装についてお話ししたいと思います。

 暗号とは

  そもそも暗号とは何でしょうか? 世の中にはさまざまな暗号がありますが、どの暗号を選べばよいのでしょうか?

 狭義での暗号は「ある法則を使用して意味のあるデータを無意味に見せること」であるといえます(共通鍵暗号)。公開鍵暗号・署名・ハッシュ関数などは@ITのほかの記事で解説されていますのでそちらをご参照ください。

 国が指定している暗号を含め、企業が独自に開発するものなど、世の中には実にさまざまな暗号が存在します。また、ファイル暗号ソフトを例にとっても、「XXX暗号を使用しています!」と大きく書かれていることが多く、暗号の選択が重要であることが理解できるかと思います。

 米国ではFIPS(連邦情報処理規格)として規定されている暗号があり、NIST(National Institute of Standards and Technology:国立標準技術研究所)が推薦する暗号もあります。そのため、米国政府機関ではそれらの暗号の使用が義務付けられています。

 日本ではIPA(独立行政法人 情報処理推進機構)とNICT(独立行政法人 情報通信研究機構)が合同でCRYPTREC(暗号技術評価プロジェクト)を立ち上げ、このプロジェクトで電子政府推奨暗号リストが作成されました。現在、電子政府ではそれらの暗号の使用が推奨されています。しかし、民間企業にはそのような縛りがないので、用途に応じて、適切な第三者評価を得ている暗号を利用しても問題ないでしょう。

 暗号だけで製品を選んでいいの?

 さて、前節で暗号の選択方法について簡単に説明しましたが、製品は適切な暗号だけを搭載していればいいのでしょうか? つまり、「XXX暗号を使用しています!」だけで納得していいかどうかです。

 結論からいうと、それだけでは不十分です。暗号自体は問題ないかもしれませんが、そのほかにも問題はいくらでもあります。

 例えば、ある製品がAES(Advanced Encryption Standard)を使用していたとします。AESはFIPS 197として規定されており、米国政府機関では使用が義務付けられている暗号で、CRYTPRECでも推奨暗号となっています。しかし、AESを用いて暗号化を行ったとしても、その際に使用した鍵が生データのままレジストリなどに保存されていたら安全といい切れるでしょうか? レジストリを見て、その保存されている鍵を用いて暗号化されたデータを復号することは、AESを解読しようとするよりもはるかに手間がかからず、現実的です。

 それでは鍵を安全に保管したとします。利用者しか鍵にアクセスできません。ただ、その鍵が推測しやすいものだったらどうでしょうか? 例えば一見ランダムに生成しているように見える鍵でも、実はシステムクロックから持ってきた時間の特定ビットだけを使用しただけという場合もあります。そうすると鍵のサイズが128ビットあったとしても、実際に予測が不可能なのは4ビット程度ということになります。24回だけ総当たりを行えば鍵は確実に判明してしまいます。

 実際に鍵生成は大変問題となりやすい分野で、過去にはNetscape Navigatorで適切な処理がされなかったため、SSLで暗号化しているはずの通信を30秒で解読されたという欠陥もありました。

 結局、いくら安全といわれている暗号を使用したとしても、その使い方(実装方法)を誤れば意味がないのです。攻撃者は難しい暗号を解読するのではなく、一番弱い個所(Weakest Link)を攻撃するからです。以上のことから、使用している暗号のみで製品を判断することが、どれだけ危険かをご理解していただけたかと思います。

1/2


Index
暗号モジュールの安全性について考える
Page1
暗号とは
暗号だけで製品を選んでいいの?
  Page2
暗号モジュール
FIPS 140-2
CMVP


関連記事
PKIチャンネル
注目の情報管理方式「しきい値秘密分散法」

Security&Trust記事一覧


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間