Открытое распределение ключей. Способы распределения ключей с использованием ЦРК на начальном этапе Распределение секретных ключей

Накопление ключей

Генерация ключей

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

Под ключевой информацией понимается совокупность всех действующих в ИС ключей.

Управление ключами – это информационный процесс, включающий 3 элемента:

· генерацию ключей;

· накопление ключей;

· распределение ключей.

Известно, что не стоит использовать неслучайные ключи. В серьезных ИС используют специальные программные и аппаратные методы генерации случайных ключей. Как правило, используется датчики случайных и псевдослучайных чисел. Степень случайности должна быть высокой. Идеальными генераторами являются устройства на основе натуральных случайных процессов. Физический датчик случайных чисел встроен в ядро процессора Pentium 3.

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

Накопление ключей – организация их учета, хранения и удаления. Так как ключей много, то они хранятся в БД ключевой информации. Сами ключи должны храниться в БД в зашифрованном виде.

Ключ, зашифровывающий ключевую информацию, называется мастер- ключом.

Желательно, чтобы пользователь знал его наизусть. Можно мастер-ключи разбивать на части и хранить одну часть на магнитной карточке, а другую – в памяти компьютера.

Важным условием хранения ключевой информации является периодическое обновление ключей и мастер-ключей. В особо ответственных случаях обновлять можно ежедневно.

Распределение ключей – самый ответственный процесс в управлении ключами. К нему предъявляются два требования:

· Оперативность и точность распределения.

· Скрытность распределения ключей.

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

Распределение ключей в симметричных криптосистемах может проходить следующими способами:

1) можно через курьера доставить ключ, но так как ключи должны обновляться, то доставлять дорого и неэффективно

2) получение двумя пользователя общего ключа от центрального органа (Центр Распределении Ключей – ЦРК). Передаваемый ключ шифруется ключом ЦРК. Недостаток: в ЦРК может появиться злоумышленник. Можно, чтобы в виде дерева организовать хранение ключей в ЦРК.

3) Третий способ предложили ученые Диффи и Хеллман – протокол обмена ключами по открытому каналу. Протокол – это последовательность шагов, которые принимают 2 или большее число сторон для совместного решения задачи. Все шаги следуют в порядке очередности.



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

Протокол обмена ключами по открытому каналу Диффи-Хеллмана.

Цель: двум пользователям А и В получить общий секретный ключ.

1. Пользователь А генерирует случайное число Х.

2. Пользователь В генерирует случайное число У.

3. А вычисляет: La=a^x mod m

4. B вычисляет: Lb=b^y mod m

5. A посылает пользователю В La.

6. В посылает пользователю А Lb.

7. A вычисляет Kab =(Lb)^x mod m=(a^y mod m)^x mod m=a^xy mod m.

8. B вычисляет Kab =(La)^y mod m=(a^x mod m)^y mod m=a^xy mod m.

Таким образом, оба пользователя теперь имеют одинаковый секретный ключ Kab.

Управление открытыми ключами может быть организовано с помощью оперативной или автономной службы каталогов. Основными проблемами являются аутентичность, целостность и достоверность. Аутентичность – убедиться, что это ключ именно этого пользователя.

Во всех случаях обмена ключами должна быть обеспечена подлинность сеанса связи, которая обеспечивается с помощью:

1. механизма «запрос-ответ» (процедура «рукопожатие» = установка виртуального канала);

2. механизма отметки времени.

Задача распределения ключей сводится к построению протокола распределения, обеспечивающего:

1. Взаимное подтверждение подлинности участников сеанса.

2. Подтверждение достоверности сеанса механизмом «запрос-ответ» или отметки времени.

3. Использование минимального числа сообщений при обмене ключами.

4. Возможность исключения злоупотребления со стороны ЦРК (вплоть до отказа от его услуг).

Целесообразно отделить процедуру подтверждения подлинности партнеров от собственно процедуры распределения ключей.

Метод достижения одновременно аутентичности и целостности при распределении открытых ключей заключается в использовании сертификатов.

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

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

Например: сертификат открытого ключа для пользователя А, обозначаемый С А, содержит отметку времени Т, идентификатор Id A , открытый ключ K A , зашифрованный секретным ключом ЦРК К црк:

С А = Е К црк (Т, Id A , K A)

Отметка времени Т используется для подтверждения актуальности сертификата и тем самым предотвращает повторы прежних сертификатов. Секретный ключ К црк известен только менеджеру ЦРК, а открытый ключ ЦРК известен всем абонентам

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

Центр сертификации создает сертификаты пользователей путем ЭЦП с использованием своего секретного ключа и подписывает набор следующих данных:

1. Полное имя пользователя (номер, пароль).

2. Открытый ключ пользователя.

3. Время действия сертификата.

