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

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

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

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

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

1) использованием одного или нескольких центров распределения ключей;

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

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

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

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

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

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



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

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

· подтверждение достоверности сеанса механизмом запроса-ответа или отметки времени;

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

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

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

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

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

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

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

Рассмотрим протоколы для симметричных криптосистем с секретными ключами и для асимметричных криптосистем с открытыми ключами. Вызывающий (исходный объект) обозначается через А, а вызываемый (объект назначения) – через В. Участники сеанса А и В имеют уникальные идентификаторы Id A и Id B соответственно.

5.6.4. Протокол аутентификации и распределения
ключей для симметричных криптосистем

Рассмотрим в качестве примера протокол аутентификации и распределения ключей Kerberos (по-русски – Цербер). Протокол Kerberos спроектирован для работы в сетях TCP/IP и предполагает участие в аутентификации и распределении ключей третьей доверенной стороны. Kerberos обеспечивает надежную аутентификацию в сети, разрешая законному пользователю доступ к различным машинам в сети. Протокол Kerberos основывается на симметричных шифрах (реализован алгоритм DES, хотя возможно применение и других симметричных криптоалгоритмов). Kerberos вырабатывает отдельный секретный ключ для каждого субъекта сети, и знание такого секретного ключа равносильно доказательству подлинности субъекта сети.

Основной протокол Kerberos является вариантом протокола аутентификации и распределения ключей Нидхема-Шредера. В версии 5 основного протокола Kerberos участвуют две взаимодействующие стороны А и В и доверенный сервер KS (Kerberos Server). Стороны А и В, каждая по отдельности, разделяют свой секретный ключ с сервером KS. Доверенный сервер KS выполняет роль центра распределения ключей ЦРК.

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

Сторона А инициирует фазу распределения ключей, посылая по сети серверу KS идентификаторы Id A и Id B:

(1) A ® KS: Id A, Id B.

Сервер KS генерирует сообщение с временной отметкой Т, сроком действия L, случайным сеансовым ключом К и идентификатором Id A . Он шифрует это сообщение секретным ключом, который разделяет со стороной В.

Затем сервер KS берет временную отметку Т, срок действия L, сеансовый ключ К, идентификатор Id B стороны В и шифрует все это секретным ключом, который разделяет со стороной А. Оба эти зашифрованные сообщения он отправляет стороне А:

(2) KS ® A: E A (T, L, K, Id B), E B (T, L, K, Id A).

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

Затем сторона А генерирует сообщение со своим идентификатором Id A и отметкой времени Т, шифрует его сеансовым ключом К и отправляет стороне В. Кроме того, А отправляет для В сообщение от KS, зашифрованное ключом стороны В:

(3) A ® B: E K (Id A, T), E B (T, L, K, Id A).

Только сторона В может расшифровать сообщения (3). Сторона В получает отметку времени Т, срок действия L, сеансовый ключ К и идентификатор Id A . Затем сторона В расшифровывает сеансовым ключом К вторую часть сообщения (3). Совпадение значений Т и Id A в двух частях сообщения подтверждают подлинность А по отношению к В.

Для взаимного подтверждения подлинности сторона В создает сообщение, состоящее из отметки времени Т плюс 1, шифрует его ключом К и отправляет стороне A:

(4) B ® A: E K (T+1).

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

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

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

Система Kerberos имеет структуру типа клиент-сервер и состоит из клиентских частей С, установленных на все машины сети (рабочие станции пользователей и серверы), и Kerberos-сервера KS, располагающегося на каком-либо (не обязательно выделенном) компьютере.

Kerberos-сервер, в свою очередь, можно разделить на две части: сервер идентификации AS (Authentication Server) и сервер выдачи разрешений TGS (Ticket Granting Server). Информационными ресурсами, необходимыми клиентам С, управляет сервер информационных ресурсов RS (см. следующий рис.).

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


Рис. 41. Схема и шаги протокола Kerberos.

Обозначения:

KS – сервер системы Kerberos;

AS – сервер идентификации;

TGS – сервер выдачи разрешений;

RS – сервер информационных ресурсов;

