Управление открытыми ключами

Протоколы, использующие криптографию с открытым ключом, обычно требуют, чтобы участники владели открытыми ключами друг друга, причем обмен должен происходить с обеспечением аутентификации данных ключей. Хотя, с одной стороны, открытые ключи и не являются конфиденциальными, злоумышленник может произвести подмену открытого ключа пользователя на свой открытый ключ, который будет опубликован от имени легального пользователя, и получится, что нарушитель сможет, например, иметь доступ к конфиденциальной информации, зашифрованной на открытом ключе данного пользователя. Поэтому при построении схем распределения и управления открытыми ключами следует запретить неавторизованное проведение процедур, связанных с генерацией, хранением и опубликованием открытых ключей. Семейство схем распределения ключей с обеспечением аутентификации, кроме использования экспоненциального распределения сеансовых ключей Диффи-Хэлмана, включает также следующие виды распределения открытых ключей:
• доставка типа «точка-точка» по доверенному каналу. Аутентичные открытые ключи пользователей приходят напрямую от пользователей с помощью прямых закрытых каналов (например, фельдъегерская почта и т.д.). Подобный подход применим только для небольших закрытых организаций и при достаточно редком использования этого способа. Родственным является способ распределения ключей, использующий общедоступные каналы передачи данных с применением дополнительных средств защиты информации, причем для распределения открытых ключей критичным является требование целостности и достоверности передаваемого открытого ключа;
• прямой доступ к файлу открытых ключей. Открытые ключи каждого пользователя хранятся в общедоступном виде в базе данных, при этом обеспечивается гарантия аутентичности открытых ключей. Файл открытых ключей может храниться непосредственно у пользователя, который с определенной периодичностью будет инициировать его обновление;
• использование доверенного сервера в режиме online. Данный сервер обеспечивает передачу необходимых пользователям открытых ключей, подписанных с применением секретного ключа сервера, причем соответствующий открытый ключ сервера должен быть у пользователя для проверки полученного открытого ключа другого пользователя;
• применение доверенного сервера в режиме offline и сертификатов. В этом режиме каждый пользователь предварительно должен пройти процедуру сертификации открытых ключей на доверенном сервере. Пользователь, желающий получить открытый ключ другого пользователя, получает его вместе с сертификатом на открытый ключ;
• использование систем с неявной гарантией аутентичности общедоступных параметров. Такие системы обычно строятся с применением неявным образом сертифицированных открытых ключей, о которых будет сказано позже.
Одним из основополагающих понятий в управлении открытыми ключами является дерево аутентификации. Оно обеспечивает доступность открытых данных с одновременной проверкой аутентичности таковых. Эта проверка осуществляется при помощи связанной хэш-функции и аутентификации значения, находящегося в узле. Практическая реализация дерева аутентификации включает в себя:
• аутентификацию открытых ключей (в качестве альтернативы сертификатам открытых ключей). Дерево аутентификации создается доверенной стороной и содержит открытые ключи пользователей, позволяя аутентифицировать большое количество подобных ключей;
• доверенную службу меток времени. Создается в рамках служб, реализуемых деревом аутентификации;
• службу проверки параметров, ассоциированных с пользователем. Обычно сертификат открытого ключа включает в себя достаточно большое количество дополнительных параметров, которые при использовании сертификата должны проходить проверку.
В качестве примера приведем бинарное дерево, состоящее из узлов и ребер . Узлы бывают трех типов:
• корневой - имеет два ребра: правое и левое;
• внутренний - имеет три ребра: одно соединяет с вышележащим узлом, а два других - правое и левое;
• листья - соединяются только с вышележащим узлом.
Корневой узел порождает либо внутренние узлы, либо листья, называемые детьми. Они, в свою очередь, порождают другие узлы, и тогда сами называются родителями.
Заметим, что если в бинарном дереве аутентификации содержится t листьев, то при достаточно большом значении t для проведения аутентификации необходимо пройти достаточно большое количество ребер в дереве. Параметр, обозначающий количество ребер на пути от листа до корневого узла, назовем длиной пути. Длина пути аутентификации может быть минимизирована при помощи соответствующего построения дерева аутентификации. Так, если дерево является сбалансированным (любые пути по которому от листа до корневого узла отличаются не больше, чем на единицу), то длина пути аутентификации будет приблизительно равна lg(t).
Недостатком данного метода является то, что в случае изменения или добавления значений листьев в дереве придется заново вычислять значение корневого узла, и при большом их количестве это может привести к большим вычислительным затратам. Решение этой проблемы приводит к различным способам построения деревьев аутентификации; в некоторых случаях производится добавление новых узлов в уже существующее дерево либо построение новых деревьев. Подробное описание моделей построения деревьев аутентификации выходит за рамки данной книги.

Тэги:

Рекомендуем почитать