4. Конкретные операции, для которых этот ключ может быть использован (идентификация, шифрование или и то и другое).

Аутентификация Kerberos

Для решения проблемы аутентификации, которая базировалась бы на шифровании, в Массачусетском технологическом институте в 1985 году была разработана система защиты информационных систем от вторжений, с специальным сервисом выдачи билетов. Она была названа Kerberos по имени трехглавого пса Цербера, охранявшего ворота в ад в греческой мифологии.

Такое название было выбрано, потому что в аутентификации участвовали три стороны: пользователь, сервер, к которому желает получить доступ пользователь, и сервер аутентификации, или центр распределения ключей (ЦРК) . Специальный сервер аутентификации предлагался в качестве доверенной третьей стороны, услугами которой могут пользоваться другие серверы и клиенты информационной системы.

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

  1. получение пользователем билета TGT на билеты;
  2. получение пользователем билета на доступ к серверу ;
  3. аутентификация пользователя сервером;
  4. аутентификация сервера пользователем.

Рассмотрим более подробно аутентификацию в системе Kerberos (рис. ), которая выполняется за четыре шага:

1) Сеанс начинается с получения пользователем А билета для получения билета - Ticket-Granting Ticket (TGT) от ЦРК .

2) Когда пользователь желает получить доступ к некоторому серверу В, то сначала отправляет запрос на билет для доступа к этому серверу вместе со своим билетом TGT в ЦРК . TGT содержит информацию о сеансе регистрации пользователя А и позволяет ЦРК оперировать, не поддерживая постоянно информацию о сеансе регистрации каждого пользователя.

3) В ответ на свой запрос пользователь А получает зашифрованный сеансовый ключ S A и билет на доступ к серверу В. Сеансовый ключ зашифрован секретным ключом, известным только пользователю А и ЦРК . Билет на доступ к серверу В содержит тот же самый сеансовый ключ, однако он шифруется секретным ключом, известным только серверу В и ЦРК .

4) Аутентификация происходит тогда, когда пользователь А и сервер доказывают знание своего секретного ключа. Пользователь шифрует метку времени и отправляет ее на сервер В. Сервер расшифровывает метку, увеличивает ее значение на единицу, вновь зашифровывает и отправляет шифротекст пользователю А. Пользователь А расшифровывает ответ, и если в нем содержится значение метки времени с приращением, то аутентификация завершается успешно, в противном случае - неудачно. После взаимной аутентификации сеансовый ключ может использоваться для шифрования сообщений, которыми обмениваются пользователь А и сервер В. Очевидно, что стороны должны доверять ЦРК , поскольку он хранит копии всех секретных ключей.

Лекция 6: Управление криптографическими ключами. Криптографические протоколы.

Вопросы:

1. Криптографические протоколы.

2. Распределение секретных ключей.

3. Распределение открытых ключей.

4. Распределение секретных ключей с помощью системы с открытым ключом.

1 Криптографические протоколы.

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

В повседневной жизни неформальные протоколы используются практически повсюду:

· при игре в карты;

· при заказе товаров по телефону.

Эти протоколы вырабатываются в течение длительного времени и работают достаточно надежно.

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

Для облегчения демонстрации работы протоколов используют несколько участников:

· Алиса – первый участник.

· Боб – второй участник.

· Кэрол – участник в трехсторонних протоколах.

· Дэйв – четырехсторонний протокол.

· Ева – перехватчик сообщений.

· Мэллори – активный взломщик.

· Трэнт – доверенный посредник.

· Уолтер –надзиратель (стережет Алису и Боба).

· Пэгги – претендент (пытается что-то доказать).

· Виктор – верификатор (проверяет Пэгги).

Различают:

· самодостаточные протоколы ;

· протоколы с посредником ;

· протоколы с арбитром.

В самодостаточных протоколах честность сторон гарантируется самим протоколом. Для выполнения протокола не нужна третья сторона. Отсутствие споров обеспечивает конструкция протокола. Это лучший тип протокола, но, к сожалению, такие протоколы применимы не для всякой ситуации.

Алиса Боб

Протоколы с посредником.

Посредником называют незаинтересованную третью сторону, которой доверено довести до конца исполнение протокола. «Незаинтересованность» означает, что посреднику безразличны как результат исполнения протокола, так и любой его участник. Все участники протокола воспринимают слова посредника как истину, все его действия признают правильными.

В обыденной жизни посредником может быть адвокат, агенство, банк и т.д. С компьютерными сетями дело обстоит сложнее.


Протоколы с арбитром.


Арбитр – посредник особого типа. Это незаинтересованная и доверенная третья сторона. В отличие от посредника он не обязательно участвует в исполнении каждого протокола, а только в том случае, когда между сторонами возникают разногласия.

В качестве примера можно назвать судей.

