HSM
HSM — аппаратный модуль безопасности: защищённое устройство, которое хранит криптоключи и выполняет операции с ними, не выдавая ключи наружу.
Что такое HSM
HSM расшифровывается как Hardware Security Module — аппаратный модуль безопасности. Это специализированное устройство, которое генерирует, хранит криптографические ключи и выполняет операции с ними — подпись, шифрование, проверку — так, что приватный ключ никогда не покидает устройство.
Именно в этом вся идея, и её стоит проговорить отдельно. Обычно приложение читает ключ из файла в свою память, а дальше он живёт в оперативке процесса: его видно в дампе памяти, он утекает через уязвимости класса Heartbleed, копируется вместе со снапшотом виртуальной машины и уносится на флешке вместе с бэкапом.
С HSM модель переворачивается: приложение никогда не получает ключ. Оно отправляет в модуль данные и команду «подпиши», получает обратно подпись. Ключ физически не существует за пределами устройства. Скомпрометированный сервер позволит атакующему пользоваться HSM, пока есть доступ, но не позволит украсть ключ и продолжить пользоваться им потом. Разница между «пока я в системе» и «навсегда» — это и есть то, за что платят.
Защита от вскрытия
HSM — устройство с физической защитой. Корпус сделан tamper-evident (следы вскрытия невозможно скрыть) и tamper-resistant, а в старших моделях — tamper-responsive: при попытке вскрытия, выходе температуры за диапазон или скачке напряжения модуль стирает ключи сам. Лучше потерять ключи, чем отдать.
Международный критерий оценки — FIPS 140 (версии 140-2 и 140-3) с четырьмя уровнями: от базовых требований к криптомодулю на уровне 1 до активного реагирования на физическое вмешательство на уровне 4.
Форм-факторы и применение
| Форм-фактор | Где стоит |
|---|---|
| PCIe-карта | Внутри сервера, минимальная задержка |
| Сетевое устройство | Стойка в ЦОД, общий ресурс для многих серверов |
| USB-токен | Небольшие объёмы, персональные ключи |
| Облачный HSM | Сервис провайдера, аренда выделенного модуля |
Где HSM действительно нужен:
- Корневые ключи удостоверяющих центров. Утечка ключа CA означает, что можно выпустить сертификат на любой домен. Корневые ключи публичных УЦ живут в HSM в физически охраняемых помещениях, и церемонии доступа к ним проводятся по протоколу с несколькими операторами.
- PCI DSS. Обработка PIN-блоков и работа с ключами платёжной инфраструктуры — область, где HSM обязателен по требованиям платёжных систем.
- Квалифицированная электронная подпись и инфраструктура PKI.
- Подпись кода и прошивок — ключ, которым подписываются обновления, компрометировать нельзя категорически.
- Мастер-ключи шифрования БД — HSM хранит ключ, которым зашифрованы остальные ключи.
Как подключается
Стандартный интерфейс — PKCS#11: приложение работает с ключами через библиотеку, не зная их значений. Есть также KMIP для управления ключами и JCE для Java.
# ключ живёт в HSM, наружу выходит только публичная часть
pkcs11-tool --module /usr/lib/softhsm/libsofthsm2.so \
--login --keypairgen --key-type rsa:4096 \
--label "ca-signing-key" --id 01
# nginx может брать ключ из HSM через OpenSSL-движок
# ssl_certificate /etc/ssl/cert.pem;
# ssl_certificate_key engine:pkcs11:pkcs11:object=ca-signing-key;
Для разработки и тестов есть SoftHSM — программная эмуляция интерфейса PKCS#11. Полезна, чтобы отладить интеграцию, но никакой защиты не даёт: ключи лежат в обычных файлах.
Российский контекст
Ключи по ГОСТ и квалифицированная подпись требуют средств, сертифицированных ФСБ, — это область СКЗИ, и зарубежные HSM здесь не подходят, каким бы ни был их уровень FIPS. Применяются КриптоПро HSM, решения «Аладдин Р.Д.», Rutoken. Классы КС1–КА и требования к эксплуатации те же, что для остальных СКЗИ.
Стоит ли
Честно: HSM — дорого. Устройство, лицензии, кластеризация для отказоустойчивости (модуль на критическом пути: он лежит — подпись не работает), обученный персонал, процедуры доступа. Для типового веб-проекта это избыточно.
Разумная лестница выглядит так: файл с правами 600 → секреты в HashiCorp Vault → облачный HSM/KMS у провайдера → собственный HSM. Vault закрывает потребности большинства команд: централизованное хранение, аудит, ротация, динамические учётные данные — за несравнимо меньшие деньги. HSM берут, когда этого требует регулятор, или когда цена компрометации одного конкретного ключа выше стоимости всей инфраструктуры вокруг него.
Связанные термины
- Криптография и СКЗИ — операции, которые выполняет HSM
- SSL-сертификат — что подписывают ключом из HSM
- PCI DSS — стандарт, требующий HSM для платёжных ключей
- HashiCorp Vault — программная альтернатива для большинства задач
- Конфиденциальность — что в итоге защищается
Готовы запустить GPU-задачу?
Запустить GPU-сервер