Сервер восстановления ключей
Центр сертификации Майкрософт (ЦС) можно настроить для архивации и восстановления закрытого ключа, связанного с открытым ключом, отправленным в запросе сертификата. Восстановление полезно, если ключ потерян. По умолчанию архивировать можно только ключи шифрования. Архивировать ключи, предназначенные только для подписи, не требуется, так как только открытый ключ необходим для проверки подписи, если закрытый ключ подписи потерян.
Чтобы архивировать ключ, ЦС необходимо настроить для выдачи сертификатов агента восстановления ключей (KRA) и уже выдан по крайней мере один. Агент восстановления ключей — это администратор, авторизованный организацией для расшифровки закрытых ключей. Чтобы повысить безопасность, рекомендуется назначать агенту восстановления ключей и ролям диспетчера сертификатов разным лицам, чтобы диспетчер сертификатов был разрешен получать, но не расшифровывать архивированные ключи, а также разрешать агенту восстановления ключей расшифровывать ключи, но не извлекать их.
Архивация ключей
Клиент обычно запрашивает сертификат с помощью шаблона. Если шаблон требует, чтобы закрытый ключ был архивирован, клиент и ЦС выполняют следующие действия:
- Клиент получает и проверяет сертификат exchange ЦС, чтобы определить, подписан ли он тем же ключом, который использовался для подписи сертификата подписи ЦС. Это гарантирует, что единственный ЦС, который может расшифровать закрытый ключ, является ЦС, из которого запрашивается сертификат.
- Открытый ключ в сертификате exchange ЦС используется для шифрования закрытого ключа, связанного с запросом сертификата, и запрос отправляется в ЦС.
- ЦС использует закрытый ключ, связанный с его сертификатом exchange, для расшифровки закрытого ключа, отправленного клиентом, и проверяет, связаны ли открытые и закрытые ключи в запросе.
- ЦС шифрует закрытый ключ с помощью открытого ключа в сертификате KRA. Если ЦС выпустил несколько сертификатов KRA, он шифрует закрытый ключ один раз с каждым доступным открытым ключом, чтобы любой авторизованный агент восстановления ключей смог восстановить ключ. Зашифрованные закрытые ключи хранятся в базе данных сертификатов.
- ЦС освобождает все ссылки на закрытый ключ и безопасно освобождает и ноль всей памяти, содержащей ключ. Это гарантирует, что ЦС не имеет дальнейшего доступа к ключу в виде чистого текста.
Примечание.
Для архивации ключей можно использовать только запрос CMC. Запросы CMC представлены интерфейсом IX509CertificateRequestCmc .
Восстановление ключа
Восстановление ключей не поддерживается напрямую службами сертификатов Active Directory или API регистрации сертификатов. Однако корпорация Майкрософт предоставляет следующие приложения, которые помогут в этом процессе:
- Certutil.exe — это программа командной строки, которая может использоваться для получения сведений о конфигурации ЦС, проверки сертификатов, пар ключей и цепочек сертификатов, а также резервного копирования и восстановления ключей. Она включается в серверные операционные системы, начиная с Windows Server 2003.
- Krecover.exe — это программа на основе диалогового окна, которая обеспечивает восстановление ключей. Он входит в состав набора ресурсов, начиная с Windows Server 2003.
Для восстановления закрытого ключа выполняются следующие действия.
- Диспетчер сертификатов находит потенциальных кандидатов для восстановления ключей в базе данных сертификатов с помощью имени сертификата, запрашивающего или пользователя. Для этой цели можно использовать команду Certutil -getkey.
- После того как диспетчер сертификатов содержит список сертификатов, команда -getkey вызывается снова с определенным серийным номером сертификата или отпечатком, чтобы получить PKCS #7-файл, содержащий сертификат KRA, цепочку сертификатов пользователя и закрытый ключ, зашифрованный во время архивации с помощью открытого ключа KRA.
- Диспетчер сертификатов передает управление процессом агенту восстановления ключей, закрытый ключ которого соответствует открытому ключу, содержающемуся в сертификате KRA.
- Агент восстановления ключей расшифровывает архивный закрытый ключ, возвращенный в файле PKCS #7 с помощью закрытого ключа KRA. Это можно сделать с помощью команды Certutil -recoverkey , которая помещает ключ в защищенный паролем PKCS #12-файл. Клиент должен быть предоставлен пароль через безопасный механизм вне полосы.
- Клиент импортирует файл PKCS #12 и использует пароль для получения ключа.
См. также