Известны арбитражные компьютерные протоколы. Эти протоколы опираются на предположение о честности сторон. Однако если кто-нибудь подозревает мошенничество, третья доверенная сторона может разоблачить обман на основе существующего массива данных. Кроме того, хороший арбитражный протокол позволяет арбитру установить личность злоумышленника. Таким образом, арбитражные протоколы не предотвращают , а обнаруживают мошенничество . В данном случае неотвратимость обнаружения выступает в качестве предупредительной меры, обескураживающей злоумышленника.

Организация связи с помощью симметричной криптографии.

Модель симметричной криптосистемы:

1. Алиса и Боб выбирают криптосистему.

2. Алиса и Боб выбирают ключ.

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

4. Алиса посылает шифротекст Бобу.

5. Боб расшифровывает шифротекст, используя ключ и получая открытый текст.

Ева, находясь между Алисой и Бобом, может подслушать передачу только на этапе 4, тогда ей придется подвергнуть шифртекст криптоанализу. Это пассивная атака с использованием только шифротекста.

Ева может подслушать этапы 1 и 2. В хорошей криптосистеме безопасность зависит от знания ключа. Поэтому в криптографии так важно управление ключами.

Активный взломщик Мэллори может пойти дальше. На этапе 4 он может нарушить линию связи. Либо перехватить сообщение Алисы и заменить его собственным. У Боба нет никакой возможности распознать, что сообщение отправлено не Алисой.

Алиса или Боб могут передать копию ключа Еве и т.д.

Подводя итоги, перечислим недостатки симметричных криптосистем :

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

2. При получении ключа возможно создание ложных сообщений.

3. Если каждая пара пользователей сети будет использовать отдельный ключ, общее число ключей быстро возрастает с ростом числа пользователей .

n пользователей - n (n – 1) / 2 – ключей,

10 пользователей - 45 ключей,

100 пользователей - 4950 ключей и т.д.

Организация связи с помощью криптографии с открытым ключом.

1. Алиса и Боб договариваются использовать криптосистему с открытым ключом.

2. Боб посылает Алисе свой открытый ключ.

3. Алиса шифрует свое сообщение, используя открытый ключ Боба, и отсылает его Бобу.

4. Боб расшифровывает сообщение своим закрытым ключом.

Таким образом устраняется болезненная для симметричных криптосистем проблема распределения ключей.


2. Распределение секретных ключей.

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

Поэтому надежность любой симметричной криптографической системы значительно зависит от используемой системы распределения ключей (т.е. средств доставки ключей двум сторонам).

Для двух сторон А и В распределение ключей можно организовать различными способами:

1. Ключ выбран стороной А и физически доставлен В.

2. Ключ выбирает третья сторона и физически доставляет А и В.

3. Одна из сторон передает новый ключ в зашифрованном виде, используя старый ключ.

4. Третья сторона С доставляет ключ А и В по защищенным каналам связи, т.е. используется некий Центр распределения ключей (ЦРК).

Схема (протокол) распределения ключей может быть централизованной и распределенной (с посредником и самодостаточной).

Рассмотрим п.4.

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

Главных ключей требуется N (по числу пользователей). Их распределяют некриптографическим способом (физической доставкой адресату).

Сценарий распределения ключей (Централизованная схема).

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

При этом пользователь А имеет секретный ключ К a , известный только ему и ЦРК, а пользователь В имеет К b (К a и К b –главные ключи, К s – одноразовый сеансовый ключ).

Обмен информацией происходит следующим образом:

1. Пользователь А посылает запрос в ЦРК на получение сеансового ключа для защиты связи с В.

Посылаемый запрос должен включать:

- информацию, позволяющую однозначно определить А и В (ID A , ID В );

- некоторый идентификатор N 1 , уникальный для каждого запроса и называемый оказией . Оказией может быть время, счетчик, случайное число.

2. ЦРК отвечает на запрос пользователя А, шифруя ответ ключом К a (главным А). Единственным пользователем, кто сможет прочесть ответ, является А (следовательно, А уверен, что сообщение пришло от ЦРК).

Сообщение-ответ включает следующие элементы:

· Предназначенные для А :

S (для связи А с В).

- Запрос с оказией N 1 , чтобы пользователь А мог сопоставить ответ с запросом.

Таким образом, А может удостовериться что его запрос не был изменен на пути в ЦРК, а оказия не позволяет перепутать ответ на данный запрос с ответом на предыдущие запросы.

· Предназначенные для В .

Одноразовый сеансовый ключ К s .

Идентификатор пользователя А - ID A (например, сетевой адрес А).

Оба элемента шифруются с помощью ключа К В (главного ключа ЦРК и В). Предполагается, что они должны быть впоследствии отправлены В, чтобы установить соединение и идентифицировать А.

