криптосистемa

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

Эта проблема становится тем более сложной, чем больше удаленных друг от друга пользователей желают обмениваться между собою зашифрованными сообщениями. Так, для сети из N пользователей необходимо иметь  одновременно в действии N*(N-1)/2 различных ключей. Тогда уже при N=1000 количество необходимых ключей будет близко к полумиллиону. Поскольку из соображений безопасности секретные ключи для шифрования должны меняться как можно чаще, то изготовление, упаковка и рассылка их с надежными курьерами из некоего абсолютно надежного центра (как это привычно делают в действующих системах «закрытой связи») становится задачей совершенно нереальной.

Решение проблемы было предложено в виде технологии открытого распределения ключей (Public Key Infrastructure). Суть этой технологии состоит в том, что пользователи самостоятельно и независимо с помощью датчиков случайных чисел генерируют свои индивидуальные ключи, которые хранят в секрете от всех на своем индивидуальном носителе: дискете, специальной магнитной или процессорной карточке, таблетке энергонезависимой памяти Touch Memory (фирмы Dallas Semiconductor) и т. п. Затем каждый пользователь из своего индивидуального ключа вычисляет с помощью известной процедуры свой так называемый «открытый ключ», то есть блок информации, который он делает общедоступным для всех, с кем хотел бы обмениваться конфиденциальными сообщениями.

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

В качестве стандарта для единого каталога ключей может использоваться протокол Х.500.

Открытые ключи, заверенные ЦС, называют сертификатами. Сертификат открытого ключа — это объект, связывающий пользователя с его ключом. Сертификат используется при проверке цифровой подписи.

Обычно сертификаты хранятся как объекты службы каталогов или на специально выделенных для этого серверах. В случае компрометации ключа или изменения данных самого сертификата сертификаты должны отзываться. Для этого их заносят в список отозванных сертификатов (Certificate Revocation List, CRL), поддерживаемый ЦС.

Х.509 — это стандарт, описывающий формат и синтаксис сертификатов. Различные протоколы, использующие защиту данных и аутентификацию, например SET, SSL, S-HTTP и другие, применяют сертификаты Х.509. Первая версия стандарта Х.509 была опубликована в 1988 г. Текущая версия — третья.

Главная задача сертификата — установить соответствие между пользователем и его открытым ключом. В состав полей сертификата стандарта Х.509, в частности, входят:

  • номер версии стандарта Х.509;
  • номер сертификата;
  • идентификатор алгоритма ЭЦП;
  • идентификатор сертификационной службы, выдавшей сертификат;
  • идентификатор владельца сертификата;
  • срок действия сертификата;
  • сертифицируемый открытый ключ.

Наибольшее распространение в мире технология открытого распределения ключей для шифрования конфиденциальных сообщений получила в корпоративных телекоммуникационных сетях и общедоступных сетях обмена электронными данными, прежде всего, в сети Интернет. Американский программист Филипп Циммерман (Zimmerman) даже написал общедоступный пакет программ для обмена сообщениями по электронной почте, получивший название PGP (Pretty Good Privacy). Основная идея Циммермана состояла в создании качественной, надежной программы шифрования для электронной почты, базирующейся на использовании наиболее сильных криптоалгоритмов, опубликованных в то время (на рубеже 80-90-х годов) в открытой литературе. Пакет PGP в первых его версиях вместе с исходными текстами программ был распространен в 1991 г. по сетям электронной почты практически во всем мире и был использован многими программистами в разработ
ках средств защиты информации как неплохой, а главное, бесплатный материал.

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

Предполагая возможное вмешательство правительства США в процесс развития подобных технологий в будущем, Циммерман вместе с программой версии 1.0 распространял и исходные тексты программы, положив начало традиции, поддерживаемой вплоть до настоящего времени. Это быстро привело к тому, что за улучшение программы взялись многочисленные добровольцы, и через несколько лет, по признанию самого Циммермана, в пакете PGP практически не осталось строк кода, написанных им самим.

Поскольку вплоть до последнего времени (до 17 декабря 1999 г.) по американским законам криптографическое программное обеспечение не разрешалось экспортировать без разрешения госдепартамента, а к 1993 г. пакет уже был распространен по всей планете, правительство США определило, что имело место нарушение закона. Было начато расследование, и только благодаря действиям группы юридической защиты программиста, созданной правозащитным движением, а также компании, развернутой в прессе в его поддержку, следствие по делу PGP было закрыто.

После этого Циммерман основал собственную компанию PGP для коммерческой раскрутки ставшего столь популярным продукта. К лету 1997 г. был готов самостоятельный продукт PGP Personal Privacy 5.0. В этой версии программа приобрела графический интерфейс и могла работать в операционных средах систем DOS, UNIX, Windows 95, Windows NT и Apple Macintosh.

В декабре 1997 г. компания была куплена Network Associates. Изменила свой статус и программа. Начиная с шестой версии, появившейся в сентябре 1998 г., PGP в качестве клиента входит в состав большого криптографического пакета PGP Enterprise Security, разработанного специально для защиты корпораций. При этом компания Network Associates сохранила распространяемую бесплатно версию PGPfreeware, хотя и лишенную множества дополнительных функций, но по-прежнему свободно доступную в Интернете.

Помимо протокола PGP существуют и другие системы управления ключами. Достаточно популярным является протокол Kerberos, разработанный в Массачусетском технологическом институте. Протокол реализует несколько функций. Одна из них — хранение личных ключей в защищенной БД. Ключ известен только Kerberos и его владельцу. Еще одна функция — доверенный посредник между двумя абонентами, желающими обменяться секретными ключами. Kerberos также предоставляет услуги аутентификации и рассылки ключей.

Известен также протокол SKIP (Simple Key Management for Internet Protocols). Это протокол управления ключами, разработанный компанией SUN Microsystems. SKIP легко реализуется. В нем описан способ вычисления ключа на основе сертификатов открытых ключей. Однако использование SKIP налагает определенные ограничения на выбор алгоритмов шифрования и хэширования. Протокол SKIP заявлен как необязательный компонент спецификации IPSec (Internet Protocol Security).

Кроме перечисленных протоколов для управления ключами используются алгоритмы Diffie-Hellman и KEA (Key Exchange Algorithm).