Поделиться через


Инфраструктура открытых ключей

Криптография с открытым ключом (также называемая асимметричным ключом шифрования) использует пару ключей для шифрования и расшифровки содержимого. Пара ключей состоит из одного открытого и одного закрытого ключа, которые математически связаны. Пользователь, который намерен безопасно взаимодействовать с другими пользователями, может распространять открытый ключ, но должен хранить закрытый ключ секрет. Содержимое, зашифрованное с помощью одного из ключей, можно расшифровать с помощью другого. Предположим, например, что Боб хочет отправить безопасное сообщение электронной почты Алисе. Это можно сделать следующим образом:

  1. Оба Боба и Алиса имеют свои собственные ключевые пары. Они безопасно держали свои закрытые ключи для себя и послали их открытые ключи напрямую друг другу.
  2. Боб использует открытый ключ Алисы для шифрования сообщения и отправляет его ей.
  3. Алиса использует свой закрытый ключ для расшифровки сообщения.

В этом упрощенном примере по крайней мере одна очевидная озабоченность Боба должна быть связана с открытым ключом, который он использовал для шифрования сообщения. То есть он не может знать с уверенностью, что ключ, который он использовал для шифрования, фактически принадлежал Алисе. Возможно, что другая сторона, отслеживающая канал связи между Бобом и Алиса, заменила другой ключ.

Концепция инфраструктуры открытого ключа развивалась, чтобы помочь решить эту проблему и другие. Инфраструктура открытого ключа (PKI) состоит из элементов программного обеспечения и оборудования, которые доверенное стороне может использовать для установления целостности и владения открытым ключом. Доверенное лицо, называемое центром сертификации (ЦС), обычно выполняет это путем выдачи подписанных (зашифрованных) двоичных сертификатов, которые подтверждают удостоверение субъекта сертификата и привязывают это удостоверение к открытому ключу, который содержится в сертификате. ЦС подписывает сертификат с помощью закрытого ключа. Он выдает соответствующий открытый ключ всем заинтересованным сторонам в самозаверяющем сертификате ЦС. При использовании ЦС предыдущий пример можно изменить следующим образом:

  1. Предположим, что ЦС выпустил подписанный цифровой сертификат, содержащий его открытый ключ. ЦС самозаверяет этот сертификат с помощью закрытого ключа, соответствующего открытому ключу в сертификате.
  2. Алиса и Боб согласны использовать ЦС для проверки их удостоверений.
  3. Алиса запрашивает сертификат открытого ключа из ЦС.
  4. ЦС проверяет ее личность, вычисляет хэш содержимого, который будет создавать его сертификат, подписывает хэш с помощью закрытого ключа, соответствующего открытому ключу в опубликованном сертификате ЦС, создает новый сертификат, объединяя содержимое сертификата и подписанный хэш, и делает новый сертификат общедоступным.
  5. Боб извлекает сертификат, расшифровывает подписанный хэш с помощью открытого ключа ЦС, вычисляет новый хэш содержимого сертификата и сравнивает два хэша. Если хэши совпадают, подпись проверяется и Боб может предположить, что открытый ключ в сертификате действительно принадлежит Алисе.
  6. Боб использует проверенный открытый ключ Алисы для шифрования сообщения.
  7. Алиса использует свой закрытый ключ для расшифровки сообщения от Боба.

В итоге процесс подписывания сертификата позволяет Бобу убедиться, что открытый ключ не был изменен или поврежден во время передачи. Перед выдачой сертификата ЦС хэширует содержимое, подписывает хэш (шифрует) с помощью собственного закрытого ключа и включает зашифрованный хэш в выданный сертификат. Боб проверяет содержимое сертификата путем расшифровки хэша с открытым ключом ЦС, выполнения отдельного хэша содержимого сертификата и сравнения двух хэшей. Если они соответствуют, Боб может быть достаточно уверен, что сертификат и открытый ключ, который он содержит, не были изменены.

Типичный PKI состоит из следующих элементов.

Элемент Описание
Центр сертификации
Выступает в качестве корня доверия в инфраструктуре открытых ключей и предоставляет службы, которые проверяют подлинность личности отдельных лиц, компьютеров и других сущностей в сети.
Центр регистрации
Сертифицирован корневой ЦС для выдачи сертификатов для конкретных использования, разрешенных корнем. В PKI Майкрософт центр регистрации (RA) обычно называется подчиненным ЦС.
База данных сертификатов
Сохраняет запросы на сертификаты и выдаваемые и отозванные сертификаты и запросы сертификатов в ЦС или RA.
Хранилище сертификатов
Сохраняет выданные сертификаты и ожидающие или отклоненные запросы на сертификат на локальном компьютере.
Сервер архивации ключей
Сохраняет зашифрованные закрытые ключи в базе данных сертификатов для восстановления после потери.

API регистрации сертификатов позволяет отправлять сертификаты и архивные запросы ключей в центры сертификации и регистрации и устанавливать выданный сертификат на локальном компьютере. Он не позволяет напрямую управлять базой данных сертификатов или хранилищем сертификатов.

В следующих разделах подробно рассматривается инфраструктура открытых ключей Майкрософт:

о API регистрации сертификатов