E Ka [ K S ||Запрос|| N 1 || E Kb (K S , ID A )]

3. Пользователь А сохраняет свой сеансовый ключ и пересылает стороне В информацию от ЦРК, предназначенную для В.

Пользователь В получает К s и знает, что полученная информация пришла от ЦРК (так как она зашифрована К В, который знают только В и ЦРК).

Сеансовый ключ, таким образом, есть у А и В. Но перед обменом данными желательно выполнить следующее:

4. Используя полученный сеансовый ключ К s пользователь В посылает пользователю А новую оказию N 2 .

5. С помощью К s пользователь А в ответ возвращает f (N 2 ). Это необходимо, чтобы убедить В в том, что первоначально полученное им сообщение не было воспроизведено злоумышленником.

Таким образом, обеспечивается не только передача ключа, но и аутентификация (шаги 4 и 5).


Необязательно возлагать функцию распределения ключей на один ЦРК. Более выгодно использовать некоторую иерархию ЦРК. Чем чаще меняются сеансовые ключи, тем более они надежны, но распределение сеансовых ключей задерживает начало сеанса обмена данными и увеличивает загрузку сети.

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

Децентрализованная схема распределения ключей.

Сеансовый ключ может быть определен в результате следующей последовательности действий:


1) А посылает запрос на получение К s + оказия N 1 .

2) В отвечает, шифруя ответ с использованием общего у А и В главного ключа Е МК m .

3) А возвращает f (N 2 ), шифруя с помощью К s .

3. Распределение открытых ключей.

Одной из главных сфер применения схемы шифрования с открытым ключом является решение проблемы распределения ключей. Имеется две совершенно различные области использования шифрования с открытым ключом в этой сфере:

1. распределение открытых ключей;

2. использование шифрования с открытым ключом для распределения секретных ключей.

Для распределения открытых ключей было предложено несколько методов. Фактически их можно сгруппировать в следующие общие классы:

1. публичное объявление;

2. публично доступный каталог;

4. сертификаты открытых ключей.

1)Публичное объявление открытых ключей (Неконтролируемое распределение) .

Любая участвующая в обмене данными сторона может предоставить свой открытый ключ любой другой стороне или передать ключ по средствам коммуникаций для всех вообще - неконтролируемое распределение открытых ключей.

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

2)Публично доступный каталог (Централизованная схема).

Более высокую степень защиты можно обеспечить с помощью публично доступного динамического каталога открытых ключей. За сопровождение и распространение публичного каталога должен отвечать некоторый надежный центр или надежная организация. Такая схема должна включать следующие элементы:

1. Уполномоченный объект, поддерживающий каталог с записями вида {имя, открытый ключ} для каждого из участников.

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

3. Любой участник может заменить существующий ключ новым в любой момент с использованием средств аутентификации. (Возможно, личный ключ был каким-то образом скомпрометирован либо с помощью него уже передано много информации.)

4. Периодически публикуется весь каталог или обновления к нему.

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

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

Типичный сценарий представлен ниже. Сценарий предполагает наличие некоторого ЦРК, уполномоченного поддерживать динамический каталог открытых ключей всех участников обмена данными. Кроме того, каждому из участников достоверно известен открытый ключ центра, но только центр знает соответствующий личный ключ. При этом выполняются следующие действия:

(1) Инициатор А посылает сообщение с меткой даты/времени (оказией N 1 ) авторитетному источнику открытых ключей с запросом о текущем открытом ключе участника В.

(2) Авторитетный источник отвечает сообщением, которое шифруется с использованием личного ключа авторитетного источника KR auth . Это сообщение инициатор А может дешифровать, используя открытый ключ авторитетного источника. Поэтому отправитель А может быть уверенным в том, что сообщение исходит от авторитетного источника. Это сообщение должно включать следующее:

· Открытый ключ участника В , KU b ;

· Оригинальный запрос , чтобы сторона А имела возможность убедиться, что запрос не был изменен на пути к авторитетному источнику.


· Оригинальную метку даты/времени (оказия N 1 ), чтобы отправитель А мог удостовериться, что это ответ именно на данный запрос.

(3) Инициатор А сохраняет открытый ключ участника В и использует его для шифрования сообщения, направляемого получателю В и содержащего идентификатор отправителя А (ID A ) и оказию N 1 .

(4) (5) Респондент В получает открытый ключ участника А от авторитетного источника точно таким же способом, каким отправитель А получил открытый ключ получателя В.

К этому моменту открытые ключи оказываются доставленными участникам А и В, так что теперь А и В могут начать защищенный обмен данными . Но перед этим желательно выполнить два следующих дополнительных действия .

(6) Респондент В посылает сообщение инициатору А, шифрованное с помощью KU A и содержащее оказию отправителя А (N 1 ), а также новую оказию, сгенерированную участником В (N 2 ). Присутствие N 1 в сообщении (6) убеждает участника А в том, что отправителем полученного сообщения был В.

