AWS KMSがFIPS 140-2 Level 3にアップグレードした後、FIPS 140-3 Level 3に準拠してました
こんにちは、臼田です。
みなさん、暗号化してますか?(挨拶
今回はAWS KMSの認定について古い知識をアップデートするためにまとめます。
わたしの記憶ではAWS KMSはFIPS 140-2 Level 2認定を受けた暗号モジュールという認識でしたが、アップデートを経て変わっていました。下記アップデートです。
AWS KMS HSM が FIPS 140-2 セキュリティレベル 3 にアップグレード
AWS KMS is now FIPS 140-3 Security Level 3. What does this mean for you? | AWS Security Blog
これらとともに順を追って説明していきます。
AWS KMSとFIPS 140-2 Level 2
AWS KMSはKey Management Serviceの名の通りAWS上で鍵管理を行うサービスです。各種AWSサービスと連携してデータの暗号化を行ったり、クライアントでの暗号化を支援します。鍵運用の機能として、利用する暗号鍵の発行・暗号化/復号処理・データキーの作成・キーローテーションなどを行うことができます。
FIPS 140(Federal Information Processing Standardization 140)は暗号モジュールに関するセキュリティ要件の仕様を規定する米国連邦標準規格です。FIPS 140は米国固有の規格ですが、金融・医療・政府系など規制の厳しい業界では調達要件やセキュリティ基準の参照先として採用されるケースがあります。日本も含め暗号モジュールの安全性評価においてFIPS 140の認定が実質的なグローバルスタンダードとして機能しています。
以前AWS KMSはFIPS 140-2のセキュリティレベル2の認証を取得していました。2017年の認定の証明書はCertificate #3009にあります。
評価項目とその結果のセキュリティレベルは以下のようになっています。
| 評価項目 | レベル | 概要 |
|---|---|---|
| 暗号モジュール仕様 | 3 | モジュールの構成、境界、暗号アルゴリズムなどの定義 |
| ポートとインターフェース | 2 | データの物理ポートと論理インターフェースの分離 |
| 役割、サービス、認証 | 3 | 利用者のロールや認証 |
| 有限状態モデル | 2 | モジュールの動作状態(初期化、実行、エラー等)の遷移図の定義 |
| 物理セキュリティ | 3 | 改ざん検知および開封時のデータ消去(ゼロ化)などの物理保護機構 |
| 運用環境 | N/A | 実行環境やOSの管理 |
| 暗号鍵管理 | 2 | 鍵の生成、配布、保管、破棄のライフサイクル管理 |
| 電磁妨害 / 電磁適合性 (EMI/EMC) | 2 | 電磁波によるノイズ干渉の防止や、他の機器への影響を与えない適合性 |
| セルフテスト | 2 | 起動時や実行時に、暗号アルゴリズムが正しく動作しているか自律的に確認する機能 |
| 設計保証 | 3 | 開発プロセス、構成管理、および詳細な設計ドキュメントの信頼性 |
| その他の攻撃の緩和 | N/A | サイドチャネル攻撃など、現状検証できない未知の攻撃に対する防御 |
| 総合レベル (Overall) | 2 | 暗号モジュール全体の総合セキュリティレベルで、最も低いレベルになる |
検証項目には部分的にセキュリティレベル3と評価されている項目を含みつつも、総合レベルで2となっており、これがFIPS 140-2 セキュリティレベル2の「セキュリティレベル2」の部分です。各評価項目が1-4のレベルで評価され、その一番低い評価レベルが総合評価のレベルとなります(いくつかN/Aとして例外でもOK)。ちなみにFIPS 140-2の「-2」の部分はFIPS 140のRev.2という感じになります。
2018年当初のAWSの記事はこちらを参照してください。
FIPS 140-2 Level 3へのアップグレード
2023年3月に下記記事の通りアップグレードされました。
AWS KMS HSM が FIPS 140-2 セキュリティレベル 3 にアップグレード
従来はFIPS 140-2 Level 3の要件が必要な場合はCloudHSMを使う必要がある、と言われていましたがこれによりAWS KMSを利用しても要件を満たすことができるようになりました。
この証明書はCertificate #4523です。評価の結果が以下のように変わっています。
| 評価項目 | レベル | #3009からの変更点 |
|---|---|---|
| 暗号モジュール仕様 | 3 | 変更なし |
| ポートとインターフェース | 3 | 2->3。平文CSP経路を強分離 |
| 役割、サービス、認証 | 3 | 変更なし |
| 有限状態モデル | 3 | 2->3。状態遷移定義を厳格化 |
| 物理セキュリティ | 3 | 変更なし |
| 運用環境 | N/A | 変更なし |
| 暗号鍵管理 | 3 | 2->3。鍵/CSP保護要件強化 |
| 電磁妨害 / 電磁適合性 (EMI/EMC) | 3 | 2->3。EMI/EMC Class B適合 |
| セルフテスト | 3 | 2->3。自己試験と停止制御強化 |
| 設計保証 | 3 | 変更なし |
| その他の攻撃の緩和 | N/A | 変更なし |
| 総合レベル (Overall) | 3 | 2->3。最低評価項目が上昇 |
N/Aでないものはすべて3になっているので、結果的に総合レベル3となりました。
ちなみに#3009以降、#4523までにも何度か認定されており、下記でその履歴が確認できます。いずれも評価結果自体は変わっていませんでした。
Cryptographic Module Validation Program | CSRC
FIPS 140-3 Level 3準拠
そして2024年11月にFIPS 140-3のセキュリティレベル3準拠となりました。(ブログの日付は2025年2月20日更新)
AWS KMS is now FIPS 140-3 Security Level 3. What does this mean for you? | AWS Security Blog
証明書はCertificate #4884で2024年11月18日付けになっています。
FIPS 140-3になり評価項目も変わっています。以下のような結果になっています。
| 評価項目 | レベル | FIPS 140-2からの変更点 |
|---|---|---|
| 一般 | 3 | 140-3で新設された評価区分 |
| 暗号モジュール仕様 | 3 | 基本的に同等。140-3区分へ再編 |
| 暗号モジュールのインターフェース | 3 | 140-2の「ポートとインターフェース」から名称変更 |
| 役割、サービス、認証 | 3 | 基本的に同等 |
| ソフトウェア/ファームウェアセキュリティ | 3 | ファームウェア完全性確認を独立明記 |
| 運用環境 | N/A | 基本的に同等 |
| 物理セキュリティ | 3 | 基本的に同等 |
| 非侵襲的セキュリティ | N/A | 140-3で新設、耐解析観点を追加 |
| 機微セキュリティパラメータ管理 | 3 | 暗号鍵管理からSSP管理へ拡張 |
| セルフテスト | 3 | 区分は維持、試験分類を再整理 |
| ライフサイクル保証 | 3 | 設計保証から運用保守まで拡張 |
| その他の攻撃の緩和 | N/A | 基本的に同等 |
| 総合レベル (Overall) | 3 | 認定基準が140-3化 |
FIPS 140-3は単純にFIPS 140-2のRev.が更新されたというだけではなく、評価項目含め内容も更新されています。特にこれまではNIST独自の内容だったものが、国際標準準拠に変わりました。要求事項はISO/IEC 19790:2012、試験はISO/IEC 24759:2017を参照しています。この内容はIPAでも説明されています。
暗号モジュール試験及び認証制度(JCMVP)に関連するISO/IEC規格 | 情報セキュリティ | IPA 独立行政法人 情報処理推進機構
で、利用者はなにか変わったの?
AWS KMSがFIPS 140-3のセキュリティレベル3に準拠したところで、利用者は特に何も意識する必要はありません。普通に利用しているとこれに準拠したHSMを利用することとなります。
ただ、通信先のエンドポイントも含めてFIPS 140に準拠した通信を行う場合、FIPSエンドポイントを利用する必要があります。
KMSのFIPSエンドポイントはこちらのガイドを参照。なお、よくある質問には「FIPS 140-2認証済みのエンドポイント」と表現されているので、通信時の暗号はまた別要件のようですね。
まとめ
AWS KMSがいつの間にかFIPS 140-2 Level 3どころかFIPS 140-3 Level 3準拠になっていました。
普段あまり意識することが無いアップデートですが、(試験でも聞かれたりしますし)覚えておきましょう。






