JCMVP観察していた日記

my thoughts to JCMVP

FIPS 140-2 Area 1

FIPS 140-2のArea 1では、暗号モジュールの仕様を定めることが要求されています。


まずはモジュールの形状を以下の三種類から決めます

  • single chip
  • multi-chip embedded
  • multi-chip standalone



Single chipはそのままです。スマートカードとかですね。
multi-chip embeddedは他の機器に組み込んで使う暗号モジュールです。
HSMとか、組み込み型の暗号モジュールはmulti-chip embeddedになります。
multi-chip standaloneは、他の機器に組み込まずに使う暗号モジュールです。
VPNルータとか、トークンが該当します。ソフトウェアは全てこの分類です。


暗号モジュールは、

のいずれか、もしくはその組み合わせで構成される、ことが求められます。
ハードウェアだけで構成されるのは無いんじゃないかなぁ、と思います。


暗号モジュールは、1つ以上のFIPSで規定された暗号アルゴリズムを実装し、
1つ以上のFIPSで規定された暗号アルゴリズムが、FIPS 140-2に則った方法で
動作可能でなければなりません。その状態を、暗号モジュールがFIPS modeで
動作している、といい、その状態のみがCMVPでは評価されます。
暗号モジュールは独自暗号を実装しても良いですが、それをFIPS 140-2に
則った方法で動作させても、一切評価されません。
暗号モジュールはFIPSで規定された暗号アルゴリズムを実装しても、それを
FIPS 140-2に則った方法で動作させない場合は、一切評価されません。


FIPS 140-2では、分野によっては4段階にレベルが設定されています。
レベル1が最低限のハードル、レベル4が最もハードルが高いです。
各分野の中で一番低いレベルがモジュールの全体としてのレベルになります。
特定の分野だけがレベル4でも問題ありませんし、そのように評価されます。


この分野では、レベル1, 2は追加の要件はありません。
レベル3, 4では、暗号モジュールがFIPS modeで動作している時に、
何らかの方法で操作主体にそれを通知する必要があります。
通知の方法は、状態出力関数で聞かれた時に戻り値として返しても
良いですし、ハードウェアならLEDで通知しても良いです。