(7) Инициатор А возвращает N 2 шифрованное с помощью открытого ключа участника В, чтобы тот мог убедиться в том, что отправителем ответа является А.

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

4) Сертификаты открытых ключей .

Альтернативный подход предложил Конфельдер. Он основан на сертификатах.

Каждый сертификат содержит открытый ключ и другую информацию, создается авторитетным источником сертификатов и выдается участнику.

Требования к системе :

1. Любой участник должен иметь возможность прочитать сертификат, чтобы определить имя и открытый ключ владельца сертификата.

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

4. Деннинг добавил следующее требование – любой участник должен иметь возможность проверить срок действия сертификата.


Рис. Обмен сертификатами открытых ключей.

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

АИС пересылает сертификаты С А и С В, содержащие 1) время действия сертификата; 2)идентификатор владельца; 3)открытый ключ владельца сертификата. Сертификаты зашифрованы с помощью личного ключа авторитетного источника.

А может переслать сертификат любому участнику.

Получатель использует открытый ключ KU auth АИС, чтобы прочитать сертификат. Это дает гарантию, что сертификат пришел именно от него.

D KU [ C A ]= D KU [ E KR [ T , ID A , KU A ]]=(T , ID A , KU )

4. Распределение секретных ключей с помощью системы с открытым ключом.

Некоторые пользователи предпочтут использовать шифрование с открытым ключом только в исключительных случаях из-за того, что в условиях применения шифрования скорость передачи данных оказывается относительно медленной. Поэтому шифрование с открытым ключом приходится рассматривать скорее, как средство распределения секретных ключей, используемых для традиционного шифрования.

1)Схема Меркла (самодостаточный протокол)

Если инициатор А намерен обменяться данными с пользователем В, для этого предполагается следующая процедура:


1. Сторона А генерирует пару открытый/личный ключи { KU A , KR A } и передает сообщение стороне В, содержащее KU A и идентификатор отправителя А, ID A .

2. Получатель В генерирует секретный ключ KS и передает этот ключ инициатору сообщения А зашифрованным с помощью открытого ключа инициатора А.

3. Пользователь А вычисляет D KRa [ E KUa [ K S ]], чтобы восстановить секретный ключ. Поскольку только участник А может дешифровать это сообщение, только участники обмена А и В будут знать значение K S .

Теперь обе стороны, А и В, могут использовать связь, защищенную традиционным шифрованием с сеансовым ключом K S . По окончанию обмена данными и А, и В выбрасывают K S . Несмотря на простоту, этот протокол весьма привлекателен.

Достоинство : Никаких ключей не существует перед началом связи и никаких ключей не остается после завершения связи. Поэтому риск компрометации минимален . В то же время связь оказывается защищенной от подслушивания.

Недостаток : Этот протокол уязвим в отношении активных атак . Если противник Е имеет возможность внедрения в канал связи, то он может скомпрометировать связь без того, чтобы обнаруженным, следуюшим образом.

1. Участник А генерирует пару открытый/личный ключи { KU A , KR A KU A и идентификатор участника А, ID A .

2. Противник Е перехватывает сообщение, создает собственную пару открытый/личный ключи { KU Е , KR Е } и передает сообщение адресату В, содержащее KU Е || ID A .

3. В генерирует секретный ключ K S и передает E KUe [ K S ].

4. Противник Е перехватывает это сообщение и узнает K S , вычисляя D KRe [ E KUe [ K S ]].

5. Противник Е передает участнику А сообщение E KU а [ K S ].

В результате оба участника, А и В, будут знать K S , но не будут подозревать, что K S также известен и противнику Е. Таким образом, этот простой протокол оказывается полезным только в том случае, когда единственной возможной угрозой является пассивной перехват сообщений .

2)Распределение секретных ключей с обеспечением конфиденциальности и аутентификации.

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


(1) Сторона А использует открытый ключ стороны В, чтобы переслать стороне В шифрованное сообщение, содержащее идентификатор участника А (ID A ) и оказию (N 1 ), используемую для идентификации данной конкретной транзакции.

(2) Пользователь В дешифрует (1) с использованием KR В . Пользователь В посылает сообщение пользователю А, зашифрованное с помощью KU А и содержащее полученную от него оказию (N 1 ) и новую оказию (N 2 ). Ввиду того, что только участник В мог дешифровать сообщение (1), присутствие N 1 в сообщении (2) убеждает участника А в том, что респондентом является сторона В.

( 3) Сторона А возвращает N 2 , шифруя сообщение открытым ключом стороны В, чтобы гарантировать ей, что его респондентом является сторона А.

