понедельник, 20 сентября 2010 г.

ISSP \ Домен 06. Криптография. Часть 6

В этой части рассмотрены следующие вопросы:
  • Инфраструктура открытых ключей
  • Центр сертификации
  • Сертификаты
  • Центр регистрации
  • Шаги PKI


PKI (Public key infrastructure – Инфраструктура открытых ключей) состоит из программ, форматов данных, процедур, коммуникационных протоколов, политик безопасности и криптографических механизмов с открытыми ключами, работающих совместно, с целью предоставления широкого спектра возможностей для безопасных и предсказуемых коммуникаций. Другими словами, PKI устанавливает уровень доверия в пределах окружения. PKI является аутентификационной платформой ISO, использующей криптографию с открытыми ключами и стандарт Х.509. Эта платформа позволяет выполнять аутентификацию между различными сетями, а также сетью Интернет. Отдельные протоколы и алгоритмы не имеют спецификации, поэтому PKI называется платформой, а не конкретной технологией.

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

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

Криптография с открытыми ключами – это одна из частей PKI, но в эту инфраструктуру входит множество других частей. Здесь можно провести аналогию с протоколом SMTP. SMTP – это технология, применяемая для передачи сообщений электронной почты, но для того, чтобы она работала, необходимо множество других вещей: клиентское программное обеспечение для электронной почты, почтовые серверы и сообщения электронной почты, которые в совокупности создают инфраструктуру – инфраструктуру электронной почты. PKI также состоит из множества различных частей: центров сертификации, центров регистрации, сертификатов, ключей и пользователей. В следующих разделах рассмотрены эти отдельные части, а также их совместная работа.

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


Центр сертификации (СА – Certificate Authority, Удостоверяющий центр) – это доверенная организация (или сервер), которая выпускает и осуществляет поддержку цифровых сертификатов. Если человек запрашивает сертификат, Центр регистрации проверяет личность этого человека, после чего передает запрос на сертификат в Центр сертификации. Центр сертификации выпускает сертификат, подписывает его, отправляет запросившему его человеку и в дальнейшем поддерживает этот сертификат на протяжении всего времени его жизни. Если с этим человеком нужно взаимодействовать другому человеку, Центр сертификации обеспечивает подтверждение его личности. После того, как Дэвид получит цифровой сертификат от Кевина, Дэвид выполнит определенные шаги, чтобы проверить его. Предоставляя свой цифровой сертификат Дэвиду, Кэвин говорит что-то вроде: «Я знаю, что ты не знаешь меня и не доверяешь мне, но вот документ, созданный тем, кого ты знаешь и кому ты доверяешь. Документ говорит о том, что я хороший парень, и ты можешь доверять мне».

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

ПРИМЕЧАНИЕ. Помните атаку «человек посередине», которую мы рассматривали ранее в разделе «Алгоритм Диффи-Хеллмана»? Эта атака невозможна в среде PKI, поскольку пользователи в ней достоверно знают личность владельцев открытых ключей.

Удостоверяющий центр может быть внутренним подразделением компании. Это позволит компании самостоятельно управлять сервером Центра сертификации, настраивать на нем процесс аутентификации, осуществлять поддержку сертификатов, выполнять отзыв отдельных сертификатов в случае необходимости. Другие Удостоверяющие центры являются специализированными организациями, предоставляющие соответствующие услуги. Их клиенты – различные люди и компании – платят им за поддержку. Одними из самых известных Удостоверяющих центров являются Entrust и VeriSign. В стандартных настройках многих браузеров производителем указывается несколько хорошо известных Удостоверяющих центров.

ПРИМЕЧАНИЕ. Все больше и больше компаний организуют свои собственные внутренние PKI. Если такие независимые Удостоверяющие центры должны обеспечивать безопасные коммуникации между различными компаниями, необходим способ обеспечения взаимного доверия корневых Центров сертификации. Два Центра сертификации, не имеющие других вышестоящих Центров сертификации, могут доверять друг другу, если они провели кросс-сертификацию. Кросс-сертификация (cross certification) – это процесс, выполняемый Центрами сертификации для установления доверительных отношений, в результате которого они считают цифровые сертификаты и открытые ключи друг друга доверенными и доверяют им также, как своим собственным. Когда это сделано, Удостоверяющий центр одной компании может проверять цифровые сертификаты другой компании и наоборот.


В обязанности Центра сертификации входит создание, выдача сертификатов, их поддержка и, при необходимости, отзыв. Отзыв сертификатов производится Центром сертификации, информация об отозванных сертификатах сохраняется в списке отозванных сертификатов (CRL – Certificate revocation list). В этом списке указываются все сертификаты, которые были отозваны на момент формирования списка. Список отозванных сертификатов поддерживается и регулярно обновляется. Сертификат может быть отозван по причине компрометации закрытого ключа владельца или если Удостоверяющему центру стало известно, что сертификат был выпущен не тому человеку. Если сертификат стал по каким-либо причинам недействительным, именно список отозванных сертификатов является тем механизмом Удостоверяющего центра, который позволяет другим узнать об этом.

