web-dev-qa-db-ja.com

セキュリティの実装におけるFIPSの重要性の質問

私は断然、セキュリティの専門家ではありませんが、Java(JCA、JCEおよびJSSE))での作業については経験があります。
とにかく、最近FIPSコンプライアンスについての議論がありました。
これを調べましたが、SunのライブラリはFIPS自体には準拠していません。
さらに、私が広く使用しているBouncy Castleは、私の知る限りでは、最良のセキュリティライブラリはFIPSにも準拠していないと見なされています。
私の質問は、厳密にFIPSに準拠した実装を提供することの重要性です。
簡単な例として、secureサイトの構築では、FIPSに準拠しているかどうか)を明示的に示す必要がありますか?
これについてのご意見は大歓迎です。

ありがとうございました。

15
Jim

ソフトウェアライブラリの場合、@ Lizbethに同意します-FIPS 140-2レベル1は、Bouncy Castle、Sun Java、NSSなどのソフトウェアライブラリ用です(JavaライブラリこれはFIPS認定済み。違いは、FIPSに準拠したソフトウェアライブラリが一連のセキュリティ要件を満たすために個別にテストされていることです。特定のレベルのセキュリティを要求する法律がある業界もあります。勤勉とFIPSはそれを強制する方法の1つです。

過去のソフトウェアライブラリを入手する場合、FIPSは、次第に高額で保護されていくハイエンド機能の品質レベルを示すため、さらに重要になる可能性があります。

  • レベル1-基本要件-ソフトウェアまたはハードウェアで実装可能
  • レベル2-明白なコーティングと役割ベースの認証を改ざん-これは、ハードウェアが改ざんされる可能性があることを意味しますが、それは明白です。 SWでは実行できません。
  • レベル3-重要なセキュリティパラメータへのアクセスを防止し、IDベースの認証を提供します。
  • レベル4-改ざんされたときにゼロ化

すべてのレベルの製品があります。通常、リスクがかなり低いWebアプリについて話している場合は、レベル2以降は必要ありません。しかし、重要な材料の侵害が大きな問題となるリスクの高いアプリケーションの場合、FIPS 140-2のレベルの増加が標準になります。私はハードウェアセキュリティモジュール製品の近くにいませんでしたしばらくの間、それは政府や金融などの高セキュリティ市場に参入するためのほぼ要件でした。デバイスに10,000ドルを超えて請求している場合、それがあなたの言うとおりに機能することを証明する必要があります。

14
bethlakshmi

FIPSに準拠する必要がある最も一般的な理由は、法律またはその他の準拠上の理由により、会社が義務付けられていることです。FIPS準拠は、暗号化を意味しますは権威ある機関によって検証されており、固有の欠陥はありません。また、bouncycastleのような他の多くの暗号化ライブラリにも欠陥は発見されていません。

FIPS vs no FIPS is no FIPSは、誰も問題を発見していないという事実に依存していますが、 FIPSは、アクティブなテストとセキュリティ標準に基づいて証明されています。

結局、それはあなたの全体的なセキュリティ態勢を改善しませんが、それがFIPSであるならば、管理をより良く感じさせます。

17
Lizbeth

FIPSコンプライアンス(またはEALレベルなどのヨーロッパの同等物)は、一部の市場または一部の法的資産を達成するための要件です。たとえば、フランスでは、タイムスタンプは、タイムスタンプ機関が必要とする認証プロセスを通過した場合にのみ、法的証拠(タイムスタンプが拘束力がないと主張する当事者にある証拠の負担)と見なされます。 「認証された」HSM(ハードウェアセキュリティモジュール)を使用して、認証機関の秘密鍵を保存および使用する。これがフランスではなく米国で発生した場合、「認定されたHSM」は「FIPS-140レベル4に準拠するHSM」になります。

民間所有エリア(銀行など)では、認証および/またはFIPS= 140レベルは保険会社から提供されます。銀行は使用していることを証明できるため、非常に現実的ではあるが適用されるレートでカバーできます。厳格なセキュリティルール、およびFIPS 140レベルはそのようなルールです。VISAおよびMasterCardはセキュリティに関して特に厳格です(これはお金に関するものであるため、重要です)。

より実用的な用語では、FIPS 140レベルは、ハードウェアとソフトウェアの両方を含む、いくつかのセキュリティ特性(@bethlakshmiからの応答を参照)が達成されることを示すことによって取得されます。一般に、ソフトウェアを証明できない場合、認証プロセスには、システムがすべての職人技(単体テスト、コードレビュー、認証済みソースコードのバージョン管理、開発者自身のバックグラウンドチェックまで)で開発されたことを示すことが含まれます。これには、時間と費用( 100k +ドル)、そしてひどい大量の紙。したがって、FIPS 140への準拠の実際の意味システムが露骨に安全ではないという考えに誰かが多くの時間とお金を費やしたということですこれはシステムが安全であるという意味ではありませんが、少なくともその目標に向けてかなりの努力と投資がありました。

ほとんどのオープンソースプロジェクトは Bazaarモデル を使用しています。これは、優れたコードを迅速に作成するのに効率的ですが、認定プロセスとは完全に互換性がありません。また、ほとんどのオープンソースプロジェクトには資金がないか、ほとんどありません。これは、Bouncy CastleがFIPSに準拠していない理由であり、Sun(現在のOracle)などの大企業でさえ、そのプロセスを実行しないことを好んでいます。ここでも、FIPS準拠とは、「安全でない」、またはシステムを宣言できないことを意味しないFIPS準拠のみ、正式なFIPSコンプライアンスの管理に費やす費用がかさむことはありません。

9
Thomas Pornin

以前のポスターによる優れた以前の回答に追加するために、例を示します。

OpenSSLは FIPS認定バージョンと通常のバージョンの両方 に存在します(サブシステムはFIPS検証済みです)。

OpenSSLのFIPS検証済みモジュールにも影響する領域に脆弱性が見つかった場合、通常、修正は通常のOpenSSLディストリビューションに非常に迅速にプッシュされますが、FIPSバージョンは、更新されたバージョンが認定されるまで、実際には脆弱なままです。

これは、FIPS=コンプライアンス(およびそれが意味する紙の量)が積極的にセキュリティに反対するケースです。

8
Bruno Rohée