Инфраструктура открытых ключей
Криптография с открытым ключом (также называемая асимметричным ключом шифрования) использует пару ключей для шифрования и расшифровки содержимого. Пара ключей состоит из одного открытого и одного закрытого ключа, которые математически связаны. Пользователь, который намерен безопасно взаимодействовать с другими пользователями, может распространять открытый ключ, но должен хранить закрытый ключ секрет. Содержимое, зашифрованное с помощью одного из ключей, можно расшифровать с помощью другого. Предположим, например, что Боб хочет отправить безопасное сообщение электронной почты Алисе. Это можно сделать следующим образом:
- Оба Боба и Алиса имеют свои собственные ключевые пары. Они безопасно держали свои закрытые ключи для себя и послали их открытые ключи напрямую друг другу.
- Боб использует открытый ключ Алисы для шифрования сообщения и отправляет его ей.
- Алиса использует свой закрытый ключ для расшифровки сообщения.
В этом упрощенном примере по крайней мере одна очевидная озабоченность Боба должна быть связана с открытым ключом, который он использовал для шифрования сообщения. То есть он не может знать с уверенностью, что ключ, который он использовал для шифрования, фактически принадлежал Алисе. Возможно, что другая сторона, отслеживающая канал связи между Бобом и Алиса, заменила другой ключ.
Концепция инфраструктуры открытого ключа развивалась, чтобы помочь решить эту проблему и другие. Инфраструктура открытого ключа (PKI) состоит из элементов программного обеспечения и оборудования, которые доверенное стороне может использовать для установления целостности и владения открытым ключом. Доверенное лицо, называемое центром сертификации (ЦС), обычно выполняет это путем выдачи подписанных (зашифрованных) двоичных сертификатов, которые подтверждают удостоверение субъекта сертификата и привязывают это удостоверение к открытому ключу, который содержится в сертификате. ЦС подписывает сертификат с помощью закрытого ключа. Он выдает соответствующий открытый ключ всем заинтересованным сторонам в самозаверяющем сертификате ЦС. При использовании ЦС предыдущий пример можно изменить следующим образом:
- Предположим, что ЦС выпустил подписанный цифровой сертификат, содержащий его открытый ключ. ЦС самозаверяет этот сертификат с помощью закрытого ключа, соответствующего открытому ключу в сертификате.
- Алиса и Боб согласны использовать ЦС для проверки их удостоверений.
- Алиса запрашивает сертификат открытого ключа из ЦС.
- ЦС проверяет ее личность, вычисляет хэш содержимого, который будет создавать его сертификат, подписывает хэш с помощью закрытого ключа, соответствующего открытому ключу в опубликованном сертификате ЦС, создает новый сертификат, объединяя содержимое сертификата и подписанный хэш, и делает новый сертификат общедоступным.
- Боб извлекает сертификат, расшифровывает подписанный хэш с помощью открытого ключа ЦС, вычисляет новый хэш содержимого сертификата и сравнивает два хэша. Если хэши совпадают, подпись проверяется и Боб может предположить, что открытый ключ в сертификате действительно принадлежит Алисе.
- Боб использует проверенный открытый ключ Алисы для шифрования сообщения.
- Алиса использует свой закрытый ключ для расшифровки сообщения от Боба.
В итоге процесс подписывания сертификата позволяет Бобу убедиться, что открытый ключ не был изменен или поврежден во время передачи. Перед выдачой сертификата ЦС хэширует содержимое, подписывает хэш (шифрует) с помощью собственного закрытого ключа и включает зашифрованный хэш в выданный сертификат. Боб проверяет содержимое сертификата путем расшифровки хэша с открытым ключом ЦС, выполнения отдельного хэша содержимого сертификата и сравнения двух хэшей. Если они соответствуют, Боб может быть достаточно уверен, что сертификат и открытый ключ, который он содержит, не были изменены.
Типичный PKI состоит из следующих элементов.
Элемент | Описание |
---|---|
Центр сертификации |
Выступает в качестве корня доверия в инфраструктуре открытых ключей и предоставляет службы, которые проверяют подлинность личности отдельных лиц, компьютеров и других сущностей в сети. |
Центр регистрации |
Сертифицирован корневой ЦС для выдачи сертификатов для конкретных использования, разрешенных корнем. В PKI Майкрософт центр регистрации (RA) обычно называется подчиненным ЦС. |
База данных сертификатов |
Сохраняет запросы на сертификаты и выдаваемые и отозванные сертификаты и запросы сертификатов в ЦС или RA. |
Хранилище сертификатов |
Сохраняет выданные сертификаты и ожидающие или отклоненные запросы на сертификат на локальном компьютере. |
Сервер архивации ключей |
Сохраняет зашифрованные закрытые ключи в базе данных сертификатов для восстановления после потери. |
API регистрации сертификатов позволяет отправлять сертификаты и архивные запросы ключей в центры сертификации и регистрации и устанавливать выданный сертификат на локальном компьютере. Он не позволяет напрямую управлять базой данных сертификатов или хранилищем сертификатов.
В следующих разделах подробно рассматривается инфраструктура открытых ключей Майкрософт: