暗号を『使う』だけでなく『守る』ための基準
FIPS 140-3とは?暗号が強くても鍵が盗まれたら困る|スマホと銀行の金庫で理解する
強い暗号を使っていても、秘密の鍵を誰でも取り出せるなら意味がありません。暗号を実行する仕組み自体をどう安全に作るか。スマホの決済と銀行の暗号装置を手がかりに、FIPS 140-3を理解します。
01もし金庫に強い鍵を付けたのに、合鍵が机の上にあったら?
家の玄関に頑丈な鍵を付けても、合鍵を玄関マットの下に置いたままでは危険です。デジタルの暗号にも同じ落とし穴があります。暗号化は正しくても、暗号化や復号に使う秘密鍵を盗まれれば、守りたい情報を読み解かれるおそれがあります。
スマホ決済の裏側を想像してみよう
① 支払う
スマホが決済のための秘密情報を利用する
② 秘密を守る
鍵を扱う機能を、ほかのアプリから簡単に触れないようにする
③ 盗難に備える
操作の制限や異常検知を重ね、鍵が抜き取られるリスクを下げる
これは理解のための一般化した例です。スマホの具体的な実装や認証状況は機種・構成によって異なります。
つまり問いたいのは「暗号アルゴリズムが強いか」だけではなく、「その暗号を動かす場所と、そこで使う鍵をどう守っているか」です。
02暗号方式と暗号モジュールは違うもの
まずは3つの言葉を分けて考えます。暗号アルゴリズムはデータを暗号化する計算ルール、暗号鍵はその計算に使う秘密の値、暗号モジュールはそれらを扱うハードウェア・ソフトウェア・ファームウェアなどの境界を持った実装です。
| 対象 | 身近なたとえ | 確認したいこと |
|---|---|---|
| AESなどの暗号方式 | 頑丈な錠前の構造 | 計算方法が安全か |
| 暗号鍵 | その錠前を開ける合鍵 | 誰が持ち、どう守るか |
| 暗号モジュール | 錠前と鍵を管理する金庫室 | 鍵の扱い・認証・異常時の動作などが安全か |
03FIPS 140-3は「暗号の金庫室」の安全設計ルール
FIPSは米国の連邦情報処理標準(Federal Information Processing Standards)の略称です。FIPS 140-3は、暗号モジュールの設計・実装・運用に関するセキュリティ要求事項を定めています。NISTが2019年に発行し、FIPS 140-2を引き継ぎました。
規格の基盤になっているのは、暗号モジュールの要求事項を記したISO/IEC 19790と、試験方法を記したISO/IEC 24759です。FIPS 140-3では関連するNIST文書が要件を補足・変更します。
暗号モジュールのセキュリティ要求
ISO/IEC 19790
どんな安全性が必要か
ISO/IEC 24759
どう試験するか
04レベル1〜4は「強い暗号ランキング」ではない
FIPS 140-3には4つのセキュリティレベルがあります。数字が大きいほど要求が厳しくなる仕組みですが、レベル4だからAESそのものが4倍強いという意味ではありません。守る環境や想定する脅威に応じて、モジュールに求める保護が変わります。
基本的なセキュリティ要件
適切な暗号機能・インターフェースなどの基礎的な条件を確認
改ざんの痕跡などへの配慮
物理的な改ざんを確認しやすくする対策などを追加
より強い物理的な防御
鍵の漏えいを防ぐための改ざん耐性や認証などの強化
厳しい物理環境を想定
環境的な攻撃にも配慮した高い水準の保護
05何を評価する? 「暗号の金庫室」の11領域
FIPS 140-3は、金庫の壁だけを見る規格ではありません。「誰が入れるか」「鍵をどう作り消すか」「起動時に壊れていないか」など、守るための仕組みを多面的に確認します。
| 領域 | 身近なイメージ |
|---|---|
| 暗号モジュールの仕様 | 金庫室の範囲と役割を決める |
| インターフェース | 出入口と情報の通り道を整理する |
| 役割・サービス・認証 | 誰が何を操作できるか決める |
| ソフトウェア/ファームウェアの安全性 | 中のプログラムが不正に変わらないようにする |
| 動作環境 | 稼働する環境の条件を確認する |
| 物理的セキュリティ | 封印や筐体などを使って物理攻撃に備える |
| 非侵襲的セキュリティ | 側信道などの攻撃への対策を検討する |
| 機微なセキュリティパラメータ管理 | 鍵などを生成・保管・破棄する |
| 自己テスト | 故障や異常を起動時・動作中に検知する |
| ライフサイクル保証 | 製造・更新・保守まで追跡する |
| その他の攻撃への対策 | 明示された追加の攻撃を考慮する |
06スマホと銀行のHSMを比べる
スマホの鍵保管
決済や画面ロックに使う秘密情報を、ほかのプログラムから読み出しにくい場所で扱います。重要なのは鍵の取り出し制限や認証、ソフト更新時の保護です。
すべてのスマホ機能がFIPS認証済みという意味ではありません。
銀行のHSM
HSM(Hardware Security Module)は、暗号鍵を保護し、署名や暗号処理などを実行するために使われる専用装置です。鍵を外に出さずに処理させる設計や物理的な攻撃への対策などが重要になります。
HSMという製品分類だけで特定のFIPSレベルが保証されるわけではありません。
どちらも鍵を守る目的は似ていますが、設置場所、管理者、攻撃者が機器に触れられる可能性などが違います。だから必要な保護にも違いが生まれます。
07安全設計の判断ラボ:その金庫室はどこが弱い?
銀行の暗号装置を選定しているつもりで、管理者の認証や鍵の取り出し、改ざん対策、自己テストを切り替えてみてください。画面に表示されるのは教育用の対策チェックであり、正式なFIPS認証判定ではありません。
INTERACTIVE LAB
暗号装置の安全チェック
条件を切り替えると、見つかった弱点と改善策が変わります。
チェックした弱点
5件
改善済みの観点
0/ 5
見立て
重大な弱点が複数ある
改善のヒント
- 秘密鍵をそのまま外へ取り出せる秘密鍵のエクスポートを制限し、用途に応じた鍵管理方式を設計する
- 誰でも管理者操作ができる役割ごとの操作権限と適切な認証を設ける
- ケースを開けても痕跡が残らない設置環境に応じて開封検知・封印・改ざん耐性などを考える
- 起動時に暗号機能を確認しない要求に応じた自己テストと異常時の安全な動作を設ける
- 更新プログラムの正当性を確認しないソフトウェア・ファームウェアの完全性確認を設計する
※ これは学習用の独自チェックリストです。FIPS 140-3の評価項目を網羅せず、CMVPによる検証や公式レベルの認定を再現するものではありません。
08CMVPは何をする?「FIPSに対応」と「検証済み」を区別
CMVP(Cryptographic Module Validation Program)は、米国NISTとカナダの関係機関が運営する暗号モジュール検証プログラムです。認定された試験所での試験結果をもとに、対象モジュールが要求事項を満たすか検証します。
製品を選ぶ前に確認したい3つ
① 何が対象?
製品全体ではなく、暗号モジュールの『境界』とバージョンを確認する
② どんな動作条件?
検証対象のOS・構成・動作モード・セキュリティポリシーを確認する
③ 本当に検証済み?
CMVPの公開情報で証明書番号、レベル、状態を確かめる
09規格を間違えないための整理
| 名前 | 主な対象 | 何を確かめる? |
|---|---|---|
| FIPS 140-3 | 暗号モジュール | 鍵・認証・物理防御・自己テストなど |
| ISO/IEC 27001 | 組織の情報セキュリティ管理 | ISMSの構築と運用 |
| X.509 | 電子証明書とCRLなど | 公開鍵の証明や失効情報の形式 |
| IEEE 802.11i | 無線LAN | 無線通信のセキュリティ機構 |
10よくある勘違い
Q. AES-256を使っているならFIPS 140-3を満たす?
いいえ。AES-256は暗号方式の話です。FIPS 140-3は暗号モジュールの境界・鍵管理・認証・自己テストなどを含めて扱います。
Q. レベル4なら通信が絶対に漏れない?
いいえ。暗号モジュールの保護レベルを示すもので、アプリの脆弱性や認証設定ミス、端末全体の安全性まで保証しません。
Q. HSMを買えば必ずFIPS 140-3認証済み?
いいえ。製品とモジュールの種類、バージョン、認証状態をCMVPの公開情報で個別に確認します。
Q. FIPS 140-2と140-3は同じ?
いいえ。140-3は後継規格で、ISO/IECの国際規格を土台とした要求・試験体系に移行しています。認証状態や移行措置はCMVPの公式情報を確認してください。
11今日のまとめ
強い暗号 × 安全な鍵の扱い × 安全な実装
FIPS 140-3は、暗号アルゴリズム単体ではなく、暗号を動かし鍵を守る暗号モジュールのセキュリティ要求事項を定めたもの。4つのレベルと11の領域があり、第三者による検証の仕組みがCMVPです。暗号装置を調べるときは「どのモジュールを、どのバージョン・条件で検証したのか」まで確認しましょう。
参考:NIST FIPS 140-3(2019年発行)、NIST CMVP。本文の身近な機器例やラボは理解のためのモデルであり、特定製品の認証取得・適合性を意味しません。