私たちは、証拠/証拠のような機密データでファイルに署名するシステムを設計および構築する必要があります。署名プロセスは単純で、基本的にはファイルコンテンツのMD5を計算し、MD5の結果を3DESで暗号化します。問題は、主要なストレージと管理です。
キーは、スマートカード(Cryptoflex)を使用するか、証明書で暗号化されたファイルを送信することにより、政府機関から提供されます。
問題は、HSMなどではなく、ソフトウェアモジュールのみを使用してこのようなシステムを構築できるかどうかです。そのようなシステムはFIPS 140-2レベル2に準拠していますか?
アイデアは、WindowsソフトウェアKSP(Windows Server 2008 R2)を使用してキーをWindows CNGにロードし、署名するデータに対して暗号化操作を実行するCNGを要求することです。
あるいは、システムはCC-1低レベルまたはEAL 5準拠である可能性があります。
Microsoft CNGはFIPS 140-2レベル1であり、レベル2に準拠する計画があるようです。また、レベル2に準拠したシステムを構築するために使用できることが記載されています。HSMの回避についての質問です。または、キーを保存したり、暗号操作を実行したりするためのHWソリューションスマートカードリーダーを使用したキーの読み込みは、安価なデバイス(100ドル未満)であるため問題ありません。
Microsoft CNGまたはPKCS#11の一部の実装のような完全な置き換えと組み合わせて、他のソフトウェアライブラリを使用できます。ライブラリは.Net、できれば.Net 4である必要があります。最後で最後の難しい質問は、Microsoftでこのソフトウェアを実行することを考えているIIS Webアプリケーション(イントラネットのみ)として、ローカルと対話することですデータベースとローカルファイルシステム、これは問題であり、スタンドアロンのWindowsアプリケーションとして設計する必要がありますか?
任意のアドバイスをいただければ幸いです。
わかりました。これらは1つの回答に対する多くの質問です。おそらく2つしか回答できないと思います。
FIPS 140-2レベル2
FIPS 140-2の要件は、キーの管理、保護、操作、および保存の方法を中心としています。参考までに、NISTサイトから セキュリティ要件 を読んでいます。 。
私が見ているのは、レベル1からレベル2への移行で、標準がキーマテリアルの物理ストレージに関連する要件を追加するということです-物理レベルでの最も驚くべき改ざん防止。要件は、キーストレージがソフトウェアであるレベル1での作業から、標準のPCまたはラップトップのメモリにキーを保持する方法が見えない要件へと移行します。物理的な場所を保護する必要があります。キーマテリアル用。
それは、保護された物理的な場所が$ 10,000 HSMでなければならないということではありません- 検証済み暗号化モジュール リストを正しく読んでいる場合、スマートカードであるように見えるベンダーがいくつかある場合があります。ベースの製品はレベル3まで検証されます。確かに、一部のスマートカード製品は改ざんの証拠を提供します。
私の経験から、キーストアをソフトウェアで操作しているとき、実際には全体を呼び出すことはできませんsystem a FIPS 140-2レベル2ソリューション-その改ざん防止証拠を十分に強く与えることはできません。しかし、「FIPS 140-2レベル2モードで動作する」-つまり、デバイスがcanこのレベルで改ざんの証拠を提供すると、モジュールは標準に準拠した方法でこれを行うので、キーを移動すべきでない場所に移動しません。
質問を明確にするために-FIPS 140-2レベル2準拠のスマートカード製品を見つけることができる場合(そして私はできると思います)、HSMよりも低いコストにすることができますソリューションは機能しますが、ソリューションで暗号化操作を実行するときはいつでもスマートカードが存在する必要があることを理解する必要があります。カードからキーを削除すると改ざん防止の目的が損なわれるためです。 「スマートカードリーダーを使用したキーの読み込み」に戻ると、保護されたキーをカードから取り出そうとすることになります。
代替標準-CC-1およびEAL 5
これらはまったく同じものではないため、ここでは少し混乱しています。 EAL 5は、製品が定義されたセキュリティ動作を満たしていることをかなり厳密なレベルで検証するためのものです。しかし、FIPS 140-2によって提供される主要な保護と同じではありません。頻繁に、私はbothを使用する必要があったシステムを開発しました。 EALレベルが非常に高いと、レベル2のFIPSからさまざまな方法で保護されます。
私はこれらを交換することを勧めるのは非常に気が進まないでしょう-あなたは環境のリスクのレベルとそれが保護する情報/操作の価値に対してそれ自身を保護するシステムを設計する必要があります。標準間のスワッピングはそれを行うつもりはありません-セキュリティ分析はそうします。
イントラネットまたはスタンドアロン
これは本当にアプリケーションのニーズに基づいている必要があります。配置する場所、アクセスを制御する方法、イントラネットまたはローカルユーザーがアクセスする目的、および保護する必要があるものは、どこに配置するか、およびどのような保護が必要かを決定します。
確かに、アプリケーションにアクセスしやすくするほど、攻撃の対象となる領域が広くなります。しかし、オンラインシステムの方が更新と保守が簡単な場合があり、攻撃が発生した場合の危機での可用性がアクセス不能を上回っている場合は、スタンドアロンクライアントよりもオンラインの方が優れている可能性があります。
この点については、あなたの目的と製品についてのかなり包括的な議論から生じたものではないので、私は用心してください。
NetscapeのセキュリティサービスにはソフトウェアFIPS-140レベル2認定がありますが、Windowsにはありません: http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140val-all.htm# 814
PKCS#11の.Netラッパーが存在します: http://en.wikipedia.org/wiki/PKCS_%E2%99%AF11#PKCS_.2311_wrappers
しかし、(i)FIPS準拠モジュールでMD5を使用することを期待しないでください。