Функциональные компоненты PKI (
Серверные компоненты PKI
Основными серверными компонентами PKI являются
На сервер сертификатов возлагаются функции выпуска и управления сертификатами, защищенного хранения секретного ключа
Сервер каталогов содержит информацию о сертификатах и атрибутах субъектов
Рис. 3.2. Взаимодействие пользователей с серверами PKI
* сетевую аутентификацию через IP-адреса или DNS-имена и аутентификацию
* управление доступом субъектов к информации в зависимости от их прав на выполнение операций чтения, записи, уничтожения, поиска или сравнения;
* конфиденциальность (посредством протокола SSL) и целостность сообщений для всех видов связи [56].
Сервер восстановления ключей поддерживает создание резервных копий и восстановление ключей шифрования
PKI управляет ключами и сертификатами, используемыми для реализации криптографических операций в web-браузерах, web-серверах, приложениях электронной почты, электронного обмена сообщениями и данными, в приложениях, поддерживающих защищенные сетевые транзакции и сеансы связи через World Wide Web или в виртуальных частных сетях на базе протоколов S/MIME, SSL и IPsec, а также для заверения цифровой подписью электронных документов или программного кода [82]. Наряду с перечисленными выше приложениями, PKI-совместимыми могут быть и корпоративные приложения, разработанные внутри организации.
Приложения электронной почты и обмена сообщениями используют пары ключей для шифрования сообщений и файлов и заверения их цифровыми подписями. Системы электронного обмена данными поддерживают транзакции, требующие аутентификации сторон, обеспечения конфиденциальности и целостности данных. Браузеры и web-серверы используют шифрование для аутентификации, обеспечения конфиденциальности, а также в приложениях электронной коммерции и онлайнового предоставления банковских услуг. Шифрование и аутентификация применяются также для создания виртуальных частных сетей (Virtual Private Networks - VPN) на основе сетей общего пользования, для защиты коммуникаций между сайтами или удаленного доступа (клиент-сервер). Заверение цифровой подписью программных кодов и файлов дает возможность пользователям подтвердить источник получаемых по Интернету программ и файлов и целостность их содержания, это важно и для контроля вирусного заражения.
Клиентское программное обеспечение
Как известно, технология "клиент-сервер" предполагает обслуживание клиента только по его запросу, тот же самый принцип справедлив и для PKI. Клиентское программное обеспечение (ПО) пользователя должно запрашивать сервисы сертификации и обрабатывать информацию об аннулированных сертификатах, понимать истории ключей и отслеживать своевременное обновление или восстановление ключей, анализировать необходимость проставления меток времени. Клиентскому ПО необходимо распознавать идентификаторы
Клиентское ПО - существенный компонент полнофункциональной PKI. Важно отметить, что клиентское ПО не является ни программным обеспечением приложения, ни PKI-совместимым кодом, который размещается внутри приложения, подобного браузеру или приложению электронной почты. Такая архитектура фундаментально нарушала бы концепцию PKI как инфраструктуры, согласованно обеспечивающей безопасность всем использующим ее приложениям и платформам. Наоборот, клиентское ПО - это код, который существует вне любых приложений и реализует необходимую клиентскую сторону PKI. Приложения связываются с клиентским ПО через стандартные точки входа, им не приходится самостоятельно взаимодействовать с разными серверами PKI. Таким образом, приложения используют инфраструктуру, а не являются частью инфраструктуры [44].
Компонент клиентской стороны PKI может быть:
* относительно большим ("толстый" клиент), выполняющим большую часть операционной работы PKI, в том числе обработку путей сертификации и валидацию;
* относительно небольшим ("тонкий" клиент), просто вызывающим внешние серверы для выполнения PKI-функций;
* Java-апплетом или аналогичным мобильным кодом, при необходимости загружаемым в режиме реального времени, а затем удаляемым после завершения работы вызывающего приложения (подобного web-браузеру);
* динамически подключаемой библиотекой (Dynamically Linked Library - DLL) или аналогичной, которая размещается резидентно на клиентской платформе.
Существует много возможностей реализации и вызова клиентского ПО, но главным требованием является независимость этого компонента от приложений, использующих PKI.
Каждый компонент, чтобы быть частью PKI, должен удовлетворять критерию безопасности. Этот критерий характеризует необходимый для целей бизнеса уровень защищенности в пределах допустимого уровня риска [10]. Механизмы безопасности, обеспечивающие заданный уровень защищенности, обычно подразделяют на механизмы защиты аппаратных средств, компьютерной платформы, сети и приложений. PKI-совместимые приложения не позволяют обеспечить полную безопасность корпоративной сети и должны быть дополнены другими средствами защиты, например, межсетевыми экранами, сервисами аутентифицируемых имен (службами имен) и строгим контролем администратора сети.
Сервисы PKI
Ядро инфраструктуры открытых ключей образуют сервисы управления сертификатами и криптографические сервисы, в крупномасштабных PKI важная роль отводится вспомогательным сервисам.
Криптографические сервисы
Генерация пар ключей
При помощи этого сервиса генерируется пара ключей (открытый ключ/секретный ключ), секретный ключ хранится в файле, защищенном паролем или иными средствами (например, на смарт-карте или при помощи другого аппаратного или программного средства, гарантирующего конфиденциальность секретного ключа). В PKI должны поддерживаться две пары ключей для каждого пользователя.
Выработка цифровой подписи
Этот сервис заключается в генерации хэш-кода сообщения и подписи его цифровым образом.
Верификация (проверка) цифровой подписи
Посредством этого сервиса устанавливается подлинность сообщения и соответствующей ему цифровой подписи.
Сервисы управления сертификатами
Выпуск сертификатов
Сертификаты выпускаются
Концепция единой глобальной PKI, объединяющей всех пользователей в мире, вряд ли воплотится в жизнь в ближайшее время. Скорее всего, сохранится сегодняшняя модель, когда существуют многие независимо реализованные и функционирующие PKI, которые обслуживают разные среды и сообщества пользователей. Однако с течением времени неизбежно возникает необходимость в объединении, по крайней мере, некоторых инфраструктур из этого множества независимо реализованных PKI. Изменение деловых связей или другие причины вызывают потребность в защищенных коммуникациях между сообществами пользователей разных PKI, даже если раньше защищенная связь между ними не была нужна.
Концепция кросс-сертификации возникла в связи с необходимостью формировать отношения доверия между ранее не связанными реализациями PKI. В отсутствии глобальной PKI кросс-сертификация служит общепринятым механизмом, позволяющим пользователям одного PKI-сообщества полагаться на сертификаты другого PKI-сообщества. В деловой среде в результате слияния, приобретения новых компаний, сотрудничества с новыми партнерами появляется потребность в установлении связей между различными PKI. Без механизма однородного и контролируемого связывания разных инфраструктур в среде могут возникнуть проблемы с разрушительными последствиями, такие как, например, аннулирование всех сертификатов приобретаемой компании или выпуск новых сертификатов для приобретающей компании. Кросс-сертификация отвечает важным требованиям бизнеса к безопасности взаимного связывания разнородных PKI.
Управление жизненным циклом сертификатов и ключей
Если секретный ключ пользователя потерян, похищен или скомпрометирован, либо существует вероятность наступления таких событий, действие сертификата должно быть прекращено. После получения подтверждения запроса пользователя об аннулировании сертификата
Пример 3.1. В качестве примера можно привести следующую аналогию аннулирования сертификатов. Водительские права - это один из видов сертификатов, который связывает идентичность (имя и фотографию) с номером водительских прав (то есть разрешением на вождение) и выдается доверенным центром (автоинспекцией). Когда инспектор останавливает машину, то он не просто проверяет, на какой срок выданы права, но также может связаться с доверенным центром, чтобы выяснить, не были ли права аннулированы. Проверка на предмет аннулирования необходима, потому что иногда связь "идентичность-разрешение" в непросроченных правах не является надежной [10].
Механизм аннулирования сертификатов необходим во всех случаях, за исключением тех, когда используются сертификаты, имеющие короткий срок действия и эффективные только для однократного использования. Одноразовые сертификаты непрактичны во многих PKI-средах, поскольку создают огромную нагрузку на
Аналогично аннулированию осуществляется приостановление действия сертификата. Оно заключается в однократной отмене сертификата на некоторое время в течение периода его действия. После этого действие сертификата возобновляется автоматически или же сертификат аннулируется. Приостановление действия сертификата осуществляется в тех ситуациях, когда невозможно установить подлинность лица, обращающегося с запросом об аннулировании.
Поддержка репозитория
Выпущенный сертификат или САС включается в
Хранение сертификатов и САС в архиве
Выпускаемые сертификаты и списки аннулированных сертификатов хранятся в
Вспомогательные сервисы
Регистрация
Регистрационные сервисы обеспечивают регистрацию и контроль информации о субъектах, а также аутентификацию субъектов, необходимую для выпуска или аннулирования сертификатов (от имени
Хранение информации в архиве
Сервисы хранения информации в архиве предназначены для долговременного хранения и управления электронными документами и другой информацией.
Резервное хранение и восстановление ключей
При функционировании PKI иногда возникают ситуации, когда пользователи больше не могут использовать свои секретные ключи:
* недоступность зашифрованного секретного ключа (забытые пароли доступа);
* разрушение среды хранения секретного ключа (например, смарт-карты, жесткого диска);
* уничтожение секретного ключа при замене среды хранения (переформатирование жесткого диска, установка нового диска и др.).
Для многих сред, особенно корпоративных, утрата данных, защищенных недоступным в данный момент ключом, совершенно неприемлема. В бизнесе часто критически важные документы шифруются симметричным ключом, который, в свою очередь, зашифрован открытым ключом пользователя. Если соответствующий секретный ключ утерян, то эти документы невозможно восстановить, что может крайне отрицательно отразиться на бизнесе. Наиболее рациональным решением проблемы является резервное хранение и восстановление секретных ключей шифрования.
Сервисы обеспечивают создание резервных копий и восстановление информации в случае уничтожения или устаревания среды хранения.
Автоматическое обновление ключей
Сертификат имеет ограниченный срок действия, который устанавливается в зависимости от возможностей современных криптографических алгоритмов и используемых длин ключей, а также с учетом практических соображений (например, объем данных, защищаемых отдельным ключом, обычно лимитируется). Какова бы ни была причина ограниченности срока действия, необходимо, чтобы просроченный сертификат был заменен новым. Эта процедура называется обновлением ключа и обновлением сертификата.
Безусловно, большинству пользователей PKI кажется обременительной и раздражающей необходимость периодически вручную обновлять каждый свой сертификат. Пользователи обычно не помнят дату истечения срока действия своего сертификата, и поэтому обнаруживают это только тогда, когда бывает слишком поздно (то есть когда сертификат перестает действовать). Следовательно, они утрачивают возможность пользоваться сервисами PKI до тех пор, пока не выполнят процедуру обновления сертификатов. Причем в этом состоянии процедура обновления несколько более сложна и требует внешнего обмена с
Решение проблемы заключается в том, чтобы реализовать PKI таким способом, при котором обновление ключа или сертификата управляется самой PKI полностью автоматически, без какого бы ни было вмешательства пользователя. Независимо от назначения сертификата проверяется его срок действия, и когда срок истекает, начинается операция обновления и генерируется новый сертификат, который заменяет старый.
Управление историями ключей
Концепция обновления ключей, ручного или автоматического, подразумевает, что в данный момент времени пользователь имеет много "старых" сертификатов и, по крайней мере, один "текущий" сертификат. Этот набор сертификатов и соответствующих секретных ключей обычно называют историей ключей пользователя, хотя более точно его называть историей ключей и сертификатов. Сохранение этой полной истории ключей очень важно, потому что данные, зашифрованные самим пользователем или кем-нибудь для него в прошлом (например, 5 лет назад), не могут быть расшифрованы при помощи текущего секретного ключа пользователя. Заметим, что повторное шифрование всех данных пользователя при обновлении ключа обычно не практикуется. Поэтому пользователю необходима поддержка его истории ключей, чтобы найти корректный ключ шифрования для извлечения необходимых данных, зашифрованных в прошлом. То же самое справедливо и для сертификатов ключей подписи и старых документов, заверенных цифровой подписью данного пользователя.
Подобно обновлению ключей, управление историями ключей должно выполняться автоматически и полностью управляться PKI. Пользователи обычно не любят работать с системами, где надо самостоятельно выбирать подходящий ключ или, хуже того, искать его перебором всех секретных ключей по очереди до тех пор, пока расшифрованные данные не станут походить на искомое. PKI должна поддерживать все ключи и сертификаты из истории ключей каждого пользователя, выполнять их резервирование и восстановление, а также находить подходящий ключ, который соответствует любым защищенным данным.
В ближайшем будущем пользователи будут иметь огромное количество пар ключей, которые должны будут поддерживаться как криптографические ключи, даже если никогда не будут использоваться. Ключи шифрования со временем требуют обновления, при этом должна поддерживаться история всех ключей, использованных ранее (например, для расшифрования информации многолетней давности или проверки цифровой подписи на старом договоре).
Процесс корректировки пар ключей должен быть "прозрачен" для пользователя. Это означает, что пользователи не должны заботиться об обновлении ключей или получать отказ в обслуживании из-за недействительности своих ключей. Для удовлетворения этого требования пары ключей пользователя должны автоматически обновляться до истечения срока их действия. При обновлении пары ключей подписи предыдущий ключ подписи безопасно уничтожается, тем самым предотвращается несанкционированный доступ к ключу и устраняется необходимость хранения предыдущих ключей.
Другие сервисы
В ряде случаев необходимы и другие сервисы, например, сервисы генерации пар ключей и записи их на смарт-карты, если ключи хранятся на смарт-картах.
Сервисы, базирующиеся на PKI
Предотвращение отказа от участия в обмене информацией
Сервис предотвращения отказа от участия в обмене информацией генерирует электронные доказательства времени подписания или передачи данных и аутентификации источника данных, которые могут использоваться для того, чтобы стороны, отправляющие и принимающие электронные сообщения или документы, не могли отрицать свое участие в информационном обмене в целом или на отдельных его этапах [2]. Считается, что если зафиксированы время участия в информационном обмене и источник информации, то сторона, отправляющая информацию, не сможет отрицать того, что сообщение отправлено ею (доказательство происхождения данных), а сторона, принимающая информацию, не сможет отрицать того, что получила сообщение (доказательство доставки данных). Для краткости этот сервис часто называют сервисом "неотказуемости". Термин "
Самое главное требование для предотвращения отказа от цифровой подписи состоит в том, что ключ подписи должен генерироваться и безопасно храниться под контролем его владельца. Когда пользователи забывают свои пароли или теряют свои ключи подписи, на резервирование или восстановление предыдущей пары ключей подписи не накладывается никаких технических ограничений (в отличие от аналогичной ситуации с парами ключей шифрования сообщений). В таких случаях допускается генерация и дальнейшее использование новых пар ключей подписи.
Авторизация
Сертификаты могут использоваться для подтверждения личности пользователя и задания полномочий, которыми он наделен. В числе полномочий субъекта сертификата может быть, например, право просматривать информацию или разрешение вносить изменения в материал, размещенный на web-сервере.
Нотариальная аутентификация
К сервисам, базирующимся на PKI, также относятся защищенное датирование, поддержка защищенного архива данных и некоторые другие сервисы, все они более подробно описываются в лекции 16.
Лекция 4. Сервисы безопасности PKI и базовые криптографические механизмы
Описываются сервисы идентификации и аутентификации, целостности и конфиденциальности, рассматриваются и сравниваются между собой три класса криптографических механизмов: симметричные и асимметричные алгоритмы и алгоритмы хэширования.
Сервисы безопасности PKI
Сервис безопасности представляет собой совокупность механизмов, процедур и других средств управления для снижения рисков, связанных с угрозой утраты или раскрытия данных [2]. В основном считается, что PKI должна предоставлять три основных
Сервис идентификация и аутентификация обеспечивает аутентификацию участников коммуникации и аутентификацию источника данных.
Сервис целостности предотвращает преднамеренное или случайное несанкционированное изменение данных, в том числе их ввод, уничтожение или модификацию (изменение, сокращение или дополнение), в процессе передачи по сети. Для гарантирования
Сервис конфиденциальности обеспечивает защиту от несанкционированного получения информации: разрешает доступ к
*
*
*
*
К основным
Идентификация и аутентификация
Идентификацией субъекта называется процесс сопоставления введенной им своей характеристики с некоторым идентификатором, хранимым системой. В дальнейшем идентификатор субъекта используется для предоставления субъекту определенного уровня прав и полномочий. Аутентификацией субъекта называется процедура проверки принадлежности идентификатора субъекту. Аутентификация осуществляется на основании того или иного секретного элемента (аутентификатора), которым располагают как субъект, так и информационная система [37].
Обычный способ идентификации - ввод имени пользователя при входе в систему. Для аутентификации пользователей, то есть проверки подлинности их личности, чаще всего используются пароли. При аутентификации источника данных подтверждается подлинность источника отдельной порции данных. Функция не обеспечивает защиты против повторной передачи данных [5].
Аутентификация обычно находит применение в двух основных контекстах: идентификации субъекта и идентификации источника данных.
Идентификация субъекта служит просто для распознавания субъекта независимо от его последующих действий. Очевидно, что одной идентификации недостаточно, поскольку субъект, как правило, не только называет себя, но и желает получить возможность выполнять некоторые действия. На практике результат идентификации субъекта позволяет ему связываться с другими субъектами или выполнять определенные виды активности. Например, в результате идентификации субъект может получить секретный ключ, которым он затем может воспользоваться для расшифрования файла, а также для установления защищенной связи с другим субъектом. Идентификационные данные субъекта, который прошел аутентификацию, также могут быть связаны с некоторыми полномочиями доступа, на основании которых принимаются решения по контролю доступа.
Все приведенные замечания были сделаны вовсе не для того, чтобы преуменьшить важность идентификации субъекта. Защищенная система не может существовать без строгого механизма аутентификации. Аутентификация - это критически важный и необходимый шаг к работе защищенной системы, но это только первый шаг. Аутентификация сама по себе не является конечной целью.
Идентификация источника данных выполняется с намерением стационарно и окончательно связать идентифицированного субъекта с некоторыми определенными данными независимо от его любых дальнейших действий. Такой процесс может обеспечить поддержку сервиса неотказуемости.
По степени приближенности субъекта к среде различают следующие процедуры идентификации: