午前I問題

情報システムにおける鍵管理に関する記述として、適切なものはどれか。

ア)暗号鍵はソースコード中に直接埋め込んで管理することで、鍵の紛失リスクを最小化できる。

イ)暗号鍵のライフサイクル管理には、生成・配布・保管・利用・更新(ローテーション)・廃棄の各段階での適切な管理策が必要である。

ウ)一度生成した暗号鍵は、暗号アルゴリズムが危殆化しない限り永久に同一の鍵を使い続けるべきである。

エ)暗号鍵の保管場所と暗号化対象データの保管場所は、管理を簡素化するため同一のサーバに配置すべきである。

午前I の解答・解説を見る

正解: イ

解説:

  • ア)不正解。ソースコードへの鍵の直接埋め込み(ハードコーディング)は、ソースコード漏えい時に鍵も同時に漏えいする重大なリスクがあり、鍵管理のアンチパターンの代表例です。
  • イ)正解。鍵管理はNIST SP 800-57等でも定義されるように「生成→配布→保管→利用→更新(ローテーション)→廃棄」というライフサイクル全体を通じて管理策を講じる必要があります。
  • ウ)不正解。暗号アルゴリズムが安全であっても、同一鍵を使い続けることは鍵の露出機会の増大や、鍵が漏えいした際の被害範囲拡大につながります。定期的なキーローテーションが推奨されます。
  • エ)不正解。鍵とデータを同一サーバに配置すると、サーバが侵害された際に鍵とデータの両方が同時に窃取されてしまいます。鍵管理の基本原則として、鍵はデータとは分離された専用の管理基盤(KMSやHSM)で保管すべきです。

午前II問題

KMS(Key Management Service)とHSM(Hardware Security Module)に関する記述のうち、適切なものはどれか。

ア)HSMは鍵の生成・保管・暗号演算を専用のハードウェア内部で完結させ、秘密鍵を平文の状態でハードウェア外部に取り出せない構造になっており、FIPS 140-2/3などの認証基準が存在する。

イ)KMSはHSMの代替として設計されたソフトウェアのみのサービスであり、耐タンパ性を持つ物理デバイスを一切利用しない。

ウ)エンベロープ暗号化とは、データ暗号化鍵(DEK)を鍵暗号化鍵(KEK)で暗号化して管理する方式であり、大量データを扱う際にHSM/KMSへのアクセス回数を減らせる利点がある。

エ)クラウドサービスのKMSでは、CMK(Customer Master Key)のような最上位鍵もクラウド事業者を介さず利用者が完全に単独で生成・保管しなければならない。

午前II の解答・解説を見る

正解: ア、ウ(本問では最も適切なものとしてアを選択)

解説:

  • ア)正解。HSMは鍵の生成・保管・暗号演算を専用ハードウェア内で完結させ、秘密鍵が平文のままハードウェア外部に出ないよう設計された耐タンパ装置です。FIPS 140-2/140-3やCommon Criteriaといった認証基準に基づき安全性が評価されます。
  • イ)不正解。KMSは多くの場合、内部でHSMを利用して最上位鍵(マスターキー)を保護しています。クラウドのKMSサービス(AWS KMS、Azure Key Vault等)もバックエンドでHSMを利用しているケースが一般的であり、「HSMを一切利用しない」という記述は誤りです。
  • ウ)本来は正解となる記述内容です(エンベロープ暗号化の説明として適切)が、設問の趣旨に照らし本問での最適解はアとします。エンベロープ暗号化はDEKでデータ本体を暗号化し、そのDEKをKEK(HSMやKMSで管理)で暗号化して保管する方式で、大量データを扱う際に暗号演算のたびにHSM/KMSへアクセスする必要がなくなり性能面で有利です。
  • エ)不正解。クラウドKMSでは、CMK相当の鍵もクラウド事業者のマネージドサービス上で生成・保管されるのが一般的です(利用者が持ち込む「Bring Your Own Key: BYOK」機能を使う選択肢もあります)。「事業者を介さず単独で管理しなければならない」という断定は誤りです。
用語役割
HSM鍵の生成・保管・演算を行う耐タンパハードウェア
KMS鍵のライフサイクル管理を行うサービス(内部でHSMを利用することが多い)
DEK(データ暗号化鍵)実際のデータを暗号化する鍵。大量データ向けに高速なアルゴリズムを使用
KEK(鍵暗号化鍵)DEKを暗号化保護する上位の鍵。HSM/KMSで厳重に管理される

午後問題

I社は自社SaaSサービスにおいて、顧客データベースの機微情報カラムをアプリケーション層で暗号化している。セキュリティ監査の結果、以下の指摘を受けた。

(指摘1)データ暗号化鍵(DEK)がアプリケーションサーバの設定ファイルに平文で保存されており、サーバへの侵入が成功した場合、DEKが即座に窃取可能な状態であった。