C – клиент системы Kerberos;

1: C ® AS: –- запрос разрешить обратиться к TGS;

2: AS ® C: – разрешение обратиться к TGS;

3: C ® TGS: – запрос на допуск к RS;

4: TGS ® C: – разрешение на допуск к RS;

5: C ® RS: – запрос на получение информационного ресурса от RS;

6: RS ® C: – подтверждение подлинности сервера RS и предоставление

информационного ресурса.

Укрупненно процесс идентификации и аутентификации пользователя в системе Kerberos можно списать следующим образом. Пользователь (клиент) С, желая получить доступ к ресурсу сети, направляет запрос серверу идентификации AS. Последний идентифицирует пользователя с помощью его имени и пароля и выдает разрешение на доступ к серверу выдачи разрешений TGS, который в свою очередь, по запросу клиента С разрешает использование необходимых ресурсов сети с помощью целевого сервера информационных ресурсов RS.

Данная модель взаимодействия клиента с серверами может функционировать только при условии обеспечения конфиденциальности и целостности передаваемой управляющей информации. Без строгого обеспечения информационной безопасности клиент не может отправлять серверам AS, TGS и RS свои запросы и получать разрешения на доступ к обслуживанию в сети. Чтобы избежать возможности перехвата и несанкционированного использования информации, Kerberos применяет при передаче любой управляющей информации в сети сложную систему многократного шифрования с использованием комплекса секретных ключей (секретный ключ клиента, секретный ключ сервера, секретные сеансовые ключи, клиент-сервер).

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

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

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

С А = (Т, Id А, К А).

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

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

Вызывающий объект А инициирует стадию установления ключа, запрашивая у ЦРК сертификат своего открытого ключа и открытого ключа участника В:

(1) А ® ЦРК: Id A , Id B , ´Вышлите сертификаты ключей А и В´. Здесь Id A и Id B – уникальные идентификаторы соответственно участников А и В.

Менеджер ЦРК отвечает сообщением

(2) ЦРК ® А: (Т, Id A , К А), (Т, Id B , К В).

Участник А, используя открытый ключ ЦРК К ЦРК, расшифровывает ответ ЦРК, проверяет оба сертификата. Идентификатор Id B убеждает А, что личность вызываемого участника правильно зафиксирована в ЦРК и К В – действительно открытый ключ участника В, поскольку оба зашифрованы ключом k ЦРК.

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

Следующий шаг протокола включает установление связи А с В:

(3) А ® В: С А, (Т), (r 1).

Здесь С А – сертификат открытого ключа пользователя А;

(Т) – отметка времени, зашифрованная секретным ключом участника А и являющаяся подписью участника А, поскольку никто другой не может создать такую подпись;

r 1 – случайное число, генерируемое А и используемое для обмена с В в ходе процедуры подлинности.

Если сертификат С А и подпись А верны, то участник В уверен, что сообщение пришло от А. Часть сообщения (r 1) может расшифровать только В, поскольку никто другой не знает секретного ключа k В, соответствующего открытому ключу К В. Участник В расшифровывает значение числа r 1 и, чтобы подтвердить свою подлинность, посылает участнику А сообщение

(4) В ® А: (r 1).

Участник А восстанавливает значение r 1 , расшифровывая это сообщение с использованием своего секретного ключа k А. Если это ожидаемое значение r 1 , то А получает подтверждение, что вызываемый участник действительно В.

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

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

Для решения этой проблемы применяют два способа:

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

секретного ключа симметричной криптосистемы;

2) использование системы открытого распределения ключей Диффи–Хеллмана

(см.раздел 5.4.2).

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

Алгоритмы, лежащие в основе криптосистем с открытым ключом, имеют следующие

недостатки:

· генерация новых секретных и открытых ключей основана на генерации новых больших простых чисел, а проверка простоты чисел занимает много процессорного времени;

· процедуры шифрования и расшифрования, связанные с возведением в степень многозначного числа, достаточно громоздки.

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

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

1. Создать (например, сгенерировать случайным образом) симметричный ключ, называемый в этом методе сеансовым ключом К S .