(4) Участник А выбирает секретный ключ K S и посылает участнику В сообщение M = E KUb [ E KRa [ K S ]]. Шифрование этого сообщения открытым ключом стороны В гарантирует, что только участник В сможет прочитать его, а шифрование личным ключом участника А – что только участник А смог послать его.

(5) Сторона В вычисляет В KU а [ E KRb [ K S ]], чтобы восстановить секретный ключ.

При обмене секретными ключами эта схема гарантирует как конфиденциальность, так и аутентификацию.

3) Гибридная схема (трехуровневая).

Представляет гибридный подход, применяемый на мэйнфреймах IBM . Эта схема с посредником предполагает участие центра распределения ключей (ЦРК), с которым каждый пользователь использует свой главный секретный ключ, и распределение секретных сеансовых ключей, шифруемых главным ключом. Схема шифрования с открытым ключом служит для распределения главных ключей . В основе такого трехуровневого подхода служит следующая логика:

· Скорость выполнения процедуры .

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

· Обратная совместимость .

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

Добавление уровня шифрования с открытым ключом обеспечивает защищенное и эффективное средство распределения главных ключей. Это является преимуществом в конфигурации, когда один ЦРК обслуживает большое число пользователей, находящихся на значительном расстоянии друг от друга.

5. Обмен ключами по схеме Диффи-Хеллмана.

Первый из опубликованных алгоритмов на основе открытых ключей появился в работе Диффи и Хеллмана, в которой было определено само понятие криптографии с открытым ключом. Обычно этот алгоритм называют обменом ключами по схеме Диффи-Хеллмана . Данная технология обмена ключами реализована в целом ряде коммерческих продуктов.

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

Криптостойкость алгоритма Диффи-Хеллмана опирается на трудность вычисления дискретных логарифмов . Формально дискретный логарифм можно определить следующим образом. Сначала определяется первообразный корень простого числа p – число а, степени которого порождают все целые числа от 1 до p -1. Это означает, что если а является первообразным корнем простого числа p , то все числа

a mod p, a 2 mod p,…, a p-1 mod p

должны быть разными и представлять все целые числа от 1 до p -1 в некоторой перестановке.

Обмен ключами по схеме Диффи-Хеллмана иллюстрирован на рисунке. В этой схеме имеются два открытых для всех числа: простое число q и целое число а, являющееся первообразным корнем q . Предположим, пользователи А и В намерены обменяться ключами.

Пользователь А выбирает случайное целое число Х А < q и вычисляет Y A =а XA mod q . Точно так же пользователь В независимо выбирает случайное целое число X B < q и вычисляет Y B = a XB mod q . Каждая сторона сохраняет значение Х в тайне и делает значение Y свободно другой стороне. Пользователь А вычисляет ключ по формуле К = (Y B ) XA mod q , а пользователь В по формуле К = (Y А ) X В mod q . Эти две формулы вычисления дают одинаковые результаты .

Итак, обе стороны обменялись секретными ключами. А поскольку при этом Х А и Х В были только в личном использовании и поэтому сохранились в тайне, противнику придется работать только с q , a , Х А,Х B . Таким образом, ему придется вычислять дискретный логарифм, чтобы определит ключ. Например, чтобы определить ключ.

После этого он сможет вычислить ключ К точно так же, как это делает пользователь В.

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


Противник знает: q , а, Y А , Y В. Чтобы определить ключ, необходимо вычислить дискретный логарифм.

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

  1. Ключ может быть создан А и физически передан B .
  2. Третья сторона может создать ключ и физически передать его А и B .
  3. А и В имеют предварительно созданный и недолго используемый ключ, один участник может передать новый ключ другому, применив для шифрования старый ключ.
  4. Если А и В каждый имеют безопасное соединение с третьим участником C , C может передать ключ по этому безопасному каналу А и B .

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

Количество требуемых ключей зависит от числа участников, которые должны взаимодействовать. Если выполняется шифрование на сетевом или IP-уровне, то ключ необходим для каждой пары хостов в сети. Таким образом, если есть N хостов, то необходимое число ключей /2 . Если шифрование выполняется на прикладном уровне, то ключ нужен для каждой пары прикладных процессов, которых гораздо больше, чем хостов.

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

Поэтому в больших автоматизированных системах широко применяются различные варианты четвертого способа. В этой схеме предполагается существование так называемого центра распределения ключей (Key Destribution Centre - KDC ), который отвечает за распределение ключей для хостов, процессов и приложений. Каждый участник должен разделять уникальный ключ с KDC .

Использование центра распределения ключей основано на использовании иерархии ключей. Как минимум используется два типа ключей: мастер-ключи и ключи сессии .

