Для передачи конфиденциальной информации по общедоступным каналам связи используют механизм шифрования. Отправитель зашифровывает сообщение, получая шифртекст, который передается по каналу связи. Получатель, расшифровывая шифртекст, получает исходное сообщение. Использование классических симметричных шифров подразумевает, что у отправителя и получателя до начала сеанса обмена информацией уже имеется общий секретный ключ, без знания которого невозможно получить исходное сообщение. Однако на практике доставка секретных ключей и их обновление надежным и безопасным способом представляет сложную проблему.
Появление методов криптографии с открытым ключом было обусловлено стремлением разрешить эту проблему. Концептуально шифрование с открытым ключом, так же как и ранее, состоит из двух этапов: зашифрование сообщения на стороне отправителя и расшифрование на стороне получателя. Но зашифрование теперь не требует секретного ключа, а происходит на основе общедоступного открытого ключа получателя — ключа зашифрования. Если отправителей много, то все они для зашифрования могут использовть один и тот же открытый ключ получателя. Получатель расшифровывает сообщения на известном только ему закрытом ключе — ключе расшифрования. Математически открытый ключ и закрытый ключ связаны между собой, но из открытого ключа получить закрытый вычислительно не представляется возможным. Из-за использования различных ключей на стороне отправителя и получателя такого рода криптографические алгоритмы называют двухключевыми или асимметричными.
Двухключевые алгоритмы применяются и в других криптографических механизмах. Наиболее важный из них механизм электронной цифровой подписи (ЭЦП). Закрытый ключ ЭЦП используется его владельцем для вычисления подписи под электронным документом. Имея документ и подпись под ним, с помощью открытого ключа любой пользователь может проверить корректность подписи и установить подлинность документа. Однако вычислить подпись под произвольным документом только по открытому ключу без знания закрытого вычислительно невозможно.
Еще одним приложением двухключевых алгоритмов является протокол установления общего секретного ключа Диффи-Хеллмана. Следуя этому протоколу, два удаленных пользователя могут выработать уникальный секретный ключ, не имея предварительно общей секретной информации. Практическая ценность протокола состоит в том, что на его основе возможно распределение ключей в группе удаленных пользователей для организации защищенных виртуальных сетей (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 и другими известными стандартами.
|
|
|