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


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

2004/12/9



 暗号モジュール

 ここで次の説明に入る前に、「暗号モジュール」について定義しておきます。本連載では暗号モジュールを、「暗号機能を有するソフトウェア、ファームウェア、ハードウェア、もしくはその組み合わせ」と定義します。よってVPNルータの場合、暗号処理をするファームウェアのみを暗号モジュールとしてもよいですし、VPNルータ全体を暗号モジュールとしても問題ないこととします。また、前述のファイル暗号ソフトも全体を暗号モジュールと呼んだり、暗号処理を行っているDLLだけを暗号モジュールと呼んだりしても問題ないこととします。

 また、暗号機能とは、狭義ではなく、広義の暗号機能を指すこととします。つまり、共通鍵暗号だけではなく、公開鍵暗号ハッシュ・鍵付きハッシュ・擬似乱数生成・秘密分散を含みます。

 FIPS 140-2

 ここでは米国の暗号モジュールのセキュリティ要件であるFIPS140-2について説明いたします。米国では早くから暗号の実装が重要視されていました。FS 1027(Federal Standard:連邦規格)では共通鍵暗号DES(Data Encryption Standard, FIPS 46)を使用する機器に対するセキュリティ要件が規定されました。後に管轄がNSA(国家安全保障局)からNISTに移ったこともあり、FS 1027はFIPS 140となりましたが、この時点では名前が異なっているだけで、内容は同一でした。

 しかし、FIPS 140は成功しませんでした。使用できる暗号がDESだけで、さらにハードウェアにしか対応していなかったからです。このため、準拠製品はほんの一握りにとどまりました。後にFIPS 140-1「暗号モジュールのセキュリティ要件」(Security Requirements for Cryptographic Modules)としてFIPS 140は更新されました。DESだけでなく、ほかの暗号も対象とし、ソフトウェアも対応したことで、FIPS 140-1はそれなりの成功を収めました。しかし、FIPS 140の影響は依然大きく、FIPS 140-1はハードウェア寄りの規格でした。ソフトウェアモジュールに対しても物理セキュリティを要求したことからその様子がうかがえます。

 FIPS 140-1が成功し始めたときに、FIPS 140-1は現在のFIPS 140-2に更新されました。依然ハードウェア寄りですが、ソフトウェアモジュールに対して、物理セキュリティを求めることはなくなりました。また、規格があいまいだったために発行された、実装ガイダンスの内容を踏まえたものとなりました。

 FIPS 140-2の一番の恩恵は、その規格に準拠することでWeakest Linkを底上げできることです。FIPS 140-2では11の分野が規定されており、その分野ごとにレベルが最低の1から最高の4まで定義されています。

 例えば、暗号モジュールの仕様を定める第一分野では、使用する暗号を定めなければなりません。その際にFIPSで規定されている暗号が最低1つは使われていなければなりませんし、米国政府機関ではこの暗号を使用しなければなりません。これによって政府機関が暗号の選択を誤る確率がかなり減ります。

 また、鍵のライフサイクルについても規定されていますので、弱い鍵が生成されることはありません。このように、FIPS140-2では、各分野において暗号モジュールを実装する際に問題となる個所に対する要件が網羅されており、いままで自社だけでは気付かなかった実装の誤りに気付き、訂正することが可能となります。

 CMVP

 それではベンダはどのようにFIPS 140-2と向き合えばよいのでしょうか? 開発者が暗号モジュールを開発するときに注意する程度でよいのでしょうか?

 その答えが米国のNISTおよびカナダのCSE(通信保証機構:Computer Security Establishment)が開催しているCMVP(暗号モジュール認定制度:Cryptographic Module Validation Program)です。CMVPとは暗号モジュールがFIPS 140-2に準拠しているかを判断し、もし準拠が確認されたら認定が付与される制度です。

FIPS 140-2テスト及び認定の一般概要 (NISTのWebサイトからの引用)

 CMVPの流れをNISTの図を用いて説明します。

 1 ベンダが評価機関を選び(現在9つの評価機関があります)、モジュールの評価を依頼します
 1a 評価機関は製品のFIPS 140-2への準拠をテストし、テスト報告書を作成します
 2 認定機関であるNISTおよびCSEにテスト報告書が提出されます
 3 レビュワーが決められ、モジュールのレビューが行われます
 4 もしモジュール・ドキュメントに問題があった場合は評価機関が認定機関の質問に回答します。評価機関が答えられない質問はベンダが回答します
 5 モジュールがFIPS 140-2の準拠を認められ、NISTのWebサイトの認定リストに追加されます
 5a 評価機関を経由して、ベンダに認定書が送られます

 以上、暗号モジュールの実装の大切さ、FIPS 140-2・CMVPを少しでもご理解いただけたでしょうか? CMVPではすでに450を超える製品が認定されており、今後ますます増えることが予想されます。次回はなぜFIPS 140-2が大切なのかを中心に説明しますので、ご期待ください。


【参考文献】

  1. National Institute of Standard Technology, FIPS PUB 140-2 Security Requirements for Cryptographic Modules, May 25, 2001
  2. National Institute of Standard Technology, General Flow of FIPS 140-2 Testing and Validation. Online document.
  3. Peter Gutmann, How to break Netscape's server key encryption, 25 Sep, 1996.
  4. Niels Ferguson, Bruce Schneier, Practical Cryptography, John Wiley & Sons Inc, 28 March, 2003
  5. John Viega, Gary McGraw, Building Secure Software: How to Avoid Security Problems the Right Way, Addison-Wesley Pub Co, 24 September, 2001

2/2


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


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

Security&Trust記事一覧


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

注目のテーマ

Security & Trust 記事ランキング

本日 月間