ПРИМЕЧАНИЕ. Во многих реализациях PKI работа списка отозванных сертификатов имеет недостатки. Интересно отметить тот факт, что по умолчанию веб-браузеры не проверяют список отозванных сертификатов, чтобы убедиться, что сертификат не был отозван. Таким образом, когда вы устанавливаете SSL-соединение при использовании услуги электронной коммерции через Интернет, вы можете довериться сертификату, который в действительности был отозван. Это не очень хорошо.

Протокол OSCP (Online Certificate Status Protocol) используется все чаще по сравнению с громоздким подходом CRL. При использовании CRL, браузер пользователя должен обратиться к центральному CRL, чтобы проверить, не был ли отозван сертификат, либо браузер должен постоянно обновлять CRL на стороне клиента, чтобы поддерживать его актуальность. При использовании OSCP, эта работа выполняется автоматически в фоновом режиме. OSCP выполняет проверку сертификатов в режиме реального времени и сообщает пользователю, является ли сертификат действительным, недействительным или неизвестным. OCSP проверяет CRL, поддерживаемый Центром сертификации. Фактически CRL продолжает использоваться, но OSCP существенно упрощает проверку CRL в процессе проверки сертификата.


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

В сертификате указывается его серийный номер, номер версии стандарта, идентификационная информация, информация об алгоритме, даты срока действия и подпись выпустившего его Удостоверяющего центра, как показано на Рисунке 6-23.

Рисунок 6-23. Каждый сертификат содержит структуру со всей необходимой идентификационной информацией


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


Теперь мы знаем некоторые основные компоненты PKI и то, как они совместно работают. Давайте еще раз рассмотрим это на примере. Предположим, что Джону нужно получить цифровой сертификат, чтобы принять участие в PKI. Для этого он должен выполнить следующие шаги:
  1. Джон делает запрос в Центр регистрации.
  2. Запрос в Центр регистрации содержит идентификационную информацию Джона, такую как, копия его водительских прав, номер его телефона, адрес и другую информацию.
  3. После получения всей необходимой информации от Джона, Центр регистрации проверяет ее и пересылает его запрос на сертификат в Центр сертификации.
  4. Центр сертификации создает сертификат открытого ключа Джона и включает в него идентификационную информацию Джона. (Пара ключей (закрытый/открытый) может генерироваться Центром сертификации или компьютером Джона, в зависимости от настроек системы. Если ключи создаются Центром сертификации, необходимо организовать безопасную доставку пользователю закрытого ключа. В большинстве случаев, пользователь самостоятельно генерирует пару ключей и отправляет свой открытый ключ процессе регистрации).
Теперь Джон зарегистрирован и стал участником PKI. Джону нужно взаимодействовать с Дианой. Для этого им нужно выполнить последовательность шагов, показанную на Рисунке 6-24.

Рисунок 6-24. Взаимодействие пользователя с Центром сертификации
  1. Джон запрашивает открытый ключ Дианы из общего каталога.
  2. Каталог (часто его называют репозиторием) отправляет Джону цифровой сертификат Дианы.
  3. Джон проверяет этот сертификат и извлекает из него открытый ключ Дианы. Джон использует этот открытый ключ для зашифрования сеансового ключа, который будет использоваться для шифрования их сообщений. Джон отправляет Диане зашифрованный сеансовый ключ и свой сертификат, содержащий его открытый ключ.
  4. При получении Дианой сертификата Джона, ее браузер проверяет, является ли доверенным Центр сертификации, подписавший этот сертификат своей цифровой подписью. Браузер Дианы доверяет этому Центру сертификации, поэтому после проверки сертификата Джон и Диана могут взаимодействовать с использованием шифрования.
PKI может состоять из следующих компонентов и функций:
  • Центр сертификации
  • Центр регистрации
  • Репозиторий сертификатов
  • Система отзыва сертификатов
  • Система резервного копирования и восстановления ключей
  • Автоматическое обновление ключей
  • Управление историей ключей
  • Установка меток времени
  • Клиентское программное обеспечение
PKI обеспечивает следующие сервисы безопасности:
  • Конфиденциальность
  • Управление доступом
  • Целостность
  • Аутентификация
  • Неотказуемость
PKI должен хранить историю ключей, чтобы отслеживать использование людьми как старых, так и актуальных открытых ключей. Например, если Кевин зашифровал симметричный ключ на старом открытом ключе Дэвида, у Дэвида должен существовать способ получения доступа к этим данным. Это может быть возможно только в том случае, если Центр сертификации хранит историю старых сертификатов и ключей Дэвида.
ПРИМЕЧАНИЕ. Другим важным компонентом, который должен быть интегрирован в PKI, является надежный источник данных о времени, который реализует способ безопасного получения штампов времени. Это играет большую роль, когда необходимо обеспечить неотказуемость.

Ссылки по теме: