Введение в инфраструктуру открытых ключей на примере Microsoft PKI

В практике работы часто приходится встречаться с недостатком знаний в области асимметричной криптографии у системных администраторов. Я постараюсь восполнить этот пробел. Эта статья посвящена базовой терминологии и основам асимметричной криптографии.
Часто задачи построения безопасных IT решений требуют внедрения инфраструктуры открытых ключей. Здесь речь может идти о потребности использования электронной цифровой подписи, шифрования и т. д. Однако прежде, чем осуществлять внедрения подобных решений следует разобраться, как это все работает, понять базовые принципы. Начнем с терминологии…

Базовая терминология

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

Давайте посмотрим с помощью каких средств решаются задачи по защите информации.
Конфиденциальность — Шифрование данных
Целостность — Электронная цифровая подпись
Аутентичность — Алгоритмы хеширования, электронная цифровая подпись.
Неотрицание авторства — Электронная цифровая подпись, журналы аудита
Доступность — Отказоустойчивость.

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

Введение в криптографию

Задача криптографии обеспечить защиту данных при хранении и передаче. Технологии криптографической защиты данных чрезвычайно важны для электронной коммерции, при работе с глобальными сетями, для обеспечения надежного и безопасного хранения информации. Существуют два типа криптографических алгоритмов: симметричные и асимметричные. Следует иметь ввиду, что возможно также их сочетание для решения ряда задач, например, подобная схема используется Microsoft в EFS при шифровании данных.
Основными целями криптографии являются: обеспечение аутентификации, целостности, конфиденциальности данных, и неотрицания авторства. Для этого применяются различные математические методы.
Снова определения…
  • Аутентификация — проверка подлинности пользователя.
  • Целостность данных – подтверждение отсутствия искажений в передаваемой информации.
  • Конфиденциальность – возможность прочтения информации только легитимным получателем.
  • Неотрицание авторства — отсутствие у всех участников возможности отказаться от совершенных ими операций.

Алгоритмы шифрования

Под шифрованием обычно понимают как ЗАшифрование данных, т. е. перевод данных к виду недоступному для просмотра, так и РАСшифрование, при котором данные возвращаются в исходное состояние.
Используются два вида алгоритмов шифрования: симметричные и асимметричные. Принципиальная разница заключается в следующем: при симметричных алгоритмах используется один и тот же ключ как для зашифрования, так и для расшифрования данных при асимметричных – ключи разные.
Итак, при симметричных алгоритмах один и тот же ключ используется как для зашифрования, так и для расшифрования данных.
Необходимо иметь в виду, что при работе с симметричным ключом, крайне важно защитить этот ключ от перехвата. При перехвате ключа, данные становятся потенциально доступны для изучения тем, кто получил доступ к ключу.
Асимметричный ключ представляет сочетание двух ключей: открытый и закрытый ключи. Обычно их называют ключевой парой. Оба ключа используются для зашифрования и расшифрования данных. Если общий ключ использован для зашифрования данных, то для расшифрования будет использован частный ключ. Если для зашифрования был использован частный ключ, то для расшифрования должен быть использован общий ключ.
Частный ключ обязательно должен быть защищен и недоступен другим пользователям. Частный ключ хранится в профиле пользователя или компьютера, или, что является наилучшим вариантом на физическом устройстве (смарт карта, usb-token, и. т. п.). Общий ключ, являющийся фактически атрибутом сертификата, распространяется свободно. Делается это для того, чтобы пользователи могли применять его при шифровании данных и при работе с цифровой подписью.



Принципы работы симметричного шифрования


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


  1. Отправитель выполняет шифрование данных с помощью симметричного ключа.
  2. В результате будет получена зашифрованная информация, которая передается получателю.
  3. Получатель, используя тот же самый ключ, осуществляет расшифровку данных и получает исходную информацию.
Такой механизм работы используется в ситуациях необходимости шифрования большого объема данных, т. к. симметричные алгоритмы шифрования обеспечивают большую производительность. Необходимо иметь в виду, что при компрометации ключа шифрования, зашифрованные данные также являются скомпрометированными.
Примечание. Большинство решений, связанных с шифрованием, представляют собой сочетание как симметричного, так и асимметричного шифрования. Данные шифруются с использованием симметричных алгоритмов. Шифрование ключей зашифрования данных реализуется с помощью асимметричных алгоритмов. Именно по такому принципу построено шифрование в EFS.
Следует понимать, что при необходимости предоставления таких файлов в совместный доступ, осуществляется дополнительное зашифрование ключа шифрования файла на публичных ключах всех пользователей, т. е. создается дополнительное поле для хранения ключа шифрования файла для каждого пользователя, которое шифруется на публичном ключе соответствующего пользователя. Таким образом, каждый из этих пользователей сможет осуществить расшифрование на своем приватном ключе и получить симметричный ключ с помощью которого и расшифровать файл.

Примеры симметричных алгоритмов
  • Data Encryption Standard (DES)
  • Data Encryption Standard XORed (DESX)
  • Rivest’s Cipher version 2 (RC2) (40 bit)
  • RC2 (128 Bit)
  • RC4
  • Triple DES (3DES)
  • Advanced Encryption Standard (AES)

Принципы работы асимметричного шифрования (шифрование данных)


Рассмотрим принципы работы асимметричного шифрования.

  1. Отправитель получает общий ключ получателя. Получение этого ключа в сети с реализованной службой каталога Active Directory Domain Services сводится к извлечению этого ключа из сертификата пользователя.
  2. Отправитель формирует симметричный одноразовый ключ (сессионный), который будет использован им для зашифрования данных. Осуществляется зашифрование данных с помощью сформированного ключа.
  3. Симметричный ключ зашифровывается с помощью общего ключа получателя.
  4. После этого отправитель посылает зашифрованные данные и зашифрованный ключ получателю.
  5. Получатель расшифровывает сессионный ключ своим частным ключом.
  6. Далее получатель с помощью полученного ключа расшифровывает данные.

Принципы работы асимметричного шифрования (цифровая подпись)


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


  1. Выполняется подсчет контрольной суммы для исходных данных. Формируется хэш. /Примечание. Любое изменение данных приведет к изменению значения результирующего хеша./
  2. Полученное значение шифруется с использованием ключа зашифрования отправителя. Таким образом, достигается блокировка модификаций значений контрольной суммы при передаче данных получателю.
  3. Отправитель посылает получателю: исходные данные, свой сертификат, и зашифрованное значение контрольной суммы. В сертификате отправителя содержится и общий ключ отправителя.
  4. Получатель осуществляет расшифрование значения контрольной суммы, применяя для этого общий ключ отправителя, полученный из его сертификата. Успешное расшифрование контрольной суммы и проверка аутентичности сертификата отправителя гарантирует, что данные были получены из «правильного» источника.
  5. Далее получатель, используя такие же алгоритмы хеширования, что и отправитель, вычисляет значения контрольной суммы исходных данных. Сравнив полученное значения с тем, что прислал отправитель, проверяется неизменность данных при передаче. Если значения совпали, то изменений не было, в противном случае данные были модифицированы.
Примеры асимметричных алгоритмов:
  • Diffie-Helman Key Agreement
  • Rivest Shamir Adleman (RSA)
  • Digital Signature Algorithm (DSA)
Подведем итоги…
Рассмотренные в статье основы асимметричной криптографии дают нам возможность понять фундаментальные принципы ее функционирования.

Список литературы

[1] Brian Komar Windows Server 2008 PKI and Certificate Security

Статья опубликована в журнале «Системный Администратор».

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.