Раздел 1. Вопрос 13. Инфраструктура открытых ключей, удостоверяющий центр.
Для передачи конфиденциальной информации по общедоступным каналам связи используют механизм шифрования. Отправитель зашифровывает сообщение, получая шифртекст, который передается по каналу связи. Получатель, расшифровывая шифртекст, получает исходное сообщение. Использование классических симметричных шифров подразумевает, что у отправителя и получателя до начала сеанса обмена информацией уже имеется общий секретный ключ, без знания которого невозможно получить исходное сообщение. Однако на практике доставка секретных ключей и их обновление надежным и безопасным способом представляет сложную проблему.
Появление методов криптографии с открытым ключом было обусловлено стремлением разрешить эту проблему. Концептуально шифрование с открытым ключом, так же как и ранее, состоит из двух этапов: зашифрование сообщения на стороне отправителя и расшифрование на стороне получателя. Но зашифрование теперь не требует секретного ключа, а происходит на основе общедоступного открытого ключа получателя — ключа зашифрования. Если отправителей много, то все они для зашифрования могут использовть один и тот же открытый ключ получателя. Получатель расшифровывает сообщения на известном только ему закрытом ключе — ключе расшифрования. Математически открытый ключ и закрытый ключ связаны между собой, но из открытого ключа получить закрытый вычислительно не представляется возможным. Из-за использования различных ключей на стороне отправителя и получателя такого рода криптографические алгоритмы называют двухключевыми или асимметричными.
Двухключевые алгоритмы применяются и в других криптографических механизмах. Наиболее важный из них механизм электронной цифровой подписи (ЭЦП). Закрытый ключ ЭЦП используется его владельцем для вычисления подписи под электронным документом. Имея документ и подпись под ним, с помощью открытого ключа любой пользователь может проверить корректность подписи и установить подлинность документа. Однако вычислить подпись под произвольным документом только по открытому ключу без знания закрытого вычислительно невозможно.
Еще одним приложением двухключевых алгоритмов является протокол установления общего секретного ключа Диффи-Хеллмана. Следуя этому протоколу, два удаленных пользователя могут выработать уникальный секретный ключ, не имея предварительно общей секретной информации. Практическая ценность протокола состоит в том, что на его основе возможно распределение ключей в группе удаленных пользователей для организации защищенных виртуальных сетей (VPN-сетей).
Применение двухключевых алгоритмов на практике наталкивается на проблему установления подлинности (аутентичности) открытых ключей. Открытый ключ как набор двоичных знаков обычно не несет в себе информации о владельце парного закрытого ключа. Кроме того, открытый ключ не является секретом и может передаваться по общедоступным каналам связи. Поэтому перед пользователем открытого ключа возникает задача: как установить, кем этот ключ был создан, и не был ли этот ключ кем-то изменен?
Использование подложных открытых ключей может привести к самым серьезным негативным последствиям. Подмена открытого ключа зашифрования ведет к утечке конфиденциальной информации. Применение подложного открытого ключа при проверке ЭЦП ведет к принятию поддельного документа за легитимный. Реализация протокола Диффи-Хеллмана с подложным открытым ключом ведет к выработке пользователем секретного ключа, который будет доступен неизвестному злоумышленнику. Поэтому установление подлинности открытого ключа при использовании двухключевых криптографических алгоритмов является критически важной задачей.
Наиболее распространенный подход к решению этой задачи — сертификация открытых ключей. Сертификация заключается в том, что некоторый удостоверяющий центр (УЦ), которому доверяют все пользователи, гарантирует подлинность открытых ключей. Для этого УЦ для каждого открытого ключа выпускает сертификат. Сертификат содержит открытый ключ пользователя и идентифицирующую этого пользователя информацию (а также другую служебную информацию). Сертификат заверяется ЭЦП удостоверяющего центра. Получаемый объект называется сертификатом открытого ключа пользователя.
Выпуская сертификат открытого ключа некоторого пользователя, УЦ подтверждает и берет на себя ответственность за то, что он установил принадлежность данного открытого ключа именно указанному в сертификате пользователю.
В подлинности сертификата и, как следствие, в подлинности открытого ключа пользователи убеждаются, проверяя подпись УЦ. Для такой проверки необходим открытый ключ подписи самого центра. При этом сертификат открытого ключа УЦ выпускает сам УЦ – это так называемый корневой сертификат. Корневой сертификат передается каждому пользователю, доверяющему УЦ, надежным и защищенным способом, исключающим возможность подмены сертификата. Доверие к сертификатам открытых ключей пользователей полностью основывается на доверии к корневому сертификату УЦ.
Деятельность УЦ сводится не только к выпуску сертификатов. Сертификат открытого ключа всегда выпускается на определенный срок, после которого открытый ключ считается недействительным. В реальности же срок действия открытого ключа может быть уменьшен, а сертификат отозван, например по причине компрометации или утери парного закрытого ключа. Отозванные сертификаты помещаются в специальный общедоступный список — список отозванных сертификатов (СОС). Любой пользователь должен иметь возможность проверить текущий статус используемого им сертификата, обратившись к СОС. Также как и любой владелец сертификата должен иметь возможность изменить его статус по своему желанию — приостановить, возобновить или отозвать. Открытый ключ может использоваться и после формального прекращения своего действия. Например, отозванные открытые ключи могут понадобиться для проверки ЭЦП под архивными документами. Таким образом, УЦ должен сопровождать весь жизненный цикл выпускаемых им сертификатов открытых ключей, включая поддержку в актуальном состоянии информации о статусе сертификатов.
Сложность и стоимость реализации и эксплуатации единого центра, отвечающего за все операции, может оказаться слишком высокой. Кроме того, это не всегда удобно, например из-за требований безопасности. Поэтому в современных инфокоммуникационных системах полноценная реализация концепции сертификации открытых ключей производится развертыванием инфраструктуры открытых ключей (или PKI — public key infrastructure — в англоязычной терминологии).
PKI представляет собой определенную совокупность программно-аппаратных средств, организационно-технических мероприятий и персонала. Основная задача, решаемая PKI, — распространение доверия к отрытым ключам. Наличие такой инфраструктуры, к которой может обратиться любой пользователь, позволяет в распределенных системах безопасным образом применять механизмы двухключевой криптографии. Поэтому PKI является необходимой составляющей современных систем информационной безопасности.
ОАО «ИнфоТеКС» производит линейку серверного (ViPNet KC & CA, ViPNet Registration Point, ViPNet Publication Service) и согласованного клиентского ПО (ViPNet Client, ViPNet CryptoService и ViPNet CSP), позволяющего развернуть и использовать собственную PKI, осуществить интеграцию со сторонними PKI и пользоваться услугами PKI. Все ПО разработано с учетом положений Федерального закона № 1 от 10.01.2002 «Об электронной цифровой подписи». Инфраструктура и обслуживаемые сертификаты полностью соответствуют стандарту ITU-T X.509 версии 3, спецификациям IETF RFC 3280 и отраслевым де-факто стандартам PKCS. Применяемые криптографические алгоритмы реализованы в соответствии с ГОСТ 28147–89, ГОСТ P 34.11–94, ГОСТ P 34.10–94 и ГОСТ P 34.10–2001 и другими известными стандартами.
Главным компонентом любой PKI является удостоверяющий центр. Он заверяет подлинность открытых ключей пользователей, выпуская сертификаты открытых ключей, и осуществляет сопровождение выпущенных сертификатов в течение их жизненного цикла. Удостоверяющий центр реализуется на базе ПО ViPNet KC & CA (Удостоверяющий и ключевой центр, УКЦ).
ViPNet KC & CA реализует полный набор функций по управлению сертификатами открытых ключей:
• формирование пар открытый-закрытый ключ по запросам пользователей;
• изготовление сертификатов открытых ключей;
• приостановление и возобновление действия сертификатов, отзыв (аннулирование) сертификатов;
• ведение реестра (справочника) выпущенных сертификатов и списка отозванных сертификатов.
Для организации взаимодействия различных информационных систем и распространения в них доверия часто требуется совместная работа различных PKI. Например, это требуется при межкорпоративном или межведомственном информационном обмене. Обычно используется одна архитектура или комбинация нескольких архитектур взаимодействия PKI: иерархическая (подчинение нескольких УЦ вышестоящему головному УЦ), сетевая (объединение одноранговых инфраструктур с перекрестной (кросс-) сертификацией головных УЦ), мостовая (кросс-сертификация каждого УЦ с одним выделенным УЦ-мостом). УЦ на базе ViPNet KC & CA поддерживает все перечисленные архитектуры, выполняя для внешних УЦ роли:
• головного УЦ (обработка запросов от внешних УЦ и выпуск для них сертификатов);
• подчиненного УЦ (создание запросов во внешние УЦ и получение от них сертификатов);
• мостового УЦ (выпуск кросс-сертификатов по запросам из внешних УЦ и создание запросов на кросс-сертификаты во внешние УЦ).
В крупных территориально распределенных PKI взаимодействие УЦ с пользователями обычно производится через пункты регистрации. Пункт регистрации, выступая в качестве филиала УЦ, проводит идентификацию пользователей, генерирует для них ключевые пары или устанавливает факт владения закрытым ключом по предъявленному открытому ключу, после чего формирует и передает запрос на сертификацию в УЦ. Также через пункт регистрации в УЦ передаются запросы пользователей на изменение статуса уже выпущенных сертификатов. Результаты обработки запросов из УЦ пользователи тоже получают в пункте регистрации.
Сеть пунктов регистрации позволяет создать более эффективную PKI. Для обеспечения высокого уровня безопасности операций по выпуску и обслуживанию сертификатов к УЦ предъявляются специальные требования по организационной, физической и информационной безопасности. Перенос части функций УЦ в пункт регистрации позволяет снизить эти требования, что уменьшает расходы на создание УЦ. Пункты регистрации снижают нагрузку на УЦ по обработке запросов пользователей, вплоть до полного исключения непосредственного взаимодействия пользователей и УЦ. Это также ведет к снижению эксплуатационных расходов на содержание УЦ. Кроме того, чем разветвленнее сеть пунктов регистрации, тем ниже расходы пользователей, связанные с процедурой регистрации.
Для развертывания пункта регистрации используется компонент, входящий в состав ПО ViPNet Registration Point (Пункт регистрации).
Одна из функций УЦ заключается в ведении открытого справочника, куда помещаются выпущенные сертификаты и списки отозванных сертификатов. Пользователи, обращаясь к этому справочнику, могут получить как непосредственно интересующие их сертификаты, так и информацию о статусе сертификатов. Если УЦ сам обслуживает справочник, то при большом числе запросов к нему нагрузка на УЦ может оказаться очень высокой. Вместе с тем, открытый справочник не является секретным и может размещаться вне УЦ, при этом подлинность информации в справочнике можно установить проверкой электронной цифровой подписи УЦ под соответствующими элементами справочника.
Для снижения нагрузки на УЦ, уменьшения расходов на его создание и эксплуатацию открытый справочник часто размещают на внешних по отношению к УЦ хранилищах (серверах), доступных по общедоступным протоколам. Использование общедоступных протоколов, кроме того, позволяет обеспечить совместимость с клиентскими приложениями различных производителей, а также облегчить взаимодействие с внешними УЦ при интеграции в масштабных PKI.
Публикация выпущенных УЦ сертификатов, кросс-сертификатов и списков отозванных сертификатов в хранилищах, а также загрузка списков отозванных сертификатов внешних УЦ из хранилищ организуются с помощью ПО ViPNet Publication Service (Сервис публикации). Поддерживаемые стандартные хранилища включают LDAP-серверы и WEB-серверы с загрузкой данных по FTP-протоколу.
Эффективное использование преимуществ и особенностей PKI, созданной на базе ПО ViPNet KC & CA, ViPNet Registration Point, ViPNet Publication Service, достигается с помощью клиентского ПО ViPNet CryptoService (Криптосервис) и ViPNet Client (Клиент).
ViPNet Cryptoservice предоставляет пользователю возможность управлять своими криптографическими ключами: генерировать пары открытый-закрытый ключ, записывать ключи в защищенные контейнеры и внешние электронные носители и считывать ключи из них, обновлять сертификаты. Обмен ключевой и служебной информацией с компонентами PKI, созданными на базе ПО ViPNet, полностью автоматизирован и производится криптографически защищенным способом.
Ключи и сертификаты пользователя используются криптографическими функциями, реализованными в криптопровайдере ViPNet CSP, входящим в состав ПО ViPNet Cryptoservice. Эти функции могут быть встроены в прикладное ПО сторонних производителей для создания различных защищенных информационных систем и сервисов (почтовые и банковские системы, системы юридически значимого документооборота, защиты информационных потоков и т.п.). Поставляемый криптопровайдер поддерживает стандартный интерфейс Microsoft Crypto API, высокоуровневый COM- и низкоуровневый C-интерфейсы.
В части использования PKI ПО ViPNet Client предоставляет возможности, аналогичные ViPNet Cryptoservice.
Компоненты ViPNet KC & CA, ViPNet NCC и ViPNet CryptoService, являющиеся составной частью средства криптографической защиты информации «Домен-К», а также используемые при необходимости компоненты ViPNet Registration Point и ViPNet Publication Service образуют в совокупности программно-аппаратный комплекс Удостоверяющий центр корпоративного уровня ViPNet (УЦКУ).
УЦКУ ViPNet может применяться для организации и использования PKI практически любой архитектуры и степени сложности. На УЦКУ ViPNet в двух модификациях получены сертификаты соответствия ФСБ России №СФ/128-1777 и №СФ/128-1778 по требованиям к информационной безопасности удостоверяющих центров классов КС2 и КС3.