Для обеспечения конфиденциальной связи между конечными системами используется временный ключ, называемый ключом сессии . Обычно ключ сессии используется для шифрования транспортного соединения и затем уничтожается. Каждый ключ сессии должен быть получен по сети из центра распределения ключей . Ключи сессии передаются в зашифрованном виде, используя мастер-ключ , который разделяется между центром распределения ключей и конечной системой.

Эти мастер-ключи также должны распределяться некоторым безопасным способом. Однако при этом существенно уменьшается количество ключей, требующих ручного распределения. Если существует N участников, которые хотят устанавливать соединения, то в каждый момент времени необходимо /2 ключей сессии . Но требуется только N

Другой подход, достаточно часто используемый для хранения ключевой информации, состоит в шифровании ключей и хранении их в зашифрованном виде. Кроме этого, данный подход часто используют для распределения ключевой информации в криптографических сетях.

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

Иерархия ключевой информации может включать множество уровней, однако, наиболее часто выделяют:

· главные ключи (мастер-ключи),

· ключи шифрования ключей,

· рабочие ключи (сеансовые).

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

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

Значение мастер- ключа фиксируется на длительное время (до нескольких недель или месяцев). Сеансовые ключи меняются намного чаще, например, при построении криптозащищенных туннелей их можно менять каждые 10-15 минут, либо по результатам шифрования заданного объема трафика (например, 1 Мб).

Распределение ключей является очень ответственным процессом в управлении ключами. Одним из основных требований к реализации этого процесса является сокрытие распределяемой ключевой информации.

Задача распределения ключей сводится к построению протокола распределения ключей, обеспечивающего:

1) взаимное подтверждение подлинности участников сеанса;

2) подтверждение достоверности сеанса для защиты от атак методом

повторов;

3) использование минимального числа сообщений при обмене ключами.

Вообще говоря, выделяют два подхода к распределению ключевой информации в компьютерной сети:

1. Распределение ключевой информации с использованием одного

либо нескольких центров распределения ключей.

2. Прямой обмен сеансовыми ключами между пользователями.

Распределение ключевой информации с использованием центров распределения ключей

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

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


Данный подход реализован в протоколе Нидхема-Шредера и базирующемся на нем протоколе аутентификации Kerberos. Распределение ключевой информацией и разграничение доступа основывается в данных протоколах на выдаче мандатов центром распределения ключей. Использование данных протоколов позволяет безопасно распределить сеансовые ключи даже в случае взаимного недоверия двух взаимодействующих сторон.

Прямой обмен сеансовыми ключами между пользователями

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

Для решения проблемы выработки общего секрета без раскрытия его злоумышленником существует два основных способа:

· использование криптосистемы с открытым ключом для шифрования;

· использование протокола открытого распространения ключей Диффи-Хеллмана.

Реализация первого способа не должна вызывать вопросов. Рассмотрим более подробно реализацию второго способа.

Протокол Диффи-Хеллмана

Протокол Диффи-Хеллмана был первым алгоритмом работы с открытыми ключами (1976 г.). Безопасность данного протокола основана на трудности вычисления дискретных логарифмов .

Пусть пользователи A и B хотят выработать общий секрет. Для этого они выполняют следующие шаги.

Стороны A и B договариваются об используемом модуле N , а также о примитивном элементе g , степени которого образуют числа от 1 до N -1.

1. Числа N и g являются открытыми элементами протокола.

2. Пользователи A и B независимо друг от друга выбирают собственные секретные ключи СК A и CK B (случайные большие целые числа, меньшие N , хранящиеся в секрете).

3. Пользователи A и B вычисляют открытые ключи ОК А и OK B на основании соответствующих секретных ключей по следующим формулам:

4. Стороны A и B обмениваются между собой значениями открытых ключей по незащищенному каналу.

5. Пользователи A и B формируют общий секрет K по формулам:

Пользователь A:

K = (OK B) CK A (mod N) = (g CK B) CK A (mod N) = g CK B . CK A (mod N).

Пользователь B:

K = (OK A) CK B (mod N) = (g CK A) CK B (mod N) = g CK A . CK B (mod N).

Ключ K может использоваться в качестве общего секретного ключа (мастер-ключа) в симметричной криптосистеме.

Пример 6.2.

Возьмем модуль N = 47 и примитивный элемент g = 23. Пусть пользователи A и B выбрали свои секретные ключи СК А = 12, СК В = 33. Тогда,

В данном случае общий секрет будет иметь вид:

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

Протокол Диффи - Хеллмана нашел эффективное применение в протоколе SKIP управления ключами. Данный протокол используется при построении криптозащищенных туннелей в семействе продуктов ЗАСТАВА.

Каждая криптографическая система работает с криптографическими ключами. Если в системе не реализован механизм управления ключевыми данными, то завладеть ею злоумышленнику не предстоит труда. Управление ключами подразумевает такие процедуры, как генерацию, хранение и распределение ключей. Последняя процедура — самая ответственная.

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

