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


Сертификаты и открытые ключи

Службы сертификатов — это одна из основ инфраструктуры открытых ключей (PKI), которая предоставляет средства для защиты и проверки подлинности информации. Связь между владельцем сертификата, удостоверением владельца сертификата и открытым ключом владельца сертификата является критической частью PKI. Эта инфраструктура состоит из следующих частей:

Пара открытых и закрытых ключей

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

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

Учитывая достаточное время и ресурсы, можно скомпрометировать пару открытого и закрытого ключей, то есть обнаружить закрытый ключ. Чем дольше ключ, тем сложнее использовать метод подбора для обнаружения закрытого ключа. На практике достаточно надежные ключи можно использовать, чтобы сделать его недоступным для своевременного определения закрытого ключа, что делает инфраструктуру открытых ключей жизнеспособным механизмом безопасности.

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

Открытый ключ, но не закрытый ключ, субъекта цифрового сертификата включается в запрос сертификата. (Таким образом, перед выполнением запроса сертификата должна существовать пара открытого и закрытого ключей.) Этот открытый ключ становится частью выданного сертификата.

Запрос сертификата

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

Центр сертификации

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

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

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

Сертификат

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

Если потребитель сертификата доверяет выдающим ЦС для сертификата, потребитель сертификата должен определить, действителен ли сертификат, сравнивая даты начала и окончания сертификата с текущим временем и проверяя, что сертификат не находится в списке отозванных сертификатов ЦС.

Список отзыва сертификатов

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

Открытый ключ, используемый для шифрования

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

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

Обратите внимание, что основная часть перечисленных здесь действий обрабатывается программным обеспечением, а не непосредственно пользователем.

Открытый ключ, используемый для проверки подписи

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

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

Кроме того, цифровые подписи поддерживают неотпудиацию. Если отправитель подписанного сообщения отклоняет отправку сообщения, получатель может использовать подпись, чтобы опровергнуть это утверждение.

Обратите внимание, что основная часть перечисленных здесь действий также обрабатывается программным обеспечением, а не непосредственно пользователем.

Роль служб сертификатов Майкрософт

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