Иерархия ключевой информации. Распределение ключей

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

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

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

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

Управление ключами – это информационный процесс, включающий 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) Аутентификация происходит тогда, когда пользователь А и сервер доказывают знание своего секретного ключа. Пользователь шифрует метку времени и отправляет ее на сервер В. Сервер расшифровывает метку, увеличивает ее значение на единицу, вновь зашифровывает и отправляет шифротекст пользователю А. Пользователь А расшифровывает ответ, и если в нем содержится значение метки времени с приращением, то аутентификация завершается успешно, в противном случае - неудачно. После взаимной аутентификации сеансовый ключ может использоваться для шифрования сообщений, которыми обмениваются пользователь А и сервер В. Очевидно, что стороны должны доверять ЦРК , поскольку он хранит копии всех секретных ключей.

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

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

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

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

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

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

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

В этом случае проблема состоит в том, чтобы надежно удостоверить подлинность субъектов.

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

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

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

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

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

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

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

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

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

Идея метода достаточно проста. После того, как ключ использован в одном сеансе по некоторому правилу он сменяется другим.

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

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

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

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

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

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

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

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

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

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

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).

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

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

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

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

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

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

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

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

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

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

y 2 = x 3 + ax + b,

а также бесконечно удаленная точка. Для точек на кривой довольно легко вводится операция сложения, которая играет ту же роль, что и операция умножения в криптосистемах RSA и Эль-Гамаля.

В реальных криптосистемах на базе эллиптических уравнений используется уравнение

y 2 = x 3 + ax + b mod p,

где р - простое.

Проблема дискретного логарифма на эллиптической кривой состоит в следующем: дана точка G на эллиптической кривой порядка r (количество точек на кривой) и другая точка Y на этой же кривой. Нужно найти единственную точку x такую, что Y = x G, то есть Y есть х -я степень G.

Открытое распределение ключей

Пока преимущества методов шифрования с открытым ключом не были очевидны. Однако на их основе легко решать задачу выработки общего секретного ключа для сеанса связи любой пары пользователей информационной системы. Еще в 1976 году Диффи и Хеллман предложили для этого протокол открытого распределения ключей. Он подразумевает независимое генерирование каждым из пары связывающихся пользователей своего случайного числа, преобразование его посредством некоторой процедуры, обмен преобразованными числами по открытому каналу связи и вычисление общего секретного ключа на основе информации, полученной в процессе связи от партнера. Каждый такой ключ существует только в течение одного сеанса связи или даже части его. Таким образом, открытое распределение ключей позволяет каждой паре пользователей системы самим выработать свой общий секретный ключ, упрощая тем процедуру распределения секретных ключей. Хотя все не так просто - отсутствие у абонентов перед сеансом связи заблаговременно распределенного общего секретного ключа в принципе не дает им возможности удостовериться в подлинности друг друга при помощи обмена сообщениями по открытому каналу. Например, пересылать ключи можно и по описанному выше алгоритму ЭльГамаля в модификации Шамира, но как убедиться в том, что имеешь дело с партнером, а не перехватчиком? Для подтверждения подлинности каждый из участников секретной сети все же должен иметь собственный секретный ключ, известный только ему и отличающий его от всех других абонентов. В этом случае алгоритмом Диффи-Хеллмана будет обеспечена такая процедура предъявления пароля, что его многократное использование не снижает надежности доказательства подлинности владельца. В результате такие две функции общего секретного ключа, обычно доставляемого по секретному каналу, как защита информации в канале связи от третьей стороны и подтверждение подлинности каждого из абонентов партнеру, разделяются.

Алгоритм открытого распределения ключей Диффи-Хеллмана выглядит так:

    Пусть имеются два абонента открытой сети A и B , знающие пару открытых ключей р и d . Кроме того, у A есть секретный ключ х из интервала (1, n ), а у B есть секретный ключ y из того же интервала.

    Абонент A посылает B x mod р , а абонент B посылает A шифровку своего ключа Z"=D**y mod p .

    После этого общий ключ Z они вычисляют как Z=Z"**y =Z""**x .

При помощи специальных приемов время формирования общего ключа в системе Диффи-Хеллмана может быть сокращено в 5 раз по сравнению с системой ЭльГамаля в модификации Шамира, и в 30 раз по сравнению с RSA при том же уровне стойкости. Это, с точки зрения большинства практических приложений, оказывается заметным преимуществом, так как шифрование и расшифровывание по алгоритму RSA примерно в тысячу раз медленнее классических алгоритмов типа DES. Отметим, что для многих применений криптографических систем с открытым ключом время вычислений при криптографических преобразованиях не имеет большого значения. Например, при идентификации пользователей по кредитным карточкам не будет разницы - потребует ли она одну микросекунду или одну секунду. То же относится и к выбору общего ключа шифрования для другой, более быстродействующей, но не обладающей способностью обмена ключами криптографической системы.

Необходимость в системах открытого распределения ключей иметь заранее распространенные из центра индивидуальные секретные пароли для подтверждения подлинности пользователей не выглядит столь уж обременительной задачей, как изготовление и распределение из центра пар секретных ключей для связи абонентов между собой. Срок действия такого пароля может быть существенно больше, чем срок действия ключа для связи, скажем год, а их общее число в сети связи равно числу абонентов. Кроме того, при некоторых видах связи подтверждение подлинности партнера может достигаться за счет узнавания его по физическим признакам. Например, по голосу при телефонной связи или по внешнему виду и голосу при связи по телевизионным каналам. Следует отметить, что распределение ключей с помощью криптографических систем с открытым ключом имеет единственное достоинство - необходимость на каждом узле секретной связи иметь лишь по одному ключу. Для классических же симметричных криптографических систем ключей должно быть столько, сколько у узла абонентов. Вместе с тем, системы с открытым ключом имеют слабые места. Так, если взлом шифровки, содержащей ключ, в классической системе принципиально невозможен, так как открытый текст несмысловой и не содержит избыточной информации, то в системах с открытым ключом у криптоаналитика всегда есть надежда на успех. Далее, если число D общее для всех участников сети, то его компрометация, в виде обнаружения специальных свойств, облегчающих логарифмирование, приведет к компрометации всей сети. Если же D индивидуально для каждой пары абонентов, то, во-первых, из-за обилия ключей проще найти среди них слабый, и, во-вторых, хотя рассылка и хранение несекретных ключей несравнимо легче, чем секретных, но тоже доставляет массу хлопот. Поэтому если у криптографа есть возможность воспользоваться услугами секретного канала, то он всегда предпочтет его открытому распределению ключей.

Из практически действующих сетей связи, использующих систему открытого распределения ключей, наиболее серьезно защищенной является телефонная государственная сеть США на основе аппаратов STU-III. Она начала функционировать в 1987 году и содержит сейчас более 150 тысяч абонентов. В России аналогичная сеть, называемая еще АТС-1 или "вертушкой", тоже надежно защищена, но абонентов там в сотни раз меньше. К началу восьмидесятых годов криптологи пришли к пониманию преимущества так называемых гибридных систем, в которых процедуры шифрования с открытым ключом используются лишь для передачи ключей и цифровой подписи. А информация, которую нужно передать, защищается классическим алгоритмом типа DES, ключ для которого передан с помощью шифрования с открытым ключом. Первым серийным устройством данного типа был Datacryptor фирмы Racal- Milgo, выпущенный в 1979 году. Аппарат управления ключами шифрования Datacryptor предназначен в основном для правительственных сетей связи и аттестован на соответствие английскому стандарту защиты не секретной, но важной информации. В нем предусмотрены сигнализация о нарушениях криптографических требований и извещения об ошибках. В этом аппарате используется алгоритм установления шифрованной связи при помощи выработки и передачи общего секретного ключа по алгоритму RSA. В дальнейшем аппаратов подобного типа для защиты информации было выпущено очень много. Другие примеры использования новых криптографических идей демонстрируют многие коммерческие сети, особенно банковские, такие как SWIFT. Кроме того, система цифровой подписи RSA применяется в аппаратуре проверки соблюдения договора об ограничении ядерных испытаний, разработанной Sandia Laboratories в 1982 году, сети BPMIS и других системах.

Публикации по теме