Где хранить приватный PGP ключ

«Где хранить приватный PGP ключ» — вопрос из категории Безопасность, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Приватный PGP-ключ — это критически важный актив, особенно в DevOps для подписи релизов, пакетов или commit'ов. Я никогда не храню его в виде файла на диске или в репозитории.

Моя стратегия хранения:

  1. Аппаратный токен (YubiKey, Nitrokey) — это золотой стандарт. Ключ генерируется или импортируется на устройство и никогда его не покидает. Подпись происходит внутри токена. Это защищает от компрометации даже при зараженной рабочей станции.

    # Перенос ключа на YubiKey
    gpg --edit-key KEY_ID
    > keytocard
    > save
  2. Для автоматизированных процессов (CI/CD) приватный ключ не используется напрямую. Вместо этого:

    • Для подписи контейнеров использую cosign с ключами, хранящимися в KMS (Key Management Service) облачного провайдера или HashiCorp Vault.
    • Для подписи артефактов настраиваю выделенный, изолированный сервис (например, на базе HashiCorp Vault с Transit Secrets Engine), который выполняет криптографические операции по запросу от доверенного CI-пайплайна.

Если ключ все же должен храниться в файле (крайний случай), он помещается в зашифрованный контейнер (LUKS, VeraCrypt) с сильной парольной фразой, а сам файл дополнительно шифруется gpg --symmetric.