Отказоустойчивое подключение КриптоПро HSM
Для выполнения криптографических операций и хранения ключевой информации (Мастер ключи) КриптоПро DSS должен быть подключен к КриптоПро HSM. КриптоПро DSS использует следующие Мастер-ключи:
- Мастер-ключ Сервиса Подписи
- Мастер-ключи модуля SIM-аутентификации
- Мастер-ключ myDSS Сервера
- Мастер-ключи модуля DSS Client
Мастер-ключ Сервиса Аудита
Мастер-ключи имеют ограниченный срок жизни - 3 года. Мастер-ключи использовуются для создания и хранения различных ключей пользователей. Ключи пользователя имеют ограниченный срок жизни - не более 15 месяцев.
За 15 месяцев до окончания срока жизни Мастер-ключ переходит в состояние "Только для чтения". В данном состоянии Мастер-ключ может быть использован только для работы с ранее созданными ключами пользователей.
Примечание
На Мастер-ключе в состоянии "Только для чтения" новые ключи пользователей создаваться не могут.
Для обеспечения бесперебойной работы перед истечением срока действия Мастер-ключа должен быть создан новый Мастер-ключ.
Мастер-ключ Сервиса Подписи
Мастер-ключ Сервиса Подписи используется для безопасного хранения ключей пользователей в базе данных Сервиса Подписи.
Команды для управления Мастер-ключами: *-DssCryptoProvider
Мастер-ключи SIM-аутентификации
Модуль SIM-аутентификации использует несколько Мастер-ключей, объединенных в профиль.
В профиль входят 4 Мастер-ключа:
- Для ключей аутентификации пользователей
- Для обновления ключей аутентификации пользователей
- Для защищенного обмена сообщениями с SIM-картой
- Для защищенного хранения данных для смены ключей пользователей
Команды для управления Мастер-ключами: *-DssStsCryptoProvider
Команды для управления профилем: *-DssCryptoProviderProfile
Мастер-ключ myDSS Internal
Модуль myDSS Internal использует использует Мастер-ключи для выработки ключей аутентификации пользователей и проверке кодов аутентификации (HMAC), вырабатываемых на данных ключах.
Команды для управления Мастер-ключами: -MyDssServerInternalCryptoProviders
Мастер-ключи DSS Client
Модуль DSS Client использует несколько Мастер-ключей, объединенных в профиль.
В профиль входят 2 Мастер-ключа:
- Для подтверждения операций
- Для аутентификации
Команды для управления Мастер ключами: *-DssStsCryptoProvider
Команды для управления профилем: *-DssCryptoProviderProfile
Мастер-ключ Сервиса Аудита
Мастер-ключ используется для подписи журнала Аудита и контроля целостности журнала Аудита.
Команды для управления Мастер-ключами: -DssAnalyticsCryptoProvider
Подключение КриптоПро HSM
Возможны две схемы подключения DSS к HSM:
- крест-на-крест (с резервированием) - схема 1, 2
- один-к-одному - схема 3
В случае подключения "крест-на-крест" переключение между HSM в случае сбоя выполняет непосредественно сам DSS. DSS переодически проверяет доступность каждого из подключенных HSM. В случае недоступности HSM временно переводится в статус "Недоступен" и не используется для выполнения криптографических операций. После восстановления доступности DSS автоматически переведет HSM в статус "Активен".
Период проверки доступности HSM настраивается на каждом компоненте DSS. Период проверки задается в миллисекундах.
Компонент | Команда |
---|---|
Сервис Подписи | Set-DssProperties -MonitoringTimeout 5000 |
Центр Идентификации | Set-DssStsProperties -CpMonitoringTimeout 5000 |
myDSS Сервер | Set-MyDssServerInternalProperties -CryptoProvidersMonitoringTimeout 5000 |
Сервис Аудита | Set-DssAnalyticsServiceProperties -ProviderMonitoringIntervalInSeconds 5000 |
В случае подключения "один-к-одному" переключение должно выполняться между узлами DSS на балансировщике. Для принятия решения о переключении между узлами может использоваться КриптоПро Центр Мониторинга.
Копирование Мастер-ключей между HSM может быть выполнено:
- Средствами КриптоПро HSM - c помощью функций резервного копирования
- Средствами КриптоПро DSS
Подключение "крест-на-крест"
Последовательность действий:
- Создание экспортируемого Мастер-ключа на основном HSM
- Копирование Мастер-ключа на резервный HSM
- Перевод Мастер-ключа на основном HSM в неэкспортируемое состояние
Пример копирования Мастер-ключа Сервиса Подписи:
#Создание Мастер-ключа
$prov = Add-DssCryptoProvider -ProviderName "Crypto-Pro GOST R 34.10-2012 HSM Svc CSP" -ProviderType 80 -Description "Тестовый провайдер 01.01.2020" -TypeId GostWithMasterKey -Exportable
#Копирование Мастер-ключа
Copy-DssCryptoProvider -NewProvName "Crypto-Pro GOST R 34.10-2012 HSM Svc CSPProxy" -ID $prov.ID
#Перевод Мастер-ключа неэкспортируемое состояние
Set-DssCryptoProvider -NotExportable -ID $prov.ID
Примечание
Для копирования Мастер-ключа в тестовых целях без использования КриптоПро HSM можно использовать следующее
имя криптопровайдера:
Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
.
Для myDSS Internal последовательность действий аналогичная.
Для модуля SIM-аутентификации и модуля DSS Client копирование ключа выполняется с помощью команды -DssCryptoProviderProfile
.
#Создание профиля DSS Client
$profile = Add-DssCryptoProviderProfile -PrimaryProviderName "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider" -PrimaryProviderType 80 -Name "Тестовый профиль 01.01.2020" -Description "Test Export mydss" -Type MyDss -Exportable
#Копирование Мастер-ключей
Copy-DssCryptoProviderProfile -ID $profile.ID -NewProvName "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider"
Подключение "один-к-одному"
Последовательность действий:
- Создание экспортируемого Мастер-ключа на основном HSM
- Экспорт Мастер-ключа на основном HSM
- Импорт Мастер-ключа на резервный HSM
- Перевод Мастер-ключа на основном HSM в неэкспортируемое состояние
Примечание
На обоих узлах DSS должен быть зарегистрирован криптопровайдер с одинаковым именем. Мастер-ключи на обоих HSM должен иметь одинаковое имя.
Пример копирования Мастер-ключа Сервиса Подписи:
#Создание Мастер-ключа
$prov = Add-DssCryptoProvider -ProviderName "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider" -ProviderType 80 -Description "Тестовый провайдер 01.01.2020" -TypeId GostWithMasterKey -Exportable
#Экспорт Мастер-ключа
Export-DssCryptoProvider -ID $prov.ID -OutFile C:\tmp\export3.xml
#Консоль powershell предложит ввести пароль для защиты экспортируемых данных
#Полученный файл необходимо перенести на второй узел DSS
#Выполняется на втором узле
#Импорт Мастер-ключа
Import-DssCryptoProvider -InputFile C:\tmp\export.xml
#Консоль powershell предложит ввести пароль
Set-DssCryptoProvider -NotExportable -ID <id нового провайдера>
Для myDSS Internal последовательность действий аналогичная.
Для модуля SIM-аутентификации и модуля аутентификации DSS Client копирование ключа выполняется с помощью команд -DssCryptoProviderProfile
#Создание Мастер-ключа
$profile = Add-DssCryptoProviderProfile -PrimaryProviderName "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider" -PrimaryProviderType 80 -Name "Тестовый профиль 01.01.2020" -Description "Test Export mydss" -Type MyDss -Exportable
#Экспорт Мастер-ключа
Export-DssCryptoProviderProfile -ID $profile.ID -OutFile C:\tmp\export3.xml
#Консоль powershell предложит ввести пароль для защиты экспортируемых данных
#Полученный файл необходимо перенести на второй узел DSS
#Импорт Мастер-ключа
Import-DssCryptoProviderProfile -InputFile C:\tmp\export.xml
#Консоль powershell предложит ввести пароль
Использование существующего мастер ключа
Если Мастер-ключ переносится средствами резервного копирования HSM, то последовательность действий:
- Добавить криптопровайдер с существующим Мастер-ключом
$prov = Add-DssCryptoProvider -ProviderName "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider" -ProviderType 80 -Description "Тестовый провайдер 01.01.2020" -TypeId GostWithMasterKey -MasterKeyName <existingKeyName>
- Включить новый криптопровайдер в существующую группу
Join-DssCryptoProvider -GroupId <existingGroupId> -ID $prov.ID
Примечание
В случае профиля Мастер-ключей для модулей SIM-аутентификации и DSS Client данную операцию необходимо будет выполнить для каждого Мастер-ключа, входящего в профиль.