JCMVP観察していた日記

my thoughts to JCMVP

J0006に見られるJCMVPのレベルの低さについて

今日はJ0006:PDFについて書きたいと思います。本暗号モジュールは、私がJCMVPのレベルの低さに呆れた製品です。

ベンダーは、暗号モジュールがどのようにISO/IEC 19790に適合しているのかを、セキュリティポリシーを用いて表明する必要があります。それでは、このセキュリティポリシーから、本モジュールがどのようにISO/IEC 19790に適合していないかを話します。
ポイントは、7. 暗号鍵管理、(3)鍵生成、鍵の入力、鍵の格納、及び鍵のゼロ化、にある表6で定義されているCSPです。

CSPに対するISO/IEC 19790の用件は、7.7.6に述べられています。

暗号モジュールは,CSP のすべてをゼロ化するための方法を提供しなければならない。
次のCSP にはゼロ化は要求されない。
・暗号化されたCSP。
・暗号化されてはいないが,物理的又は論理的に保護されたCSP であって,付加的に組込まれる,認証された暗号モジュール(この規格の要求事項を満たすもの)の中のもの。
認証プロキシであるプロセスに対して排他的に平文データを渡すためにCSP が使用される場合,これらのゼロ化の要求事項を満たす必要はない。

つまり、暗号化されていないCSP(例えばKEKによって暗号化されていない秘密鍵、共通鍵*1)、ほかの認証を取得している暗号モジュールに保存されているCSP以外はゼロ化する手段を提供する必要があります。
J0006にて定義されている3番目のCSP、データパスワード認証データは、

オペレータからは無効化できない。

、という驚きの仕様。しかし、その次のファームウェアMAC 鍵には、もっと驚くことが書いてあります。

ダウンロードパスワードを用いて暗号化され、

、え、パスワードで暗号化?ISO/IEC 19790のどこにパスワードベースで生成した鍵で暗号化して良いって書いてあるのでしょうか(別に悪くないけど、ISO/IEC 19790では、これを「暗号化」とは言わない)。7.7.2鍵生成では、

承認された暗号アルゴリズム又は承認されたセキュリティ機能に使用するために,暗号モジュールによって生成される暗号鍵は,承認されたRBG を用いて,生成されなければならない。

、と書いてあるのですが、パスワード。へぇパスワード*2。そして、ファームウェアMAC鍵もオペレータからは無効化できない。その次にある、ファームウェア復号鍵もCSPなのにオペレータからは無効化できない。

解決策:変にCSPと指定するから要件が適用されるので、CSPから外す。PBEについては論外。

来週のCRYPTRECシンポジウムは楽しみだなぁ。

#詳細は省いていますが、懇切丁寧な解説が必要でしたらしますので、ご連絡ください。

*1:KEKに対するゼロ化は必須です

*2:承認された暗号アルゴリズムで生成された鍵を手入力するのであれば、7.8.2.2にある、手動鍵入力テストを行う必要がありますが、本モジュールのセキュリティポリシーからはそのようなテストが行われていることが読み取れません