Инфраструктура открытых ключей (PKI - Public Key Infrastructure) — это система управления криптографической защитой, совокупность цифровых сертификато открытых ключей и служб управления сертификатами.
В задачи PKI входит определение политики цифровых сертификатов, выдача их и аннулирование, а так же хранение информации для последующей проверки правильности и актуальности сертификатов. Приложениями, поддерживающие PKI как правило является защищенная электронная почта, протоколы платежей, электронные чеки, электронный обмен информацией, защита данных в сетях с протоколом IP, электронные формы и документы с электронной цифровой подписью (ЭЦП).
PKI использует в работе сертификатами. Это электронный документ, содержащий электронный ключ пользователя (открытый или же ключевую пару (keypair)), информацию о владельце сертификата, удостоверяющую подпись корневого центра выдачи сертификатов и информацию о сроке действия сертификата.
Реализация PKI в ОС выполняется следующими элементами:
- Программными интерфейсами криптографических служб Windows CryptoAPI (поддерживает работу с асимметричными и симметричными ключами, что позволяет шифровать и расшифровывать данные, а также работать с электронными сертификатами)
- Cryptographic Service Provider (CSP) отвечающий за криптографические операции и генерацию ключей, а так же их хранение
- Microsoft CSPs – базовый набор криптопровайдеров и High Encryption Pack (для Microsoft Internet Explorer)
Рассмотрим используемые методы шифрования.
Симметричное шифрование - это шифрование потоков данных с помощью сеансового ключа, известного обоим участникам.
Шифрование с открытым ключом (или асимметричное шифрование, асимметричный шифр) - это обмен сеансовым ключом при установлении защищенного канала и использование цифровой подписи.
Первоначально пользователь зашифровывает данные с помощью открытого ключа, далее сообщение передается адресату через сеть, и расшифровывается при получении с помощью личного ключа. Аутентификация зашифрованного сообщения происходит при помощи подписи отправителем сообщения личным ключем.
Шифрование данных при помощи электронной цифровой подписи (ЭЦП) происходит следующим образом:
- Вычисляется хэш-значние данных которые необходимо зашифровать, в последствии называемый дайджестом
- Дайджест данных шифруется алгоритмом шифрования используя личный (закрытый) ключ пользователя
- После того, как данные зашифрованы, они отсылаются адресату
- Адресат получив зашифрованное сообщение вычисляет его хэш-значение (получает дайджест данных)
- Используя алгоритм расшифрования и свой открытый ключ, пользователь опять получает дайджест данных
В итоге данной последовательности пользователь получает открытые данные.
Открытый и закрытый ключь пользователя находятся в сертификате. Сертификат - это цифровое удостоверение (стандарт X.509 версия 3). Открытый ключ и возможные режимы его использования однозначно идентифицируют субъекта. Сертификат имеет такие атрибуты как срок действия сертификата, информацию о службе выдавшей сертификат и информацию о корневом удостоверяющем центре данного сертификата. Данная информация необходима для проверки сертификата.
Microsoft Certificate Services представляет собой полнофункциональное PKI-решение, включающее встроенные службы и средства администрирования приложений, применяющих шифрование с открытым ключом, а также для управления ими. Microsoft Certificate Services поддерживает форматы сертификатов X.509 версий 3 и выше. Microsoft Certificate Services имеет следующие элементы:
- Certification Authority (обеспечивает выдачу сертификатов клиентам, генерацию ключей при необходимости, отзыв сертификатов закончивших срок действия, публикация Certificate Revocation List (список отозваных сертификатов) и хранение истории всех выданных сертификатов)
- Web Enrollment Support (обеспечивает запрос и получение сертификата через Web-интерфейс)