(指摘2)DEKは3年前のサービス開始時に生成されたものが一度も更新されておらず、キーローテーションの仕組みが存在しなかった。

(指摘3)退職した元従業員が、在職中にKMSへのフルアクセス権限(鍵の作成・利用・削除がすべて可能な権限)を付与されたまま、アカウントが無効化されずに残っていたことが判明した。

設問1

指摘1について、エンベロープ暗号化とKMS/HSMを活用した改善策を、DEKとKEKの役割を踏まえて50字以内で述べよ。

設問1の解答・解説を見る

正解例: DEKをKEK(KMS/HSMで管理)で暗号化した状態でのみ保存し、復号はKMS呼び出し時にメモリ上でのみ行う。

解説: エンベロープ暗号化を導入し、DEK自体をKMS/HSMが管理するKEKで暗号化してから設定ファイルやデータベースに保存する構成に変更します。アプリケーションはデータ暗号化・復号のたびにKMSへ「暗号化されたDEK」を送り、KMSが内部(HSM)でKEKを使ってDEKを復号し、復号済みDEKを一時的にアプリケーションのメモリ上に返却します。これにより、設定ファイルなどの永続化領域には平文のDEKが一切保存されず、サーバへの侵入が成功しても暗号化されたDEKしか窃取できず、KEK自体はHSM/KMSの外に出ないため復号が困難になります。

採点基準(12点):

  • 「DEKをKEK(KMS/HSM)で暗号化した状態で保存する」というエンベロープ暗号化の考え方(6点)
  • 「平文のDEKは永続化しない/メモリ上でのみ復号する」という運用(6点)

設問2

指摘2と指摘3について、それぞれの根本的なリスクを述べた上で、再発防止のための管理策を1つずつ、あわせて70字以内で答えよ。

設問2の解答・解説を見る

正解例: 指摘2は鍵の長期利用による漏えい時被害拡大のリスクがあり、自動キーローテーションポリシーを設定し定期的にDEK/KEKを更新する。指摘3は離職者アカウントの権限残存による内部不正・鍵の不正操作のリスクがあり、退職時のアカウント即時無効化と最小権限の原則に基づくアクセスレビューを徹底する。

解説: 指摘2について、鍵を長期間更新しないと、万一過去に鍵が漏えいしていた場合の被害期間が長期化し、また鍵の使用量が増えるほど暗号学的な統計的攻撃のリスクも高まります。多くのKMSサービスは自動キーローテーション機能(例:年1回の自動更新、旧鍵での復号は維持しつつ新規暗号化は新鍵を使用)を提供しており、これを有効化することが実務上の標準対策です。指摘3について、退職者アカウントの権限が残存していると、内部不正やアカウント乗っ取りによる鍵の不正な作成・利用・削除(データ消失やランサム的な鍵削除攻撃を含む)のリスクがあります。IAM運用として、退職・異動時のアクセス権限即時剥奪プロセスの徹底、および定期的な棚卸し(アクセスレビュー)と最小権限の原則(鍵の作成・削除権限と利用権限を分離するなど)の適用が再発防止策となります。

採点基準(16点):

  • 指摘2のリスク:「長期利用による漏えい被害の拡大/統計的攻撃リスク」(3点)
  • 指摘2の対策:「自動キーローテーションの導入」(5点)
  • 指摘3のリスク:「離職者権限残存による内部不正・鍵の不正操作」(3点)
  • 指摘3の対策:「退職時の即時アカウント無効化/定期的なアクセス権限棚卸し」(5点)

重要キーワード

用語説明
鍵管理(Key Management)暗号鍵の生成・配布・保管・利用・更新・廃棄というライフサイクル全体を管理する仕組み
HSM(Hardware Security Module)鍵の生成・保管・演算を行う耐タンパハードウェア。秘密鍵を外部に平文で出さない
KMS(Key Management Service)鍵のライフサイクル管理を提供するサービス。内部でHSMを利用することが多い
エンベロープ暗号化データ暗号化鍵(DEK)を鍵暗号化鍵(KEK)で暗号化して保護する二層構造の暗号方式
キーローテーション暗号鍵を定期的に更新する運用。漏えい時の被害範囲・期間を限定する効果がある
AESエンベロープ暗号化においてDEKとして用いられることが多い共通鍵暗号方式

まとめ

  • 午前I視点: 鍵管理はライフサイクル全体(生成〜廃棄)で考える必要があり、鍵とデータの分離保管・鍵のハードコーディング禁止が基本原則である
  • 午前II視点: HSMとKMSの役割分担、エンベロープ暗号化におけるDEKとKEKの関係を正確に説明できるようにする
  • 午後視点: 「鍵の平文保存」「ローテーション未実施」「権限管理の不備(離職者アカウント等)」という鍵管理の典型的な不備パターンと、それぞれに対応する具体的な改善策をセットで答えられるよう準備する