web-dev-qa-db-ja.com

OpenSSLでのPRNGの使用-fipsモード

CentOSベースのネットワークデバイスで作業しています。fips140-2レベル2を渡す必要があります。opensslをfipsモードで使用し、CTR_DRBGをPRNGとして使用する予定です。 NIST SP 800-90 requirmentsを満たすにはこれで十分ですか?

エントロピーの外部ソースを提供する必要がありますか、それともLinuxのデフォルトの/ dev/randomで十分ですか?ラン

4
user3087632

CTR_DRBGは承認済みですPRNG for FIPSコンプライアンス、NIST SP800-90Aで定義されています。Linuxの/dev/randomは、原則として、NIST SP800-90Bに基づく適切なエントロピーソースですが、特定のユースケースに適しているかどうかは、Linuxカーネル自体がエントロピーを取得できる場所によって異なります。ハードウェアRNG(最新のIntel CPUのRDRANDなど)を使用すると、認証中に出題される質問が少なくなります。

それ以上に、FIPS 140レベル2認定には、(レベル1とは異なり)実際のセキュリティ要件が含まれているため、承認されたアルゴリズムを使用するだけでは十分ではありません(ただし必須です)。証明書の他のすべての要件(ロギング、データのスクラブ、オペレーター認証、無意味なセルフテストなど)を満たし、すべての要件を満たしていることを評価者に満足させる必要があります。

OpenSSLを使用するCTR_DRBG(AES)FIPS FIPSモードで動作するオブジェクトモジュールv2.xは、FIPS 140- 2レベル1.このモジュールは既にFIPS OpenSSL Software Foundationによって認定されていることをご存知ですか?デバイスがテスト済みのものに近い場合、既存のCMVP証明書の適用性を主張できる可能性があります セキュリティポリシー に記載されている構成。独自の認定を受けることを約束する前に、NISTで検証された 暗号化モジュールリスト を確認してください。

独自のFIPS認定を取得する必要がある場合、その認定の一環として、エントロピーソースを分析して、十分なエントロピーがあることを証明する必要があります。エントロピー分析レポート(EAR)を作成する必要があります。エントロピーソースがどのように動作するかを記述します(この場合は_/dev/random_)。また、各ソースの実際のエントロピーイベントと calculate min-entropy を収集して、主張を実証する必要があります。

Linuxカーネル(_/drivers/char/random.c_)は、複数のソフトウェアエントロピーソースを実装しています。それらはadd_disk_randomness()add_input_randomness()add_interrupt_randomness()です。ハードウェアの設定(フラッシュストレージのみのヘッドレスシステムなど)によっては、起動時間のエントロピーが不十分になる可能性があります。そのような場合、追加のエントロピーソースを統合して認証する必要があります。 1つの可能性は、IntelのRdSeedのようなCPUソースです。別の可能性は、ソフトウェアのみ CPU Jitter です。

0
Kirill Sinitski