Система распределения ключей должна соблюдать следующие требования:

  • целостность и конфиденциальность распределяемых ключей
  • оперативность и точность распределения

При распределении ключей есть 2 подхода:

  • использования центров распределения ключей
  • прямой обмен ключами между абонентами

При первом подходе, центру распределения ключей известно какие ключи и кому были пересланы. При втором подходе, нужно удостовериться в подлинности субъектов сети. Задача распределения ключей сводится к созданию , который реализует:

  • подтверждения подлинности участников сеанса
  • подтвержения достоверности сеанса
  • реализация минимального числа передачи сообщений при обмене ключами

Явным примером реализации центров распределения ключами является система Kerberos. Здесь мы рассмотрим второй подход. Для этого используют:

  • асимметричную криптосистему с открытым ключом для защиты секретного ключа симметричной криптосистемы
  • системы открытого распределения ключей Диффи-Хеллмана

Реализация комбинированной криптосистемы управления распределением

Главным аспектом асимметричных криптосистем с открытым ключом является их потенциально высокая безопасность. Не нужно передавать ключи, убеждаться в их подлинности. Однако такая системы проигрывает в скорости быстродействия относительно симметричных криптосистем с секретным ключом.

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

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

Такой подход также называют схемой электронного цифрового конверта . Рассмотрим на примере. Пользователь А хочет реализовать гибридный метод шифрования для защищенной транспортировки пакета М пользователю В. Алгоритм таков:

  • Действия пользователя А:
    • Создает (любым способом) сеансовый секретный ключ K s , который нужен в симметричном шифровании для зашифровывания пакетов
    • Шифрует пакет М симметричным алгоритмом на сеансовом секретном ключе K s
    • Зашифровывает асимметричным алгоритмом секретный сеансовый ключ K s на открытом ключе K B пользователя В
    • Отправляет по открытому каналу пользователю В зашифрованный пакет М вместе с зашифрованным сеансовым ключом K s
  • Действия пользователя В(при получении электроннго цифрового конверта):
    • расшифровать асимметричным алгоритмом сеансовый ключ K s с помощью своего секретного ключа K B
    • Расшифровать симметричным алгоритмом пакет М с помощью расшифрованного ключа K s
    • Действия пользователей показаны на рис.1

Рисунок — 1

При реализации цифрового конверта минусы асимметричного и симметричного алгоритмов компенсируются из-за:

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

Если длина сеансового ключа меньше длины асимметричного ключа, то злоумышленник будет реализовывать атаку на сеансовый ключ. В таблице 1 показано соотношение длин ключей.

Таблица 1 — Длины ключей для асимметричных и симметричных систем при одинаковой криптостойкости

Метод распределения ключей Диффи-Хеллмана

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

Рисунок — 2

Пользователи А и В при обмене данными генерируют свои случайные секретные ключи K A и K B (ключи — случайные большие целые числа). ЗАтем пользователь А и В вычисляет открытые ключи:

  • J A,B = g K A,B (mod N)

N, g — большие целые простые числа. Эти числа не секретные, и известны всем пользователям системы. Затем пользователи А и В реализуют обмен ключами J по незащищенному каналу и реализуют их для вычисления общего сессионного ключа J:

  • пользователь А: J = (J B) K A (mod N) = (g K B) K A (mod N)
  • пользователь B: J` = (J A) K B (mod N) = (g K A) K B (mod N)
  • J = J`, так как (g K B) K A = (g K A) K B

Благодаря реализации однонаправленной функции операция вычисления открытого ключа необратима. Алгоритм Диффи-Хеллмана разрешает шифровать информацию при каждом сеансе связи на новых ключах. Это повышает безопасность, так как не нужно хранить секреты на носителях. Также такой алгоритм разрешает реализовывать метод комплексной защиты конфиденциальности и аутентичности передаваемых данных.

Метод комплексной защиты конфиденциальности и аутентичности передаваемых данных

Для одновременной защиты конфиденциальности и целостности информации целесообразно реализовывать и шифрование в комплексе. Алгоритм работает следующим образом:

  • пользователь А подписывает пакет М с помощью своего секретного ключа K A , реализуя стандартный алгоритм цифровой подписи
  • пользователь А вычисляет общий секретный ключ K по принципу Диффи-Хеллмана, из своего открытого ключа и открытого ключа пользователя В
  • пользователь А зашифровывает пакет М на общем секретном ключе К, с помощью симметричного шифрования
  • пользователь В получив пакет М, вычисляет общий ключ К и расшифровывает пакет М
  • пользователь В проверяет подпись расшифрованного пакета М с помощью открытого ключа пользователя K A

На основе алгоритма Диффи-Хеллмана работают протоколы управления криптоключами SKIP, IKE.