FIPS 140

連邦情報処理標準( FIPS )の 140 シリーズは、暗号化モジュールの要件を規定する米国政府のコンピュータ セキュリティ標準です。

2020年10月現在、FIPS 140-2FIPS 140-3はどちらも現行かつアクティブとして認められています。[ 1 ] FIPS 140-3は、2019年3月22日にFIPS 140-2の後継として承認され、2019年9月22日に発効しました。[ 2 ] FIPS 140-3のテストは2020年9月22日に開始され、少数の検証証明書が発行されています。FIPS 140-2のテストは2021年9月21日まで利用可能であり(その後、進行中の申請については2022年4月1日までに変更されました[ 3 ])、1年間の重複移行期間が生じます。 CMVPキューに残っているFIPS 140-2テストレポートは、その日以降も引き続き検証が認められますが、実際の最終検証日に関わらず、すべてのFIPS 140-2検証は2026年9月21日に履歴リストに移動されます。[ 3 ]

FIPS 140の目的

米国国立標準技術研究所(NIST)は、米国連邦政府の各省庁および機関が使用するハードウェアおよびソフトウェアコンポーネントを含む暗号モジュールの要件と標準を統一するために、140出版物シリーズを発行しています。FIPS 140は、その要件に準拠するモジュールが安全であることを保証するのに十分な条件を提供するものではなく、ましてやそのようなモジュールを使用して構築されたシステムが安全であることを保証するものではありません。この要件は、暗号モジュール自体だけでなく、そのドキュメント、そして(最高レベルのセキュリティレベルでは)ソースコードに含まれるコメントの一部も対象としています。

暗号モジュールの実装を希望するユーザー機関は、使用するモジュールが既存の検証証明書の対象となっていることを確認する必要があります。FIPS 140-1およびFIPS 140-2の検証証明書には、正確なモジュール名、ハードウェア、ソフトウェア、ファームウェア、および/またはアプレットのバージョン番号が記載されています。レベル2以上の場合は、検証が適用されるオペレーティングプラットフォームも記載されています。ベンダーは必ずしもベースライン検証を維持しているとは限りません。

暗号モジュール検証プログラム(CMVP)は、米国政府国立標準技術研究所(NIST)コンピュータセキュリティ部門とカナダ政府通信保安局(CSE)が共同で運営しています。米国政府は、機密扱いではない暗号技術のあらゆる用途において、検証済みの暗号モジュールの使用を義務付けています。また、カナダ政府は、各省庁の機密扱いではないアプリケーションにおいて、FIPS 140準拠の検証済み暗号モジュールの使用を推奨しています。

セキュリティレベル

FIPS 140-2は、「レベル1」から「レベル4」までの4つのセキュリティレベルを定義しています。特定のアプリケーションに必要なセキュリティレベルについては、詳細には規定されていません。

  • FIPS 140-2 レベル 1 は最も低く、非常に限定された要件を課しています。大まかに言うと、すべてのコンポーネントは「製品レベル」である必要があり、さまざまな重大な種類のセキュリティ上の問題が存在してはなりません。
  • FIPS 140-2 レベル 2 では、物理的な改ざん防止とロールベースの認証の要件が追加されています。
  • FIPS 140-2 レベル 3 では、物理的な改ざん防止 (攻撃者がモジュールに含まれる機密情報にアクセスすることを困難にする) と ID ベースの認証の要件が追加され、さらに「重要なセキュリティ パラメータ」がモジュールに出入りするインターフェイスとその他のインターフェイス間の物理的または論理的な分離の要件も追加されています。
  • FIPS 140-2 レベル 4 では、物理的なセキュリティ要件がさらに厳しくなり、環境攻撃に対する堅牢性が求められます。

仕様書のセクション4.1.1では、規定のレベルに加えて、差分電力解析など、軽減が必要となる可能性のある追加の攻撃についても説明しています。製品にこれらの攻撃に対する対策が含まれている場合、それらは文書化およびテストされている必要がありますが、特定のレベルを達成するために保護対策が必須というわけではありません。そのため、FIPS 140-2に対する批判の一つとして、この規格はレベル2以上のセキュリティについて誤った認識を与えているという点が挙げられます。この規格では、モジュールが改ざん防止機能および/または耐改ざん性を備えていると示唆されているにもかかわらず、モジュールにはサイドチャネル脆弱性が存在し、簡単に鍵を抽出できる可能性があることが許容されているからです。

要件の範囲