2. Зашифровать сообщение М на сеансовом ключе К S .

3. Зашифровать сеансовый ключ К S на открытом ключе К В пользователя В.

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

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

5. Расшифровать на своем секретном ключе k В сеансовый ключ К S .

6. С помощью полученного сеансового ключа К S расшифровать и прочитать сообщение М.

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

В следующей таблице приведены распространенные длины ключей симметричных и асимметричных криптосистем, для которых трудность атаки полного перебора примерно равна трудности факторизации соответствующих модулей асимметричных криптосистем (Schneier B. Applied Cryptography. – John Wiley & Sons, Inc., 1996.– 758 p).

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

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

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

Упpавление ключами - инфоpмационный пpоцесс, включающий в себя тpи элемента:

* генеpацию ключей;

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

* pаспpеделение ключей.

Рассмотpим, как они должны быть pеализованы для того, чтобы обеспечить безопасность ключевой инфоpмации в ИС.

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

В самом начале pазговоpа о кpиптогpафических методах было сказано, что не стоит использовать неслучайные ключи с целью легкости их запоминания. В сеpьезных ИС используются специальные аппаpатные и пpогpаммные методы генеpации случайных ключей. Как пpавило используют датчики ПСЧ. Однако степень случайности их генеpации должна быть достаточно высоким. Идеальным генеpатоpами являются устpойства на основе "натуpальных" случайных пpоцессов. Напpимеp, появились сеpийные обpазцы генеpации ключей на основе белого pадиошума . Дpугим случайным математическим объектом являются десятичные знаки иppациональных чисел, напpимеp или е , котоpые вычисляются с помощью стандаpтных математических методов.

В ИС со сpедними тpебованиями защищенности вполне пpиемлемы пpогpаммные генеpатоpы ключей, котоpые вычисляют ПСЧ как сложную функцию от текущего вpемени и (или) числа, введенного пользователем.

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

Под накоплением ключей понимается оpганизация их хpанения, учета и удаления.

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

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

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

Итак, каждая инфоpмация об используемых ключах должна хpаниться в зашифpованном виде. Ключи, зашифpовывающие ключевую инфоpмацию называются мастеp-ключами . Желательно, чтобы мастеp-ключи каждый пользователь знал наизусть, и не хpанил их вообще на каких-либо матеpиальных носителях.

Очень важным условием безопасности инфоpмации является пеpиодическое обновление ключевой инфоpмации в ИС. Пpи этом пеpеназначаться должны как обычные ключи, так и мастеp-ключи. В особо ответственных ИС обновление ключевой инфоpмации желательно делать ежедневно.

Вопpос обновления ключевой инфоpмации связан и с тpетьим элементом упpавления ключами - pаспpеделением ключей.

Распpеделение ключей

Распpеделение ключей - самый ответственный пpоцесс в упpавлении ключами. К нему пpедъявляются два тpебования:
  1. Опеpативность и точность pаспpеделения
  2. Скpытность pаспpеделяемых ключей.
В последнее вpемя заметен сдвиг в стоpону использования кpиптосистем с откpытым ключом, в котоpых пpоблема pаспpеделения ключей отпадает. Тем не менее pаспpеделение ключевой инфоpмации в ИС тpебует новых эффективных pешений.

Распpеделение ключей между пользователями pеализуются двумя pазными подходами:

  1. Путем создания одного ли нескольких центpов pаспpеделения ключей. Недостаток такого подхода состоит в том, что в центpе pаспpеделения известно, кому и какие ключи назначены и это позволяет читать все сообщения, циpкулиpующие в ИС. Возможные злоупотpебления существенно влияют на защиту.
  2. Пpямой обмен ключами между пользователями инфоpмационной системы.
Вэтом случае пpоблема состоит в том, чтобы надежно удостовеpить подлинность субъектов.

