Управление ключами шифрования: лучшие практики 2026
Освойте управление ключами шифрования с проверенными практиками генерации, хранения, ротации и жизненного цикла ключей в 2026 году.
Управление ключами в 2026 году означает: генерацию ключей с помощью CSPRNG (не /dev/urandom на ВМ с низкой энтропией, а getrandom() или BCryptGenRandom), хранение в аппаратных средствах (AWS KMS, YubiHSM 2, Thales Luna, Secure Enclave), ротацию по расписанию, соответствующему уровню угрозы (90 дней для активных ключей шифрования, ежегодно для KEK), и уничтожение через криптографическое стирание или физическое измельчение. NIST SP 800-57 Part 1 Rev 5 описывает жизненный цикл; FIPS 140-3 сертифицирует модули; PCI DSS 4.0 Требование 3.6 проверяет процесс. Настроив всё это правильно, вы сделаете так, что сама криптография (AES-256-GCM, X25519) почти никогда не окажется слабым звеном.
Генерация ключей, которым можно доверять
Генерация ключей — тихая точка отказа криптографии. Уязвимость OpenSSL в Debian 2006–2008 годов (специфическая для Debian заплата RNG) сделала каждый SSH-ключ, сгенерированный на затронутых системах, предсказуемым. Более недавно, в 2021 году, Fortinet поставляла маршрутизаторы с ключами, производными от источников с низкой энтропией при загрузке. Безопасная генерация использует OS CSPRNG — getrandom() на Linux 3.17+, BCryptGenRandom на Windows, SecRandomCopyBytes на macOS/iOS — или аппаратный RNG в HSM. Функция crypto.getRandomValues() Web Crypto API обращается к источнику ОС. Никогда не создавайте собственный RNG, не инициализируйте из time() или PID и при загрузке ВМ убедитесь, что пул заполнен (проверьте /proc/sys/kernel/random/entropy_avail > 256).
Иерархическая структура ключей: KEK, DEK и сеансовые ключи
Реальные системы используют многоуровневые ключи. Ключ шифрования данных (DEK) шифрует реальные данные с AES-256-GCM. Ключ шифрования ключей (KEK) шифрует DEK и хранится в HSM. Корневой KEK (иногда называемый мастер-ключом) шифрует KEK и хранится в защищённом от вмешательства аппаратном обеспечении. Ротация DEK требует повторного шифрования данных; ротация KEK — только повторной упаковки DEK (быстро); ротация корня — серьёзная операция. Этот конвертный шаблон позволяет часто ротировать слои, которые это допускают, без расшифрования петабайтов. AWS KMS, Google Cloud KMS и HashiCorp Vault реализуют это. Для сервисов передачи файлов ключ AES на каждую передачу является DEK; KEK на основе пароля (через PBKDF2 или Argon2id) оборачивает его.
Хранилище: HSM, KMS и реальные различия
Аппаратный модуль безопасности (HSM) — это защищённый от вмешательства блок, который генерирует, хранит и использует ключи без их экспорта. Устройства FIPS 140-3 Level 3 (Thales Luna 7, AWS CloudHSM, YubiHSM 2) обнаруживают физическое вмешательство и обнуляют данные. Служба управления ключами (AWS KMS, Google Cloud KMS, Azure Key Vault) — это программное обеспечение, работающее на HSM и доступное через API. Для большинства приложений KMS достаточно — вы платите $1/месяц за ключ, вызываете Encrypt/Decrypt по HTTPS, а AWS управляет операциями HSM. Прямой HSM нужен, когда это требуют регуляторы (PCI DSS 4.0 Требование 3.6.1.1 для эмиссии карт) или когда нельзя доверять юрисдикции облачного провайдера.
Расписания ротации, соответствующие риску
NIST SP 800-57 определяет криптопериоды — время активности ключа. Для симметричных ключей данных, активно шифрующих новые данные, — максимум 1–2 года. Для ключей, только расшифровывающих существующие данные, — 3–5 лет. Для корневых KEK — 5–10 лет. PCI DSS Требование 3.7.4 предписывает определение криптопериодов. На практике автоматизируйте ротацию: AWS KMS предлагает автоматическую ежегодную ротацию; Google KMS настраивается. Для сервисов передачи файлов, где каждая загрузка получает свежий случайный ключ, ротация не применяется к ключам данных (они одноразовые), но применяется к TLS-сертификатам (90 дней через Let's Encrypt), ключам подписи журналов аудита (ежегодно) и мастер-ключу, оборачивающему секреты пользователей.
Уничтожение и криптографическое стирание
Когда криптопериод ключа истекает или данные необходимо удалить по GDPR статья 17, ключ уничтожается. Физическое уничтожение (измельчитель смарт-карт) для офлайн-токенов резервных копий. Криптографическое стирание для ключей в облаке: зашифруйте ключ оборачивающим ключом, затем уничтожьте оборачивающий ключ — все данные, зашифрованные под первым ключом, становятся шифротекстом, которого никто не может расшифровать. Именно так облачные провайдеры выполняют петабайтные запросы на удаление без фактической очистки каждого дискового сектора. Задокументируйте уничтожение в журнале аудита с временно́й меткой, идентификатором ключа (не материалом ключа) и методом уничтожения. NIST SP 800-88 Rev 1 регулирует санацию.
Контроль доступа и разделение обязанностей
Ни один человек не должен иметь возможности извлечь производственный ключ. Реализуйте кворум m-из-n для ролей администратора HSM: любые 2 из 5 офицеров для экспорта корневого ключа, любые 1 из 3 для ротации KEK, 0 требуется для плановых операций DEK. Гранты AWS KMS позволяют делегировать узкие возможности (только шифрование, только дешифрование) через политики IAM. Разделение Shamir Secret Sharing в HashiCorp Vault распределяет ключ разблокировки между доверенными лицами. Регистрируйте каждое использование ключа с идентификатором вызывающего, операцией и ресурсом. PCI DSS 3.6.2 и SOC 2 CC6.1 оба проверяют это.
Конвертное шифрование и BYOK
BYOK (Bring Your Own Key) позволяет клиентам загружать свой корневой KEK в облачный KMS. Облачный провайдер оборачивает ключи данных арендатора под ключом клиента, поэтому отзыв клиента делает данные невосстановимыми без участия провайдера. AWS KMS Import Key, Google Cloud EKM (External Key Manager), Azure Key Vault BYOK — все они решают эту задачу. Для сервисов передачи файлов, обслуживающих регулируемых клиентов (здравоохранение, финансы), BYOK удовлетворяет требованиям «клиент контролирует ключи» даже на общей инфраструктуре. HSM клиента в его дата-центре генерирует ключ; провайдер никогда не видит открытый материал ключа.
Резервное копирование и восстановление ключевого материала
Потерянные ключи означают потерянные данные. Делайте резервные копии корневых ключей через разделение Shamir Secret Sharing, хранимые у географически разделённых доверенных лиц. AWS KMS предлагает экспорт ключевого материала только для CMK, созданных через BYOK. YubiHSM 2 поддерживает резервное копирование ключа-обёртки. Задокументируйте процедуру восстановления, тестируйте её ежегодно (реально выполняйте процедуру, а не только читайте её) и держите не менее двух доверенных лиц активными в любой момент — шинный фактор, равный единице, неприемлем. Для менее критичных ключей — зашифрованные офлайн-резервные копии на изолированных носителях (лента LTO, зашифрованный USB в сейфе) на 2+ площадках. Процедура восстановления должна быть в вашем руководстве по аварийному восстановлению.
Особый случай клиентского шифрования
Для сервисов типа HexaTransfer, где пользователи шифруют в браузере, традиционное управление ключами не применяется — на стороне сервера нет ключа для ротации, поскольку сервер никогда не видит ключи. Браузер выводит ключ из пароля пользователя, использует его один раз и отбрасывает. Управление ключами переходит в сферу просвещения пользователей: выбирайте надёжные пароли, не используйте их повторно, применяйте менеджер паролей. Ответственность сервиса — использовать стойкую KDF (Argon2id с m=64 МБ, t=3, p=1 или PBKDF2 с 600к+ итераций), правильно генерировать случайные соли и обнулять ключевой материал в памяти после использования (через непрозрачные дескрипторы crypto.subtle или явные очистки памяти WebAssembly).
Мониторинг и реагирование на инциденты
Компрометация ключа — наихудший инцидент. Отслеживайте операции KMS на аномалии: API-ключ, обычно делающий 100 вызовов Decrypt/час, внезапно делающий 10 000 — это эксфильтрация. Оповещайте об ошибках KMS (неудачная аутентификация, ключ не найден, превышена квота). Привяжите оповещения к руководству, включающему ротацию ключей, аннулирование учётных данных и криминалистический захват. Разработайте план восстановления при компрометации ключей: как быстро можно ротировать корень? Как повторно зашифровать терабайты данных? Тестируйте план ежегодно. Хорошо управляемый KMS с необнаруженной компрометацией хуже, чем явно сломанный.
Попробуйте на hexatransfer.com — бесплатно, без регистрации, до 10 ГБ.
Безопасная отправка больших файлов со сквозным шифрованием
Передавайте файлы до 10 ГБ бесплатно со сквозным шифрованием. Регистрация не требуется. Ваши файлы шифруются в браузере перед загрузкой — никто другой не может их прочитать.
Отправить файл