МИНИСТЕРСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ
ПО СВЯЗИ И ИНФОРМАТИЗАЦИИ
Федеральное государственное
Образовательное бюджетное учреждение
Высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ
им. проф. М. А. БОНЧ-БРУЕВИЧА»
Д.В.Юркин
Дисциплина:
Сети и системы радиосвязи и средства их
информационной защиты»
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ
СПб ГУТ)))
САНКТ-ПЕТЕРБУРГ
Функции криптографических протоколов в каналах радиосвязи
Классификация по назначению
Протоколы обмена ключевым материалом |
Протоколы аутентификации |
Протоколы криптографической инкапсуляции |
Протоколы обмена ключевым материалом
При организации защищенного канала связи, в целях повышения стойкости от различных атак, в том числе и от статистического анализа, требуется процедура автоматического распределения сеансового ключа по открытому каналу связи. В данном разделе описываются протоколы распределения ключевой информации для безопасного обмена данными. Одним из основных правил организации защищенного сеанса связи является то, что каждые i сеансов конфиденциальной связи производятся на ключе ki, после чего, при выполнении определенного условия, корреспонденты выполняют согласованную смену ключа ki на ключ ki+1. Поэтому протоколы обмена ключами необходимо включить в схему обеспечения конфиденциальной связи наряду с протоколами инкапсуляции (шифрования) и аутентификации.
Топология организации протоколов обмена ключами с помощью симметричной криптографии
Обмен ключами может происходить по данным схемам организации связи, включающим в себя следующие элементы:
ЦРК - центр распределения ключевого материала. Используется в случаях протоколов с участием доверенного центра.
ЦПК – центр передачи ключа. Применяется в протоколах, связанных с выработкой ключа одним из корреспондентов, и несет на себе функции передачи и обеспечения подлинности ключа.
А, В, … - корреспонденты, участники протокола. В случае самодостаточной модели протокола, ЦРК отсутствует.
Распределение ключа
Протоколы обмена ключевым материалом
Обмен ключами с использованием алгоритмов шифрования
Протокол обмена ключами предполагает, что корреспонденты сети, A и B, получают по доверенным каналам главный секретный ключ, а сеансовый секретный ключ по открытому каналу от ЦРК. До установления сеанса конфиденциальной связи главные ключи должны быть установлены у корреспондентов, поэтому в этой модели протокола отсутствует процедура распределения долгосрочного главного ключа.
Выполняемые действия:
Корреспондент A посылает запрос к серверу ЦРК сеансового ключа для связи с Корреспондентом B. ЦРК генерирует сеансовый ключ (либо выбирает из заранее созданной базы ключей и соединений). ЦРК шифрует две копии ключа: одну для A, а другую - для B. Затем ЦРК посылает обе копии корреспонденту А. Корреспондент A расшифровывает свою копию сеансового ключа. Корреспондент A посылает корреспонденту В его копию сеансового ключа. Корреспондент B расшифровывает свою копию сеансового ключа. Корреспонденты A и B используют этот сеансовый ключ для безопасного обмена информацией.
В основе работы протокола лежит абсолютное доверие к ЦРК. В случае проникновения злоумышленника к ПО или каким-либо информационным ресурсам ЦРК, содержащим ka, kb, он легко получит доступ к передаваемой по открытому каналу зашифрованной информации. Также у атакующего имеется возможность обеспечения аудита всех последующих соединений, путем создания заранее скомпрометированных ключей.
В данной схеме предъявляются повышенные требования к качеству канала связи с ЦРК. Одной из атак на СС является косвенный обрыв связи между корреспондентами путем направленного ухудшения качества канала связи: ЦРК - корреспондент A. Таким образом, весь протокол привязан к ЦРК сеансовым обменом ключа и является несамодостаточным.
Протоколы распределения ключа Point-to-Point топологии
Протокол распределения ключа за одну итерацию |
Протокол “запрос-ответ” |
Протокол “рукопожатие” |
Протокол распределения ключа за одну итерацию с применением меток времени |
Протокол распределения ключа за одну итерацию
Корреспондент А передает В зашифрованный на долгосрочном ключе сеансовый ключ ki. После чего В устанавливает его на своей стороне и готов к организации сеанса шифрованной связи.
Протокол является наиболее ярким примером недостаточности высокой стойкости КС в данном классе алгоритмов, для обеспечения всей системы в целом. Далее будет показано, какими типовыми методами можно повысить стойкость протоколов распределения ключа.
Протокол распределения ключа за одну итерацию с применением меток времени
Корреспондент А передает В зашифрованный на долгосрочном ключе сеансовый ключ ki и метку времени ti. . После чего В дешифрует сеансовый ключ, проверяет актуальность метки времени, устанавливает его на своей стороне и готов к организации сеанса шифрованной связи.
Этот протокол обладает временной стойкостью к атаке, основанной на повторной передаче, но не имеет никакой защиты от “внедрения в середину”.
Протокол “запрос-ответ”
Корреспондент А передает В зашифрованный на долгосрочном ключе сеансовый ключ ki. После чего В устанавливает его на своей стороне и готов к организации сеанса шифрованной связи.
1) А генерирует и передает В случайное число ria.
2) В шифрует его вместе с меткой времени Ei (ki,ti,ria)=cia передает cia А.
3) А дешифрует сообщение D i (*cia)= { * ki,*ti,*ria }, проверяет актуальность метки времени и проверяет равенство *ria = ria если верно, то он считает что, ключ ki подлинный и устанавливает его.
Протокол “рукопожатие”
Если условие поставленной задачи требует совместного вычисления сеансового ключа, как функции от двух секретных компонент из частных секретов корреспондентов А и В (kia, kib), применяется следующий протокол.
1) А генерирует и передает В случайное число ria.
2) В добавляет к нему свое случайное число rib, метку времени ti, свое имя и шифрует их вместе с kib, Ei (kib,ti,ria rib,B)=cia передает cia А.
3) А принимает сообщение от В, дешифрует его D i (*cia)= { * kib,*ti,*ria,*rib*B }, проверяет актуальность метки времени, идентификатор корреспондента B и проверяет равенство *ria = ria если верно, то он считает что, ключ kib подлинный и устанавливает его. Далее А передает В криптограмму Ei (kia,ti,rib,A)=cib.
4) В принимает сообщение * cib, дешифрует его D i (*cib)= { * kia,*ti,*rib *A }.
Таким образом, оба корреспондента имеют ответные значения аргументов для вычисления ключа, как функции от них.
Обмен ключами с помощью симметричной криптографии
Для выработки совместного сеансового ключа корреспонденты A и B применяют криптосистемы с открытым ключом, а затем используют распределенный сеансовый ключ для шифрования данных. В некоторых реализациях подписанные ключи корреспондентов A и B доступны в общей базе ключей. Данное решение значительно упрощает организацию протокола. Например, при отсутствии непосредственной связи корреспондентов до начала выработки совместного секретного ключа (или недружественных сторон), существует возможность организации конфиденциальной связи.
Самый простой пример схемы распределения ключа приведен ниже.
Корреспондент A получает из базы открытый ключ B (eb).
A, как инициатор соединения, генерирует случайный сеансовый ключ, зашифровывает его открытым ключом B и посылает его B. В дешифрует сообщение А с помощью своего закрытого ключа и устанавливает сеансовый ключ для безопасного обмена информацией.
Предварительные вычисления:
1) получение ОК вызываемого корреспондента eb и выработка ключа ki, вычисление и передача ci = Eb (ki, eb).
Активная часть протокола:
2) В дешифрует сообщение ci от А с помощью своего закрытого ключа, ki = Db (ci, db).
3) Корреспонденты А и В начинают сеанс безопасной связи.
Протокол «рукопожатия» Райвеста-Шамира
Данный протокол обладает временной стойкостью к атаке на основе вскрытия «внедрения в середину» при отсутствии контроля времени прохождения сообщений по каналу связи. Ниже изложен принцип его работы.
Корреспонденты А и В обмениваются открытыми ключами. А шифрует свое сообщение открытым ключом В и отправляет половину зашифрованного сообщения корреспонденту В. В, в свою очередь, шифрует свое сообщение открытым ключом А и половину зашифрованного сообщения он отправляет А. А отправляет В вторую половину зашифрованного сообщения. В складывает две части сообщения А и расшифровывает его с помощью своего закрытого ключа. В отправляет А вторую половину своего зашифрованного сообщения и А складывает две части сообщения В дешифровав его с помощью своего закрытого ключа.
Промежуточные предварительные вычисления:
1) А, являясь инициатором соединения, вырабатывает ki и вычисляет ki = { ki1, ki2 }.
2) А получает ОК В из базы ключей eb. Или А и В обмениваются своими ОК.
3) А вычисляет сi1 = Ei (ki1,eb) и сi2 = Ei (ki2,eb) и передает сi1.
4) В принимает и дешифрует сi1, Di (ci1,db) = ki1.
5) Убедившись в получении В сi1, А передает сi2.
6) В принимает и дешифрует сi2, Di (ci2,db) = ki2.
7) В выполняет обратную операцию по вычислению ki = { ki1, ki2 }.
Смысл данного протокола в том, что ни одна из половин сообщения не имеет смысла без второй, либо недостаточна для однозначного дешифрования по полиномиальному алгоритму. Таким образом, если существует некий вычислительно простой алгоритм разбиения сообщения на две части (либо вычисления некоторой однонаправленной функции, обратное преобразование для которой возможно только при наличии второй части сообщения или ОНФ от него), то нарушитель не сможет подменить сообщение, но сможет его прочитать. В данном протоколе существует несколько способов разбить сообщение на две части:
1) Если используется блочный алгоритм шифрования, половина каждого блока (например, каждый бит по ключу из второго сообщения) может быть передана в каждой половине сообщения.
2) При использовании потокового шифратора, дешифрирование сообщения может зависеть от вектора инициализации, который может быть передан во второй части сообщения.
3) Первая половина сообщения может быть однонаправленной хэш-функцией шифрованного сообщения, а вторая половина - собственно шифрованным сообщением.
4) При использовании КС Эль-Гамаля можно положить одной половиной сообщения g=ak mod p а второй d=Mi(aa)k mod p.
Обмен ключами с помощью ЭЦП
Использование ЭЦП в протоколе обмена сеансовым ключом делает неосуществимой атаку по алгоритму "внедрение в середину". ЦРК, в данном протоколе дополнительно выполняет функцию удостоверяющего центра (УЦ). Он подписывает открытые ключи корреспондентов А и В. Подписанные ключи включают в себя непосредственно сам ключ и ЭЦП к нему, являющуюся заверением его подлинности. Получив ключи, и А, и В проверяют подпись ЦРК, после чего они уверены, что присланный открытый ключ принадлежит именно указанному корреспонденту. Затем выполняется протокол обмена ключами.
Злоумышленник сталкивается с серьезными проблемами. Он не может выдать себя за одного из корреспондентов, т. к. он не знает их закрытых ключей, а следовательно не имеет возможности подписывать сообщения. Злоумышленник не может подменить открытые ключи своим, потому что при подписи его ключа ЦРК указал, что это его ключ. Все, что ему остается - это прослушивать зашифрованный поток сообщений или испортить канал связи, мешая обмену информации А и В.
ЦРК выступает участником этого протокола, но риск компрометации базы ОК меньше, чем в вышеописанных протоколах. Если нарушитель компрометирует ЦРК (путем подмены ЗК), он получает только закрытый ключ ЦРК. Этот ключ позволит ему только подписывать новые ключи, а не расшифровывать сеансовые ключи и, соответственно, читать произвольный поток сообщений. Для чтения сообщений нарушителю придется выдать себя за некоторого абонента сети и обманывать легитимных абонентов, шифруя сообщения своим поддельным открытым ключом.
Также М может предпринять такое вскрытие. Используя ЗК ДЦ, он может создать скомпрометированные подписанные ключи. Затем он может либо подменить этими ключами настоящие ключи в базе данных, либо перехватывать запросы абонентов к базе данных и посылать в ответ скомпрометированные ключи. Это позволит ему успешно осуществить атаку на основе протокола "внедрение в середину" и читать сообщения абонентов.
Такая атака будет работать, для этого М должен оперативно перехватывать и изменять сообщения. В ряде СС это намного сложнее, чем выполнять пассивную атаку, дешифрованием сообщений, проходящих по каналу связи между корреспондентами. В широковещательных каналах, таких как сети ШРД, почти невозможно подменить одно сообщение другим, хотя можно забить помехой всю сеть. В компьютерных сетях это менее сложно и, кажется, с каждым днем становится проще и проще. Этот вопрос элементарно решается подменой или перепрограммированием ПЗУ, содержащим IP-адрес рабочей станции или маршрутизатора...
Передача ключей и сообщений
В данном протоколе конфиденциальной связи корреспондентам А и В не обязательно выполнять протокол обмена ключами перед началом обмена сообщениями. В этом протоколе А отправляет В сообщение без предварительного распределения ключей следующим образом:
А, являясь инициатором соединения, вырабатывает сеансовый ключ, и выполняет шифрование сообщения на этом ключе. После чего получает открытый ключ В из базы ключей от ЦРК, шифрует сеансовый ключ открытым ключом В, посылает В зашифрованное сообщение на сгенерированном ключе и сеансовый ключ на ОК корреспондента В. Далее выполняет ЭЦП под полученным сообщением. В дешифрует сеансовый ключ А, используя свой закрытый ключ, используя дешифрованный сеансовый ключ, дешифрует на нем сообщение А.
Данная гибридная схема достаточно часто употребляется в СС, например в модели зашифрованной почты PGP. Также ее можно соединить с протоколами ЭЦП, метками времени и другими протоколами обеспечения безопасности.
Предварительные вычисления:
1) А, являясь инициатором соединения, вырабатывает ki.
2) А шифрует сообщение, с i = Ei (ki,M).
3) А получает от ЦРК ОК корреспондента В eb и выполняет шифрование сj = Ej (eb, ki).
4) А выполняет ЭЦП c использованием своего закрытого ключа s = Es (ci, cj).
Активная часть протокола:
1) Передача сообщения { ci, cj, s } по открытому каналу корреспонденту В.
2) В снимает ЭЦП проверкой гипотезы верификации v1= v2.
Широковещательная рассылка ключей и сообщений
В данном протоколе рассмотрен механизм широковещательной передачи сообщений на базе КС с ОК без предварительного обмена ключами. Как и в предыдущем случае, в широковещательной передаче шифрованных сообщений возможно применение ЭЦП, при защите от активного «внедрения в середину». Данный протокол подразумевает собой участие доверенной третьей стороны, в случае недружественных сторон, либо просто не имеющих доступ ОК других корреспондентов.
А шифрует сеансовый ключ на открытом ключе корреспондентов B, C и D. А широковещательно посылает зашифрованное на сеансовом ключе сообщение и все зашифрованные ключи своим корреспондентам. Только B, C и D могут, каждый при помощи своего закрытого ключа, дешифровать ключ K. Только B, C и D могут дешифровать сообщение А, используя сеансовый ключ.
Этот протокол может быть применен для широковещательной передачи сообщений, например для сетей электронной почты. Центральный сервер может отправить сообщение корреспондентам A, B, C, D вместе с конкретным шифрованным ключом для текста сообщения. Почтовый сервер не должен быть надежным и безопасным, доступ к нему открыт.
Предварительные вычисления:
1) А вырабатывает сеансовый ключ ki.
2) А шифрует сообщение M, с i = Ei (ki,M).
3) А получает от ЦРК ОК корреспондентов B, C и D: eb, ed, ec и выполняет шифрование сBi = EBi(ki, eb), сDi = EDi(ki,ed), сCi = ECi(ki, ec).
Активная часть протокола:
1) Выполнение ЭЦП на ключе А: S B = Es(ci, сBi), S C = Es(ci, сCi), S D = Es(ci, сDi).
2) Широковещательная передача сообщений, содержащих ЭЦП, зашифрованный сеансовый ключ, криптограмму: { сi , сCi ,S C }, { сi , сBi ,S B }, { сi , сDi ,S D }.
Обмен ключами средствами специализированных криптосистем
Протокол Shamir’s no-key protocol
Данный протокол имеет широкое распространение в целом ряде инженерных задач и позволяет без процедуры аутентификации распределять сеансовые ключи анонимно.
Корреспонденты заранее, по безопасному каналу согласуют величину модуля и выбирают параметры a, b, такие, что 1<{ a, b }< p- 2 и принимают их как секретный ключ (-секретный ключ А, - секретный ключ В). Далее вычисляются значения a -1, b -1, по mod (p -1).
1) А вырабатывает сеансовый ключ ki, такой, что 1< ki < p -1 и вычисляет (ki) amod p, после чего передает эту степень В.
2) B принимает (ki) amod p, вычисляет ((ki) a)b mod p и передает А.
3) А принимает сообщение ((ki) a)b mod p и вычисляет (((ki) a) b)- amod p = ki b. Передает результат вычислений В.
4) B принимает (ki) b mod p сообщение от A и вычисляет ((ki) b) -b mod p = ki.
5) Оба корреспондента устанавливают себе сеансовый ключ ki.
Стойкость данного протокола к атаке грубой силой определяется выбором параметров выполнения операции возведения в степень по модулю. Также протокол не стоек к атаке “внедрением в середину“.