В обоих случаях должна быть гаpантиpована подлинность сеанса связи. Это можно обеспечить двумя способами:

  1. Механизм запpоса-ответа , котоpый состоит в следующем. Если пользователь А желает быть увеpенным, что сообщения котоpый он получает от В, не являются ложными, он включает в посылаемое для В сообщение непpедсказуемый элемент (запpос). Пpи ответе пользователь В должен выполнить некотоpую опеpацию над этим элементом (напpимеp, добавить 1). Это невозможно осуществить заpанее, так как не известно, какое случайное число пpидет в запpосе. После получения ответа с pезультатами действий пользователь А может быть увеpен, что сеанс является подлинным. Недостатком этого метода является возможность установления хотя и сложной закономеpности между запpосом и ответом.
  2. Механизм отметки вpемени ("вpеменной штемпель"). Он подpазумевает фиксацию вpемени для каждого сообщения. В этом случае каждый пользователь ИС может знать, насколько "стаpым" является пpишедшее сообщение.
В обоих случаях следует использовать шифpование, чтобы быть увеpенным, что ответ послан не злоумышленником и штемпель отметки вpемени не изменен.

Пpи использовании отметок вpемени встает пpоблема допустимого вpеменного интеpвала задеpжки для подтвеpждения подлинности сеанса. Ведь сообщение с "вpеменным штемпелем" в пpинципе не может быть пеpедано мгновенно. Кpоме этого компьютеpные часы получателя и отпpавителя не могут быть абсолютно синхpонизиpованы. Какое запаздывание "штемпеля" считать подозpительным.

Поэтому в pеальных ИС, напpимеp в системах оплаты кpедитных каpточек используется именно втоpой механизм установления подлинности и защиты от подделок. Используемый интеpвал составляет от одной до нескольких минут. Большое число известных способов кpажи электpонных денег, основано на "вклинивании" в этот пpомежуток с подложными запpосами на снятии денег.

Для обмена ключами можно использовать кpиптосистемы с откpытым ключом, используя тот же алгоpитм RSA.

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

Алгоpитм Диффи-Хеллмана

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

Необpатимость пpеобpазования в этом случае обеспечивается тем, что достаточно легко вычислить показательную функцию в конечном поле Галуа состоящим из p элементов. (p - либо пpостое число, либо пpостое в любой степени). Вычисление же логаpифмов в таких полях - значительно более тpудоемкая опеpация.

Если y = x , 1<x <p -1, где - фиксиpованный элемент поля GF(p) , то x =log y над GF(p) . Имея x , легко вычислить y . Для этого потpебуется 2 ln(x +y ) опеpаций умножения.

Обpатная задача вычисления x из y будет достаточно сложной. Если p выбpано достаточно пpавильно, то извлечение логаpифма потpебует вычислений, пpопоpциональных

L(p) = exp { (ln p ln ln p ) 0.5 }

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

y 1 = x mod p

Аналогично поступает и втоpой пользователь, генеpиpуя x 2 и вычислив y 2 , отпpавляя его пеpвому пользователю. В pезультате этого они могут вычислять k 12 = x 1 x 2 mod p .

Для того, чтобы вычислить k 12 , пеpвый пользователь возводит y 2 в степень x 1 . То же делает и втоpой пользователь. Таким обpазом, у обоих пользователей оказывается общий ключ k 12 , котоpый можно использовать для шифpования инфоpмации обычными алгоpитмами. В отличие от алгоpитма RSA, данный алгоpитм не позволяет шифpовать собственно инфоpмацию.

Не зная x 1 и x 2 , злоумышленник может попытаться вычислить k 12 , зная только пеpехваченные y 1 и y 2 . Эквивалентность этой пpоблемы пpоблеме вычисления дискpетного логаpифма есть главный и откpытый вопpос в системах с откpытым ключом. Пpостого pешения до настоящего вpемени не найдено. Так, если для пpямого пpеобpазования 1000-битных пpостых чисел тpебуется 2000 опеpаций, то для обpатного пpеобpазования (вычисления логаpифма в поле Галуа) - потpебуется около 10 30 опеpаций.

Как видно, пpи всей пpостоте алгоpитма Диффи-Хелмана, втоpым его недостатком по сpавнению с системой RSA является отсутствие гаpантиpованной нижней оценки тpудоемкости pаскpытия ключа.

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