FIPS 140 では、11 の異なる領域で要件が課せられています。

  • 暗号モジュールの仕様(文書化する必要があるもの)
  • 暗号モジュールのポートとインターフェース(どのような情報が流入し流出するか、どのように分離する必要があるか)
  • 役割、サービス、認証(モジュールで誰が何を実行できるか、またそれがどのようにチェックされるか)
  • 有限状態モデル(モジュールが取り得る高レベルの状態と遷移の発生方法のドキュメント)
  • 物理的セキュリティ改ざん防止耐性、過酷な環境条件に対する堅牢性)
  • 動作環境(モジュールが使用するオペレーティング システムの種類と、そのモジュールが使用されるオペレーティング システムの種類)
  • 暗号鍵管理(鍵の生成、入力、出力、保管、破棄)
  • EMI / EMC
  • 自己テスト(何をいつテストする必要があるか、テストが失敗した場合は何をしなければならないか)
  • 設計保証(モジュールが適切に設計され実装されていることを示すために提供する必要があるドキュメント)
  • その他の攻撃の軽減(モジュールが例えばTEMPEST攻撃を軽減するように設計されている場合、そのドキュメントには軽減方法を記載する必要があります)

簡単な歴史

FIPS 140-1は、1994年1月11日に発行され、2002年5月25日に廃止されました[ 4 ]。これは、暗号機器のベンダーとユーザーで構成される政府と業界のワーキンググループによって策定されました。このワーキンググループは、上記に挙げた4つの「セキュリティレベル」と11の「要件領域」を特定し、各レベルにおける各領域に対する要件を規定しました。

2001年5月25日に発行されたFIPS 140-2は、1994年以降に利用可能な技術と公式規格の変化、そしてベンダー、テスト担当者、そしてユーザーコミュニティから寄せられたコメントを考慮に入れています。これは、2006年3月1日に発行された国際規格ISO / IEC 19790 :2006 「暗号モジュールのセキュリティ要件」への主要な入力文書となりました。NISTは、FIPS 140-1からFIPS 140-2への重要な変更点を概説したSpecial Publication 800-29を発行しました。[ 5 ]

2019年3月22日に発行され、2019年5に発表されたFIPS 140-3は現在、FIPS 140-2に取って代わるための重複移行期間にあり、NISTガイダンスを2つの国際標準文書、ISO / IEC 19790 :2012(E)情報技術 - セキュリティ技術 - 暗号モジュールのセキュリティ要件ISO / IEC 24759:2017(E)情報技術 - セキュリティ技術 - 暗号モジュールのテスト要件に沿って調整しています。FIPS 140-3規格の最初のドラフトバージョン[ 6 ]では、NISTは新しいソフトウェアセキュリティセクション、1つの追加保証レベル(レベル5)、および新しい単純電力解析(SPA)および差分電力解析(DPA)要件を導入しました。しかし、2009年9月11日に発行されたドラフトでは、セキュリティレベルが4つに戻され、ソフトウェアのセキュリティレベルがレベル1と2に制限されています。

批判

検証プロセスの設定方法により、ソフトウェアベンダーは、ソフトウェアへの変更がどんなに小さなものであっても、FIPS認証済みモジュールの再検証を行う必要があります。この再検証は、明らかなバグやセキュリティ修正であっても必要です。検証はコストのかかるプロセスであるため、ソフトウェアベンダーはソフトウェアの変更を延期するインセンティブが働き、結果として、次回の検証までセキュリティアップデートが提供されないソフトウェアが生まれる可能性があります。その結果、検証済みのソフトウェアは、検証されていない同等のソフトウェアよりも安全性が低くなる可能性があります。[ 7 ]

この批判に対し、最近では一部の業界専門家が反論し、ベンダーの責任として検証範囲を狭めるべきだと主張しています。再検証の取り組みのほとんどは、コアとなる暗号処理以外のバグやセキュリティ修正によって引き起こされるため、適切な範囲で実施された検証は、前述のような一般的な再検証の対象にはなりません。[ 8 ]

参照

参考文献

  1. ^ 「FIPS一般情報」 . NIST . 2010年10月5日. 2025年12月20日閲覧
  2. ^ a b「FIPS 140-3、暗号モジュールのセキュリティ要件の承認および発行の発表」 NIST。2019年5月1日。 2025年12月20日閲覧
  3. ^ a b「FIPS 140-3移行の取り組み」 NIST。2021年6月2日。 2025年12月20日閲覧
  4. ^ 「連邦情報処理規格(FIPS)140-1:暗号モジュールのセキュリティ要件」 NIST。1994年1月11日。 2025年12月20日閲覧
  5. ^ Snouffer, Ray; Lee, Annabelle; Oldehoeft, Arch (2001-06-01). 「FIPS 140-1とFIPS 140-2における暗号モジュールのセキュリティ要件の比較」 . NIST. CiteSeerX 10.1.1.110.6970 . doi : 10.6028/NIST.SP.800-29 . 2025年12月20日閲覧。 
  6. ^ 「FIPS 140-3: 暗号化モジュールのセキュリティ要件(初期公開草案)」 NIST。2013年3月7日。 2025年12月20日閲覧
  7. ^ 「FIPS 140-2はソフトウェアに悪影響を与えるのか?」 Darren Moffat、Oracle Solaris。2014年4月16日。2022年11月28日時点のオリジナルよりアーカイブ。 2017年3月18日閲覧
  8. ^ 「FIPS Inside」の内部 . Walter Paley, SafeLogic. 2018年4月10日. 2020年10月20日時点のオリジナルよりアーカイブ2025年12月20日閲覧。