Проблемы централизованной PKI

Для установления безопасного соединения между двумя пользователями им необходимо обменяться ключами. Всего существует три безопасных способа обмена публичными ключами:

  1. Личная встреча — прямая передача открытого ключа от пользователя к пользователю без использования публичных каналов передачи данных (интернет).
  2. Ранее используемый ключ — передача по небезопасной сети с использованием защиты по ранее установленному ключу.
  3. Третья доверенная сторона — получение открытого ключа пользователя через третью доверенную сторону, с которой уже налажен безопасный канал связи.

Из этого перечня видно, что второй и третий пункты в конечном итоге сводятся к первому. Таком образом, для того, чтобы начать безопасно работать в информационной системе с открытым ключом необходимо, как минимум, один раз лично прийти и передать свой открытый ключ. Одну из ключевых ролей в функционировании всего Интернета играет инфраструктура открытых ключей (PKI — public-key infrastructure). Она нацелена на решение проблемы безопасного обмена открытыми ключами пользователей с использованием третьей доверенной стороны (третий способ).

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

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

Корневым центром сертификации (Root CA) называется такой центр сертификации, который не подчиняется ни одному другому центру (самый верхний в иерархии). Сертификат такого центра сертификации подписан его собственным ключом и называется самоподписанным сертификатом.

Проблемы централизованной PKI

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

Жизненный цикл сертификата состоит из следующих этапов:

  1. Создание запроса в центр сертификации на выпуск сертификата открытого ключа и верификация идентификационных данных пользователя.
  2. Выпуск сертификата в соответствии с данными, указанными в запросе, и действующей политикой сертификации.
  3. Распространение сертификата среди участников информационной системы.
  4. Хранение и выдача сертификата по запросу пользователей и владельцев сертификатов.
  5. Приостановка и возобновление действия сертификата.
  6. Обновление информации, содержащейся в сертификате, и ключевой пары.
  7. Отзыв сертификата по запросу владельца или уполномоченного органа.
  8. Окончание срока действия сертификата и перевыпуск при необходимости.

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

Централизованные решения PKI массового использования, в частности те, что используются веб-ресурсами, имеют ряд сложностей и проблем:

  1. Сложности быстрого оповещения о компрометации ключа, поскольку формирование и распространение списка отозванных сертификатов может занимать от нескольких минут до часа, как результат – нет 100% гарантии, что данный ключ принадлежит определенному пользователю в текущий момент времени.
  2. Если проверка сертификата выполняется онлайн (запрос центру сертификации), то нарушается приватность пользователя, поскольку центр сертификации будет знать всю историю взаимодействия пользователей.
  3. Сложность выявления присутствия сертификатов нежелательных корневых центров сертификации. В этом случае, на пути шифрованного трафика между клиентом и сервером может быть установлено аппаратное обеспечение, которое расшифровывает все данные незаметно для клиента и сервера.
  4. Может быть выпущено несколько сертификатов на одно и тоже имя, т.е. один и тот же идентификатор может быть сертифицирован у разных корневых центров.
  5. Сложный процесс обновления сертификатов, поскольку нужно повторно обращаться к регистрирующему центру, изменять данные, заново формировать сертификат и заверять его центром сертификации.
  6. Существование разных стандартов электронной подписи, как результат необходимость выбора алгоритмов и проблемы совместимости пользователей по возможности взаимодействия.
  7. Центр системы всегда является точкой атаки, компрометация корневого сертификата будет подвергать всю систему множеству уязвимостей.
  8. В случае с централизованными PKI управление идентификатором находится в руках централизованной организации, а не принадлежит самому владельцу идентификатора.

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

Bohdan SkriabinCryptographer, analyst at Distributed Lab