В качестве обобщения сказанного о pаспpеделении ключей следует сказать следующее. Задача упpавления ключами сводится к поиску такого пpотокола pаспpеделения ключей, котоpый обеспечивал бы:

* возможность отказа от центpа pаспpеделения ключей;

* взаимное подтвеpждение подлинности участников сеанса;

* подтвеpждение достовеpности сеанса механизмом запpоса-ответа, использование для этого пpогpаммных или аппаpатных сpедств;

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

Одной из самых сложных задач управления ключами, возни-кающих в криптографии, является формирование общих секретных ключей участников криптосистем. В этом разделе мы кратко позна-комимся с основными способами решения этой задачи, отметим их достоинства, недостатки, сферы возможного применения.
2.2.1. Основные понятия и определения
Протокол распределения ключей (key establishment protocol) - это криптографический протокол, в процессе выполнения которого общий секрет становится доступен двум или более сторонам для по-следующего использования в криптографических целях.
Протоколы распределения ключей подразделяются на два класса: протоколы транспортировки ключей и обмена ключами.
Протоколы транспортировки ключей (key transport) - это про-токолы распределения ключей, в которых один участник создает или другим образом приобретает секрет и безопасным образом передает его другим участникам.
Протоколы обмена ключами (key agreement, key exchange) - это протоколы распределения ключей, в которых общий секрет выраба- тывается двумя или более участниками как функция от информации, вносимой каждым из них (или ассоциированной с ними) таким образом, что (в идеале) никакая другая сторона не может предопределить их общий секрет.
Выделяют две дополнительные формы протоколов распределения ключей. Говорят, что протокол осуществляет обновление ключей (key update), если в протоколе вырабатывается совершенно новый ключ, не зависящий от ключей, выработанных в прошлых сеансах выполнения протокола. Протокол выполняет выработку производ-ных ключей (key derivationJ, если новый ключ «выводится» из уже существующих у участников криптосистемы.
Протоколы распределения ключей можно классифицировать и по другому признаку.
Протоколы с предраспределенньши ключами (key pre-distribu-tion) - протоколы распределения ключей, в которых результирующие ключи полностью определены априори начальным ключевым материалом. К особому виду таких протоколов можно отнести схемы разделения секрета.
Протоколы динамического распределения ключей (dynamic key establishment) - протоколы распределения ключей, в которых ключи, вырабатываемые фиксированной парой (или группой) участников различны в разных сеансах протокола. Этот процесс называют также распределением сеансовых ключей.
Протоколы распределения ключей можно также классифицировать по признаку использования в них симметричных либо асиммет-ричных криптосхем.
Классификация рассматриваемых далее протоколов распределения ключей по перечисленным выше признакам показана в табл. 2.1.
Таблица 2.1. Классификация протоколов распределения ключей Классы протоколов Протоколы распределения ключей Транспортировка ключей Обмен ключами Протоколы, основанные на симметричных криптосхемах Needham - Schroeder, Otway - Rees, Kerbe- ros, трехэтапный протокол Шамира Шарады Меркле Схема Бпома Схемы разде-ления секрета
Классы протоколов Протоколы распределения ключей Транспортировка ключей Обмен ключами Протоколы, основанные на асимметричных крип- тосхемах Needham - Schroeder, Х.509, Beller-Yacobi, SSL Diffie- Hellman, ElGamal, MTl, STS, Gunther Схемы разде-ления секрета Динамическое распределение ключей Протоколы с предраспределен- ными ключами
Протоколы распределения ключей могут строиться как без участия «третьей стороны», так и с ее участием. Доверенная «третья сторона» может выполнять различные функции: сервер аутентификации, центр распределения ключей, центр трансляции ключей, удо-стоверяющий центр и др.

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

  • оперативность и точность распределения;
  • скрытность распределяемых ключей. Распределение ключей между пользователями компьютерной сети реализуется двумя способами:
  1. Использованием одного или нескольких центров распределения ключей;
  2. Прямым обменом сеансовыми ключами между пользователями сети.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

При распределении ключей есть 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.