連邦情報処理規格(FIPS)の140シリーズは、暗号モジュールの要件を規定する米国政府のコンピュータセキュリティ規格です。
2020年10月現在 FIPS 140-2とFIPS 140-3はどちらも現行かつ有効なものとして受け入れられています。[ 1 ] FIPS 140-3は、 FIPS 140-2の後継として 2019 年 3 月 22 日に承認され、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 ]
米国国立標準技術研究所(NIST)は、米国連邦政府の各省庁および機関で使用されるハードウェアおよびソフトウェアコンポーネントを含む暗号モジュールの要件と標準を調整するために、140 刊行物シリーズを発行しています。FIPS 140 は、その要件に準拠するモジュールが安全であることを保証する十分な条件を提供するものではなく、ましてやそのようなモジュールを使用して構築されたシステムが安全であることを保証するものでもありません。要件は、暗号モジュール自体だけでなく、そのドキュメント、そして(最高レベルのセキュリティにおいては)ソースコードに含まれるコメントの一部にも適用されます。
暗号化モジュールを導入しようとするユーザー機関は、使用するモジュールが既存の検証証明書の対象となっていることを確認する必要があります。FIPS 140-1およびFIPS 140-2の検証証明書には、モジュール名、ハードウェア、ソフトウェア、ファームウェア、および/またはアプレットのバージョン番号が明記されています。レベル2以上の場合は、検証が適用されるオペレーティングプラットフォームも記載されています。ベンダーは必ずしもベースライン検証を維持しているとは限りません。
暗号モジュール検証プログラム(CMVP)は、米国政府の国立標準技術研究所(NIST)コンピュータセキュリティ部門とカナダ政府の通信保安局(CSE)が共同で運営しています。米国政府は、機密指定のない暗号利用においては、検証済みの暗号モジュールの使用を義務付けています。カナダ政府もまた、各省庁の機密指定のない用途において、FIPS 140規格に準拠した検証済みの暗号モジュールの使用を推奨しています。
FIPS 140-2は、「レベル1」から「レベル4」までの4つのセキュリティレベルを定義していますが、特定のアプリケーションに必要なセキュリティレベルについては詳細に規定していません。
仕様書のセクション4.1.1では、指定されたレベルに加えて、差分電力解析など、対策が必要となる可能性のある追加の攻撃についても説明しています。製品にこれらの攻撃に対する対策が含まれている場合は、それらを文書化してテストする必要がありますが、特定のレベルを達成するために保護対策が必須というわけではありません。したがって、FIPS 140-2に対する批判の一つは、この規格がレベル2以上で誤った安心感を与えているという点です。なぜなら、この規格はモジュールが改ざん防止機能や改ざん耐性を備えていることを示唆しているにもかかわらず、モジュールには鍵の簡単な抽出を可能にするサイドチャネル脆弱性が存在することが許容されているからです。
FIPS 140は、11の異なる分野で要件を課しています。
1994年1月11日に発行され、2002年5月25日に廃止されたFIPS 140-1 [ 4 ]は、暗号機器のベンダーとユーザーで構成される政府と業界のワーキンググループによって開発されました。このグループは、上記の4つの「セキュリティレベル」と11の「要件領域」を特定し、各レベルの各領域の要件を規定しました。
2001 年 5 月 25 日に発行されたFIPS 140-2 は、1994 年以降の利用可能な技術と公式標準の変更、およびベンダー、テスター、ユーザー コミュニティから受け取ったコメントを考慮に入れています。これは、2006 年 3 月 1 日に発行された国際標準ISO / IEC 19790 :2006暗号モジュールのセキュリティ要件の主要な入力文書でした。NIST は、FIPS 140-1 から FIPS 140-2 への重要な変更の概要を示す特別刊行物 800-29 を発行しました。[ 5 ]
2019 年 3 月 22 日に発行され、2019年 5 月に発表されたFIPS 140-3 [ 2 ]は、現在 FIPS 140-2 に取って代わるための移行期間の重複期間にあり、NIST のガイダンスを 2 つの国際標準文書、 ISO / IEC 19790:2012(E)情報技術 - セキュリティ技術 - 暗号モジュールのセキュリティ要件、およびISO / IEC 24759:2017(E)情報技術 - セキュリティ技術 - 暗号モジュールのテスト要件に合わせています。FIPS 140-3 標準の最初のドラフト バージョン[ 6 ]では、NIST は新しいソフトウェア セキュリティ セクション、追加の保証レベル (レベル 5)、および新しい単純電力分析(SPA) と差分電力分析(DPA) の要件を導入しました。しかし、2009 年 9 月 11 日に発行されたドラフトでは、4 つのセキュリティ レベルに戻り、ソフトウェアのセキュリティ レベルをレベル 1 と 2 に制限しています。
検証プロセスの設定方法により、ソフトウェアベンダーは、ソフトウェアへの変更がどんなに小さくても、FIPS 検証済みモジュールを再検証する必要があります。この再検証は、明らかなバグやセキュリティ修正の場合でも必要です。検証はコストのかかるプロセスであるため、ソフトウェアベンダーはソフトウェアの変更を延期するインセンティブを持ち、次の検証までセキュリティアップデートを受け取らないソフトウェアになる可能性があります。その結果、検証済みのソフトウェアが、検証されていない同等のソフトウェアよりも安全性が低い可能性があります。[ 7 ]
この批判に対しては、最近では業界の専門家が、検証範囲を狭める責任はベンダーにあると反論している。再検証のほとんどは、コア暗号化操作以外のバグやセキュリティ修正によって引き起こされるため、適切に範囲を絞った検証は、前述のような一般的な再検証の対象にはならない。[ 8 ]