GCP - KMS Enum

Support HackTricks

KMS

Cloud Key Management Serviceは、暗号鍵の安全なストレージとして機能し、機密データの暗号化および復号化などの操作に不可欠です。これらの鍵はキーリング内に整理され、構造的な管理が可能です。さらに、アクセス制御は個々の鍵レベルまたは全体のキーリングに対して詳細に設定でき、権限がセキュリティ要件に正確に一致するようにします。

KMSキーリングはデフォルトでグローバルに作成され、これはそのキーリング内の鍵が任意のリージョンからアクセス可能であることを意味します。ただし、特定のリージョンに特定のキーリングを作成することも可能です。

Key Protection Level

  • ソフトウェアキー: ソフトウェアキーはKMSによって完全にソフトウェアで作成および管理されます。これらの鍵はハードウェアセキュリティモジュール(HSM)によって保護されておらずテストおよび開発目的で使用できます。ソフトウェアキーは本番環境での使用には推奨されません。なぜなら、セキュリティが低く、攻撃に対して脆弱だからです。

  • クラウドホストキー: クラウドホストキーは、KMSによってクラウド内で作成および管理され、高可用性で信頼性の高いインフラストラクチャを使用します。これらの鍵はHSMによって保護されていますが、HSMは特定の顧客に専用ではありません。クラウドホストキーはほとんどの本番使用ケースに適しています。

  • 外部キー: 外部キーはKMSの外部で作成および管理され、暗号操作で使用するためにKMSにインポートされます。外部キーは顧客の好みに応じてハードウェアセキュリティモジュール(HSM)またはソフトウェアライブラリに保存できます

Key Purposes

  • 対称暗号化/復号化: 単一の鍵を使用してデータを暗号化および復号化するために使用されます。対称鍵は、大量のデータを暗号化および復号化するのに高速で効率的です。

  • 非対称署名: 鍵を共有せずに二者間の安全な通信に使用されます。非対称鍵は、公開鍵と秘密鍵のペアで構成されます。公開鍵は他者と共有され、秘密鍵は秘密に保たれます。

  • 非対称復号化: メッセージまたはデータの真正性を確認するために使用されます。デジタル署名は秘密鍵を使用して作成され、対応する公開鍵を使用して検証できます。

  • MAC署名: 秘密鍵を使用してメッセージ認証コード(MAC)を作成することにより、データの整合性と真正性を確保するために使用されます。HMACは、ネットワークプロトコルやソフトウェアアプリケーションでメッセージ認証に一般的に使用されます。

Rotation Period & Programmed for destruction period

デフォルトでは、90日ごとですが、簡単にかつ完全にカスタマイズ可能です

「プログラムされた破壊」期間は、ユーザーが鍵の削除を要求してからの時間であり、鍵が削除されるまでの期間です。鍵が作成された後は変更できません(デフォルトは1日)。

Primary Version

各KMS鍵は複数のバージョンを持つことができ、そのうちの1つはデフォルトのものでなければなりません。これは、KMS鍵と対話する際にバージョンが指定されていない場合に使用されるものです。

Enumeration

鍵をリストする権限がある場合、これがそれらにアクセスする方法です:

# List the global keyrings available
gcloud kms keyrings list --location global
gcloud kms keyrings get-iam-policy <KEYRING>

# List the keys inside a keyring
gcloud kms keys list --keyring <KEYRING> --location <global/other_locations>
gcloud kms keys get-iam-policy <KEY>

# Encrypt a file using one of your keys
gcloud kms encrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global

# Decrypt a file using one of your keys
gcloud kms decrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global

権限昇格

GCP - KMS Privesc

ポストエクスプロイト

GCP - KMS Post Exploitation

参考文献

HackTricksをサポートする

Last updated