GCP - KMS Enum

Support HackTricks

KMS

Служба управління ключами в хмарі слугує безпечним сховищем для криптографічних ключів, які є необхідними для операцій, таких як шифрування та дешифрування чутливих даних. Ці ключі організовані в кільця ключів, що дозволяє структуровано їх управляти. Крім того, контроль доступу може бути ретельно налаштований, як на рівні окремого ключа, так і для всього кільця ключів, що забезпечує точне відповідність дозволів вимогам безпеки.

Кільця ключів KMS за замовчуванням створюються як глобальні, що означає, що ключі всередині цього кільця доступні з будь-якого регіону. Однак можливо створити специфічні кільця ключів у конкретних регіонах.

Рівень захисту ключів

  • Програмні ключі: Програмні ключі створюються та управляються KMS повністю в програмному забезпеченні. Ці ключі не захищені жодним апаратним модулем безпеки (HSM) і можуть використовуватися для тестування та розробки. Програмні ключі не рекомендуються для виробничого використання, оскільки вони забезпечують низький рівень безпеки і піддаються атакам.

  • Ключі, що хостяться в хмарі: Ключі, що хостяться в хмарі, створюються та управляються KMS в хмарі, використовуючи високо доступну та надійну інфраструктуру. Ці ключі захищені HSM, але HSM не призначені для конкретного клієнта. Ключі, що хостяться в хмарі, підходять для більшості виробничих випадків використання.

  • Зовнішні ключі: Зовнішні ключі створюються та управляються поза KMS і імпортуються в KMS для використання в криптографічних операціях. Зовнішні ключі можуть зберігатися в апаратному модулі безпеки (HSM) або в програмній бібліотеці, залежно від уподобань клієнта.

Призначення ключів

  • Симетричне шифрування/дешифрування: Використовується для шифрування та дешифрування даних за допомогою одного ключа для обох операцій. Симетричні ключі швидкі та ефективні для шифрування та дешифрування великих обсягів даних.

  • Підтримується: cryptoKeys.encrypt, cryptoKeys.decrypt

  • Асиметричне підписування: Використовується для безпечного спілкування між двома сторонами без обміну ключем. Асиметричні ключі йдуть парами, складаючись з публічного ключа та приватного ключа. Публічний ключ ділиться з іншими, тоді як приватний ключ зберігається в таємниці.

  • Асиметричне дешифрування: Використовується для перевірки автентичності повідомлення або даних. Цифровий підпис створюється за допомогою приватного ключа і може бути перевірений за допомогою відповідного публічного ключа.

  • Підписування MAC: Використовується для забезпечення цілісності та автентичності даних шляхом створення коду автентифікації повідомлення (MAC) за допомогою секретного ключа. HMAC зазвичай використовується для автентифікації повідомлень у мережевих протоколах та програмному забезпеченні.

Період ротації та період, запланований для знищення

За замовчуванням, кожні 90 днів, але його можна легко та повністю налаштувати.

Період "Запланований для знищення" - це час з моменту, коли користувач запитує видалення ключа до моменту, коли ключ видаляється. Його не можна змінити після створення ключа (за замовчуванням 1 день).

Основна версія

Кожен ключ KMS може мати кілька версій, одна з яких повинна бути за замовчуванням, вона буде використовуватися, коли версія не вказана під час взаємодії з ключем KMS.

Перерахування

Маючи дозволи на перегляд ключів, ось як ви можете отримати до них доступ:

# 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

Посилання

Support HackTricks

Last updated