HSM を利用するサーバへの侵入
認証局のサーバは,署名用の秘密鍵を HSM 内で生成し,エクスポート不可の鍵として保管している。サーバ上のアプリケーションは,サーバに保存した認証情報で HSM にログインし,HSM に署名を要求する。攻撃者がこのサーバに侵入して管理者権限を得た場合に起こり得ることとして,適切なものはどれか。
- ア管理者権限があれば HSM の管理コマンドで秘密鍵を平文のままエクスポートでき,攻撃者は鍵を持ち出して任意の場所で署名できる。
- イHSM はサーバへの不正侵入を検知すると内部の鍵をゼロ化するので,攻撃者は HSM を使った署名を一切行えない。
- ウHSM で生成した署名値には HSM の識別情報が含まれるので,攻撃者が要求して作られた署名は,検証者が正規のものと区別して拒否できる。
- エ秘密鍵そのものは持ち出せないが,侵入している間は,アプリケーションと同じ手順で HSM に任意のデータへの署名を要求できる。
正解と解説を見る
正解 エ
この問題の基礎知識
- HSM(Hardware Security Module)は,鍵の生成・保管と暗号演算を耐タンパ性をもつ専用装置の内部で行い,秘密鍵を平文で装置の外に出さない装置である。
- 耐タンパ性とは,内部の情報を物理的な解析や不正な読出しから守る性質であり,HSM には筐体の開封などの物理的な攻撃を検知すると鍵を消去(ゼロ化)するものがある。
- デジタル署名は秘密鍵と対象データから生成され,公開鍵で検証できればその秘密鍵で作られたことは分かるが,誰が署名を要求したかは分からない。
HSM は鍵の生成・保管・暗号演算を装置の内部で行い,エクスポート不可とした秘密鍵は,接続したサーバの管理者権限があっても平文では取り出せない。鍵の持ち出しを困難にすることが HSM を使う目的である。
HSM のタンパ応答は,筐体を開けるなどの物理的な攻撃の検知を契機に平文の鍵をゼロ化するものである。接続したサーバの OS への侵入を検知して鍵を消去する仕組みではない。
署名値は秘密鍵と署名対象のデータから計算され,誰の要求で作られたかの情報は含まれない。攻撃者が HSM に作らせた署名も公開鍵で正しく検証され,正規の署名と区別できない。
HSM は鍵を外部に出さないことで鍵の窃取を防ぐが,サーバに保存した認証情報で HSM を利用できる構成では,サーバを掌握した攻撃者も署名を要求できる。侵入の検知や,HSM の認証情報の保護が別途必要になる。
照合の根拠(5 件)
- ア(誤り)・エ(正解): HSM では署名などの演算は装置内で行い,平文の鍵は装置の外に出ない。ただし演算自体は外部からの要求で行われる
All cryptographic operations (such as key generation, encryption, decryption, and digital signing) should be performed inside the isolated cryptographic security module boundary so that plaintext key material is never exposed outside the module
OWASP Key Management Cheat Sheet · Cryptographic Module Topics(新しいタブで開きます) - エ(正解): 暗号モジュールはオペレータを認証し,その役割に応じたサービス(署名など)を許可する。認証情報を提示できる者はそのオペレータとしてサービスを利用できる
A cryptographic module authenticates the identity of an operator and verifies that the identified operator is authorized to assume a specific role and perform a corresponding set of services.
NIST FIPS 140-2 · Section 1 Security Level 3(新しいタブで開きます) - イ(誤り): タンパ応答によるゼロ化の契機は扉・カバーの開放など物理的なアクセスであり,接続したサーバへの侵入ではない
The tamper response and zeroization circuitry shall immediately zeroize all plaintext secret and private keys and CSPs when a door is opened, a cover is removed, or when the maintenance access
NIST FIPS 140-2 · Section 4.5 Physical Security(Security Level 3)(新しいタブで開きます) - ウ(誤り): 検証は署名者の公開鍵とハッシュ関数で行い,誰の要求で作られた署名かは検証に関わらない
The verifying entity verifies the signature by using the claimed signatory’s public key and the same hash function
NIST FIPS 186-5 · Section 1 Introduction(新しいタブで開きます) - エ(正解): 鍵とその所有者との結び付きなど鍵の保護が破られれば,鍵が流出しなくても鍵は信頼できなくなる(前文 "Key compromise occurs when the protective mechanisms for the key fail (e.g., the confidentiality, integrity, or association of the key to its owner fail")
and the key can no longer be trusted to provide the required security.
NIST SP 800-57 Part 1 Rev. 5 · Section 5.5(新しいタブで開きます)
正解エは原文に直接の記述がなく,次の筋道による推論: HSM は鍵を装置外に出さず演算を内部で行う(OWASP)→ 演算(署名)は認証されたオペレータの要求で実行される(FIPS 140-2 の役割・サービスと操作者認証)→ 問題文ではその認証情報がサーバに保存されているので,サーバを掌握した攻撃者はアプリケーションと同じ認証情報で署名を要求できる。FIPS 140-3 は要件本文を ISO/IEC 19790 に委ねていて読めないため,要件の文言は旧版 FIPS 140-2 で確認した(sources を差し替え)。