Петров А.А. Комп без-ть
.pdfПротоколы распределения и управления ключевой информацией |
141 |
Схемы типа «точка-точка» обеспечивают прямой обмен ключами между двумя сторо нами.
Централизованные схемы с использованием 1ШС (К Б С используется для распределения сеансовых ключей между двумя сторонами, которые предварительно должны разделить знание своих секретных ключей с К Б С).
Централизованные схемы с использовани ем КТО. Основное отличие от предыдущего варианта заключается в том, что К Т С обеспе чивает перешифровывание полученной ю но-. чевой информации.
Схема типа «точка-точка»
Централизованная схема с использованием КОС
Централизованная схема с использованием КТС
Функции третьей стороны
В зависимости от того, каким образом третья сторона участвует в обмене ключевой инфор мации между двумя сторонами, ее можно клас сифицировать следующим образом;
Рис. 2.5. Модели
распределения ключей
•тНпе: третья сторона (Т ) находится непосредственно между сторона ми ключевого обмена, то есть выполняет функции посредника в режи ме реального времени;
•опНпе: Т может участвовать в режиме реального времени в ходе клю чевого обмена между сторонами, тем не менее стороны могут обмени ваться друг с другом напрямую;
•оШ те: Т используется только для предварительного распределения ключевой информации, а обмен между сторонами в режиме реального времени происходит без участия Т.
Отдельно хотелось бы сказать о роли третьей стороны при использова
нии сертификатов открытых ключей (рис. 2.6):
•служба сертификации (С А ) - обеспечивает распределение и аутентич ность открытых ключей. В случае использования сертификатов откры тых ключей вышеперечисленное обеспечивается за счет связывания имени владельца открытого ключа, самого открытого ключа и номера сертификата и при помощи подписания данной службой этой инфор мации (на практике сертификаты несут в себе гораздо больше инфор мации);
142 Аспекты создания и применения криптографических протоколов
•служба имен - необходима для выделе ния пользователю системы уникального имени;
•служба регистрации - служит для авто ризации доступа пользователей к службе сертификации и для связывания имени пользователя с его комплектом ключевой информации;
•генерация ключей - на данном этапе со здается открытый и секретный ключ поль зователя (дополнительно может созда ваться симметричный ключ или пароль);
•директория сертификатов - содержит сер тификаты всех зарегистрировавшихся пользователей, например в виде базы дан ных, которая доступна только для чтения.
Среди дополнительных функций третьей стороны можно выделить следующие:
Рис. 2.6. Службы, обеспечиваемые третьей стороной при использовании сертификатов
•служба аутентификации пользователей;
•реализация механизмов управления ключами. В рамках СА может быть реализованы процедуры, обеспечивающие безопасное хранение клю чевой информации, контроль времени жизни ключевой информации, а также процедуры аудита, связанные с функционированием СА.
К третьей стороне пользователями могут быть выдвинуты требования, определяющие уровень доверия к ней. В соответствии с данными требова ниями можно выделить следующие уровни доверия к третьей стороне:
•третья сторона знает секретные ключи каждого пользователя;
•третья сторона не знает секретных ключей пользователей, но может со здать аутентификационную информацию, используемую пользовате лем без обнаружения данного факта;
•третья сторона не знает секретных ключей пользователей и не может создать аутентификационную информацию, используемую пользова телем без обнаружения данного факта.
Расширенными функциями третьей стороны являются:
•служба меток времени;
•служба нотариата. Используется для обеспечения невоспроизводимости передаваемой информации; например, может использоваться для проверки ЭЦП;
Протоколы распределения и управления ключевой информацией |
143 |
вслужба депонирования ключей. В ее задачу входит обеспечение до ступности секретных ключей пользователей третьей стороне. На прак тике данная служба может использоваться правоохранительными органами.
Иерархия и время жизни ключей
В зависимости от практического использования ключи могут быть следу
ющих типов:
•главные ключи - находятся на самом высоком уровне иерархии; их бе зопасность обеспечивается только надежным хранением на клю че вых носителях. Обычно эти ключи используются для зашифрования ключей, находящихся на следующем уровне иерархии;
•ключи шифрования ключей - секретные ключи, служащие для зашифро вания других ключей, на которых производится непосредственно шиф рование данных. Используя эти ключи, можно организовать хранение ключей шифрования данных, например на жестком диске компьюте ра, или распределить сеансовый ключ;
•ключи данных - служат непосредственно для защиты данных. Это мо гут быть как ключи генерации ЭЦП , так и ключи шифрования данных или выработки хэш-кода.
Используя на практике иерархическую структуру ключевой информа ции, можно оптимальным образом организовать хранение и применение ключей. Например, при использовании в качестве носителей ключевой информации 1юисЬ тешогу, учитывая ограниченный объем внутренней памяти данного типа устройств, на нем можно хранить только главный ключ и/или ключи шифрования ключей, а ключи работы с данными мо гут быть расположены в зашифрованном виде на жестком диске.
Кроме того, ключи могут быть классифицированы по их криптопериоду.
Криптопериод ключа - это время, в течение которого данный ключ ис пользуется легальным образом.
Понятие криптопериода было введено на практике для того, чтобы:
•ограничить объем информации, доступной криптоаналитику против ника;
•ограничить объем незащищенных данных в случае компрометации ключа, на котором обеспечивается защита этих данных;
•ограничить использование существующих технологий по истечении времени использования;
144______ Аспекты создания и применения криптографических протоколов
•ограничить время, доступное противнику для проведения атак иа ос нове долговременных вычислений (в приложениях, где не требуется долговременная защита).
В зависимости от криптопериода ключи подразделяются на:
•долговременные;
•краткосрочные (сеансовые, применительно к межсетевому обмену дан ными).
Краткосрочные ключи в основном используются для защиты информа ции при межсетевом обмене, в котором они могут применяться как для защиты целой сессии, так и для защиты отдельных пакетов с данными. Долгосрочные ключи необходимы для защиты данных при хранении либо для закрытия сеансовых ключей.
С точки зрения безопасности долговременные ключи должны исполь зоваться для защиты небольшого количества данных (например, других ключей), в то время как краткосрочные ключи в рамках одной сессии мо гут использоваться для защиты большого количества данных.
Управление открытыми ключами
Протоколы, использующие криптографию с открытым ключом, обычно требуют, чтобы участники владели открытыми ключами друг друга, при чем обмен должен происходить с обеспечением аутентификации данных ключей. Хотя, с одной стороны, открытые ключи и не являются конфиден циальными, злоумышленник может произвести подмену открытого ключа пользователя на свой открытый ключ, который будет опубликован от име ни легального пользователя, и получится, что нарушитель сможет, напри мер, иметь доступ к конфиденциальной информации, зашифрованной на открытом ключе данного пользователя. Поэтому при построении схем рас пределения и управления открытыми ключами следует запретить неав торизованное проведение процедур, связанных с генерацией, хранением и опубликованием открытых ключей. Семейство схем распределения клю чей с обеспечением аутентификации, кроме использования экспоненциаль ного распределения сеансовых ключей Диффи-Хэлмана, включает также следующие виды распределения открытых ключей:
•доставка типа «точка-точка» по доверенному каналу. Аутентичные открытые ключи пользователей приходят напрямую от пользовате лей с помощью прямых закрытых каналов (например, фельдъегерская
Протоколы распределения и управления ключевой информацией |
145 |
почта и т.д.). Подобный подход применим только для небольших за крытых организаций и при достаточно редком использования этого способа. Родственным является способ распределения ключей, исполь зующий общедоступные каналы передачи данных с применением до полнительных средств защиты информации, причем для распределе ния открытых ключей критичным является требование целостности
и достоверности передаваемого открытого ключа;
•прямой доступ к файлу открытых ключей. Открытые ключи каждого пользователя хранятся в общедоступном виде в базе данных, при этом обеспечивается гарантия аутентичности открытых ключей. Ф айл от крытых ключей может храниться непосредственно у пользователя, который с определенной периодичностью будет инициировать его об новление;
•использование доверенного сервера в режиме опНпе. Данный сервер обеспечивает передачу необходимых пользователям открытых клю чей, подписанных с применением секретного ключа сервера, причем соответствующий открытый ключ сервера должен быть у пользова теля для проверки полученного открытого ключа другого пользова теля;
• применение доверенного сервера в режиме о Ш т е и сертификатов. В этом режиме каждый пользователь предварительно должен пройти процедуру сертификации открытых ключей на доверенном сервере. Пользователь, желающий получить открытый ключ другого пользова теля, получает его вместе с сертификатом на открытый ключ;
•использование систем с неявной гарантией аутентичности общедос тупных параметров. Такие системы обычно строятся с применением неявным образом сертифицированных открытых ключей, о которых будет сказано позже.
Одним из основополагающих понятий в управлении открытыми ключа ми является дерево аутентификации. Оно обеспечивает доступность от крытых данных с одновременной проверкой аутентичности таковых. Эта проверка осуществляется при помощи связанной хэш-функции и аутенти фикации значения, находящегося в узле. Практическая реализация дерева аутентификации включает в себя:
•аутентификацию открытых ключей (в качестве альтернативы серти фикатам открытых ключей). Дерево аутентификации создается дове ренной стороной и содержит открытые ключи пользователей, позво ляя аутентифицировать больш ое количество подобных ключей;
146 Аспекты создания и применения криптографических протоколов
•доверенную службу меток времени. Создается в рамках служб, реали зуемых деревом аутентификации;
•службу проверки параметров, ассоциированных с пользователем. Обыч но сертификат открытого ключа включает в себя достаточно большое количество дополнительных параметров, которые при использовании сертификата должны проходить проверку.
В качестве примера приведем бинарное дерево, состоящее из узлов и ре бер (рис. 2.7). Узлы бывают трех типов:
• корневой - имеет два ребра: правое
и левое;
• внутренний ~ имеет три ребра: одно со единяет с вышележащим узлом, а два других - правое и левое;
•листья - соединяются только с вышеле жащим узлом.
Корневой узел порождает либо внутренние узлы, либо листья, называемые детьми. Они, в свою очередь, порождают другие узлы, и тог да сами называются родителями.
Приведем пример построения дерева ау тентификации на основе бинарного дерева. Пусть в системе имеется свободная от колли
зий хэш-функция Ь и I общедоступных значений (например, открытые клю чи) У * ... У*. Тогда построение дерева аутентификации будет происходить следующим образом:
1.Обозначим каждое из 1; общедоступных значений как листья.
2.Ребро, выходящее из листа, обозначим как Ь (У 1).
3. Если левое и правое ребро внутреннего узла обозначены как 1ц
и Ь2, то ребро, соединяющее с вышележащим узлом, обозначим как
Ь (11! IIЬ2).
4.Если ребра, подходящие к корневому узлу, обозначены как щ и и2, то корневой узел обозначим как Ь (щЦ и2).
Общедоступное значение У, (рис. 2.8) может быть аутентифицировано, если известны значения Ь (У 3), Ь (У 3), Ь (У 4) и производится последователь ность вычислений, состоящая из:
в значения Ь ^ ) ;
•значения 1ц = Ь(Ь (У ,) |Ь (У 2));
•значения Ь2= Ь (Ь 11|Ь (У 3)).
Протоколы распределения и управления ключевой информацией |
147 |
Завершающей фазой является сравнение Ь(Ь2|Ь (У 4) ) - Я (К - общеизве стное значение, являющееся аутентичным). Если равенство выполняется, то считается, что аутентификация значения У! произведена успешно. На прак тике процедура аутентификации открытых ключей производится следую щим образом:
1. Участник В хочет проверить аутентич |
|
|
|
|
ность открытого ключа У ;, принадле |
|
|
|
|
жащего участнику А и располож енно |
|
|
|
|
го в листе дерева аутентификации, |
П г= Ь (1ч ||Ь (У з))/ \ Ы |
У 4) |
||
при этом зная и доверяя только зна |
|
О |
|
О |
чению К. |
Н 1^(Ь (У 1)||((1(У2) |
) / \ |
и(Уз) |
у4 |
|
|
О |
|
|
2. Участник А предоставляет участнику В |
Р ч |
|
|
|
открытый ключ и все хэш-значения, ле |
И ( У ! ) / |
\ и ( У 2) |
Уз |
|
о |
о |
|
|
|
жащие иа пути от данного листа до кор |
|
|
||
невого узла. |
У | |
у2 |
|
|
|
|
|
|
|
3. Участник В проводит вышеперечислен |
Рис. 2.8. Пример построения |
|||
ные вычисления и приходит к заключе |
дерева аутентификации |
|
||
нию об аутентичности данного откры |
|
|
|
|
того ключа. |
|
|
|
|
Заметим, что если в бинарном дереве аутентификации содержится 1; листьев, то при достаточно большом значении 1: для проведения аутенти фикации необходимо пройти достаточно больш ое количество ребер в де реве. Параметр, обозначающий количество ребер на пути от листа до кор невого узла, назовем длиной пути. Д лина пути аутентификации может быть минимизирована при помощи соответствующего построения дере ва аутентификации. Так, если дерево является сбалансированным (лю бы е пути по которому от листа до корневого узла отличаются не больше, чем на единицу), то длина пути аутентификации будет приблизительно равна 1й(1).
Недостатком данного метода является то, что в случае изменения или добавления значений листьев в дереве придется заново вычислять зна чение корневого узла, и при больш ом их количестве это может привес ти к большим вычислительным затратам. Решение этой проблемы при водит к различным способам построения деревьев аутентификации; в некоторых случаях производится добавление новых узлов в уже су ществующее дерево либо построение новых деревьев. Подробное опи сание моделей построения деревьев аутентификации выходит за рамки данной книги.
148______ Аспекты создания и применения криптографических протоколов
Сертификаты открытых ключей
Сертификаты открытых ключей играют основополагающую роль в совре менной криптографии с открытыми ключами. Они могут найти практи ческое применение в многочисленных системах электронной коммерции и разграничения доступа в ЬШегпе!:, без их использования не обходится ни одно средство защиты информации, рассчитанное иа массовое употребле ние в глобальных сетях передачи данных. Основное назначение сертифи ката заключается в том, чтобы сделать доступным открытый ключ пользо вателя. Наиболее применяемым стандартом на сертификаты открытых ключей является СС1ТТ Х.509.
Сертификатом открытого ключа называется структура данных, состоя щая из раздела данных и раздела подписи. Часть, в которой находятся дан ные, содержит открытую информацию, включающую, как минимум, откры тый ключ и данные, идентифицирующие владельца ключа. Раздел подписи содержит ЭЦП, сгенерированную Центром сертификации на раздел данных
сключом, обеспечивая тем самым аутентификацию владельца ключа. Центр сертификации (С А ) является доверенной третьей стороной, обес
печивающей аутентификацию открытых ключей, содержащихся в серти фикатах. С А имеет собственную пару ключей (открытый/секретный), где секретный используется для подписания сертификатов, а открытый пуб ликуется и используется пользователями для проверки подлинности от крытого ключа, содержащегося в сертификате. При этом обеспечение бе зопасности передачи открытого ключа СА может осуществляться не только криптографическими средствами защиты информации, например при по мощи процедуры персонального обращения в СА, но и посредством серти фикации открытого ключа другим СА.
Обычно сертификат содержит:
•период действия открытого ключа;
•номер и серию ключа;
•информацию о владельце ключа (например, Ф.И .О ., адрес и т.д.);
•информацию о содержащемся в сертификате ключе (например, тип алгоритма, для которого предназначен данный ключ);
•информацию, использующуюся при проведении процедуры проверки ЭЦП (например, идентификатор алгоритма генерации ЭЦП);
•статус открытого ключа.
Создание сертификата открытого ключа начинается с создания пары
ключей, при этом учитывается практическое применение данной пары
Протоколы распределения и управления ключевой информацией |
149 |
и некоторые другие факторы. Процедура генерации ключей может произ
водиться двумя способами:
•СА создает пару ключей. Открытый ключ помещается в сертификат, а соответствующий ему секретный ключ отправляется пользователю с обеспечением аутентификации и конфиденциальности;
•пользователь сам создает пару ключей. При этом открытый ключ пе редается по защищенному каналу в СА.
При использовании второго случая С А может потребовать от пользо вателя демонстрации знания соответствующего секретного ключа. Н а пример, в случае использования открытого ключа для Э Ц П пользователь должен будет подписать случайный запрос от СА, а центр, в свою оче редь, используя открытый ключ пользователя, может проверить данную подпись.
Аннулирование сертификатов
В ходе функционирования схем с открытыми ключами может произойти компрометация секретного ключа, что приведет к необходимости аннули ровать сертификаты с соответствующим открытым ключом. Если откры тый ключ может быть получен в режиме реального времени при помощи доверенного сервера, находящегося в режиме опНпе, то открытый ключ должен быть немедленно уничтожен. Ситуация осложняется в случае ис пользования сертификатов открытых ключей, поскольку трудно удалить или аннулировать копии сертификатов, хранящиеся у большого числа пользователей. На практике существует много причин, по которым следу ет осуществлять процедуры аннулирования сертификатов открытых клю чей, например статуса работника в организации, что приводит к необходи мости изменения процедуры аутентификации для данного пользователя. Чтобы решить проблему аннулирования сертификатов открытых ключей, необходимо:
•ограничение срока действия сертификатов;
•ручное оповещение об аннулировании сертификата. Все пользователи системы информируются об аннулирование сертификата; данный спо соб действенен в небольших сетях;
•иметь общедоступный файл аннулированных ключей. Посредством помещения аннулированных сертификатов в общедоступный файл, при помощи обращения к которому пользователь может проверить действительность сертификата;
150______ Аспекты создания и применения криптографических протоколов
•иметь список аннулированных сертификатов (С К В ). Использование СКВ является одним из методов управления общедоступными файла ми с аннулированными открытыми ключами;
•иметь сертификаты с реализованными функциями, позволяющими производить их аннулирование, например: используя в сертификате флаги аннулирования или указывая время аннулирования.
Механизмы контроля использования ключей
В данном разделе рассматриваются вопросы контроля применения клю чей легальными пользователями. Их можно разделить на два разряда: раз деление и ограничение в использовании ключей и контроль использова ния симметричных ключей.
Информация, которая может быть ассоциирована с криптографическим ключом, разделяется на ограничивающую использование ключа и иа исполь зуемую для оперативных целей и обычно содержит следующие разделы:
•идентификатор владельца ключа;
•срок действия ключа;
•идентификатор ключа (номер ключа, серия ключа);
•информацию, связанную с характером использования ключа;
•спецификации алгоритма;
•система или окружение, в котором данный ключ может использоваться;
•имена участников процесса генерации, регистрации и сертификации данного ключа;
•контрольную сумму.
В простых системах управления ключами информация, ассоциирован ная с ключом, содержит только сведения, использующиеся для авториза ции и зависящие от контекста применения. При этом следует учитывать, что эта информация, в свою очередь, может служить объектом для пося гательств со стороны злоумышленника и в данном случае необходимо обеспечение гарантий неизменности информации для конкретного ключа. Достигается это за счет выработки контрольных сумм или генерации ЭЦП не только на ключ, но и на ассоциированную с ним информацию.
Смысл принципа разделения в использовании ключей в том, что ключ должен употребляться только для тех целей, которые были заложены в про цессе авторизованного создания данного ключа. Ограничение использова ния ключей состоит в недоступности ключа для чтения неавторизованным пользователям либо в недоступности для неавторизованного использова ния. Реализация данных принципов решается как организационно, так