Практические реализации протоколов обеспечения безопасности с применением симметричных шифраторов.
ПротоколAKEP 2
Один из наиболее простых протоколов использующих ключевую хэш-функцию MAC и работающий с передачей трех сообщений для аутентификации пользователей на двух общих секретных ключах (один для поддержки протокола шифрования, другой для прокола аутентификации).
1) А генерирует и передает В случайное число rai.
2) В получает то А сообщение, добавляет к нему свое случайное число rbi и имя В и А. Вычисляет хэш-функцию на секретном ключе K, Hk(rbi, rai, A, B)=hk. Передает его вместе с {rbi, rai, A, B} корреспонденту А.
3) А принимает сообщение {rb’i, ra’i, A’, B’},h’k вычисляет Hk(rb’i, ra’i, A’, B’) сравнивает h’k = hk и rb’i= rbi, проверяя подлинность сообщения и случайного числа.
4) Оба корреспондента вычисляют Hk(rbi)= hbk, на втором секретном ключе K2 и принимают hbk за сеансовый ключ.
Протокол SKID
В данном протоколе корреспонденты также используют ключевую хэш-функцию MAC для обеспечения безопасной передачи данных и предполагают, что А и В используют общий секретный ключ, K. Одна из модификаций протокола позволяет обеспечить аутентификацию корреспондентов:
1) А генерирует случайное число ra(согласно требованиям протокола SKID-2 64-битовое число) и посылает это число В.
2) В генерирует случайное число rb (согласно требованиям протокола SKID-2 64-битовое число), вычисляет ОНФ на ключе K следующее преобразование: Hk(rb, ra, B)=hbk , где В это ID корреспондента В, и посылает А: hbk, rb
3) А вычисляет от полученных данных Hk(rb’, ra’, B)=hb’k и сравнивает результат со значением hbk , полученным от В. Если гипотеза , hb’k = hbk подтверждается, то корреспондент В аутентифицирован.
Протокол SKID3 обеспечивает двустороннюю обоюдную аутентификацию корреспондентов А и В. Итерации (1) — (3) протоколов SKID2 и SKID3 совпадают, а затем в данном протоколе, для последующей аутентификации А выполняются следующие действия:
1) А, вычисляет ОНФ Hk(rb, A)=hak посылает В hak, где А, это ID корреспондента А.
2) В рассчитывает Hk(rb, A)=ha’k и сравнивает результат со значением, полученным от А. Если гипотеза hak =ha’k подтверждается, то корреспондент А аутентифицирован.
Hk, это обозначение ОНФ на ключе K, являющееся алгоритмом вычисления ключевой хэш-функции, принятым в протоколах SKID. Но так как протокол инвариантен к процедуре вычисления ОНФ, то возможно применение любых других функций. Следовательно имеется возможность оптимизации ВВХ протокола по предъявленным требованиям стойкости.
Однако этот протокол неустойчив к атаке внедрение в середину.
Один из вариантов подтверждения подлинности рассматривается выше при описании протоколов распределения ключа и заключается в выполнении ЭЦП под сообщением. Эти протоколы гарантируют аутентификацию легитимных пользователей со стойкостью КС, на которой выполнялась ЭЦП, при условии достоверности установленных сертификатов.
С применением симметричных алгоритмов возможна ситуация в которой аутентификация косвенно является частью протокола организации шифрованной связи (что, отчасти, было реализовано протоколе запрос-ответ). Определяется это следующим образом, при передаче зашифрованной информации противник, не обладающий секретным ключом, не может прочитать передаваемые сообщения, но если у него появляется секретный ключ, он автоматически является легитимным пользователем. В случае сетевой аутентификации, с применением разветвленной топологии организации связи, возникает необходимость в ЦРК создания матриц ключевых наборов, что также решает задачу аутентификации на общем секретном ключе шифрования.
Этот класс протоколов определен разделением процедур аутентификации и распределения ключа на подпротоколы удостоверения подлинности корреспондентов и обмена ключевым материалом для решения задачи обеспечения безопасной связи. Данные шифруются на сеансовом ключе, динамически сменяемом либо во времени, либо статичном, индивидуально ассоциируемом с каждым сеансом связи.
В большей части протоколов предполагается, что каждый абонент сети обладает некоторым секретным долгосрочным ключом, выделенным ему ЦРК по гарантировано безопасному каналу.
Практические реализации протоколов обеспечения безопасности с применением гибридных криптографических алгоритмов
Протокол Wide-Mouth Frog
Протокол Wide-Mouth Frog [M. Burrows, M. Abadi, R. Nidham “A Logic Autentification”, M. Burrows, M. Abadi, R. Nidham “Rejoiner to Nessett”], является самым простым и наиболее прозрачным протоколом поддержки протокола шифрованной связи. Корреспондент А и ЦА, совмещенный с ЦРК, имеют общий долгосрочный секретный ключ, используемый только для распределения сеансового ключа. Алгоритм работы протокола приведен ниже:
А генерирует сеансовый ключ, объединяет метку времени, имя вызываемого корреспондента В и сеансовый ключ, затем шифрует созданное сообщение общим с ЦА ключом и посылает его ЦА вместе со своим именем.
ЦА дешифрует сообщение А. Затем он добавляет новую метку времени, имя А и сеансовый ключ, далее шифрует полученное сообщение общим с В ключом. ЦА посылает криптограмму В.
Наибольшим допущением, сделанным в этом протоколе, является то, что А обладает достаточной компетентностью для генерации хороших сеансовых ключей . Необходимо помнить, случайные числа генерировать не является простой задачей.
Практические реализации протоколов обеспечения безопасности с применением симметричных шифраторов
ПротоколWide-Mouth Frog
Один из наиболее простых протоколов использующих ключевую хэш-функцию MAC и работающий с передачей трех сообщений для аутентификации пользователей на двух общих секретных ключах (один для поддержки протокола шифрования, другой для прокола аутентификации).
1) А генерирует сеансовый ключ ki, свою метку времени tai, и выполняет шифрование на долгосрочном ключе Ka, Ea(ki, B, Ka ,tai)= cai.
Активная часть протокола:
1) А передает ЦА криптограмму Ea .
2) ЦА дешифрует принятое сообщение cai, на ключе Ka, Da(cai)= {ki, B, tai }и шифрует его на ключе Kb, добавляя к нему свою метку времени tsi , Eb(ki, B, Kb ,tsi)= cbi и передает его В.
Таким образом корреспондент В имеет зашифрованный сеансовый ключ ему останется только дешифровать принятое от ЦРК сообщение и установить его. Однако в данной схеме имеется существенный недостаток, заключающийся в повышенной ответственности за выработку ключа у корреспондента – инициатора соединения. Если ключ окажется слабым, то сеанс зашифрованной связи окажется бесполезной тратой временного и вычислительного ресурса.
Но по причине простоты эта схема дает хороший запас по ВВХ к экстенсивному усилению шифрования стойкости за счет длины ключа и является стойкой к атаке “внедрение в середину”.
ПротоколYahalom
В этом протоколе также абоненты А и В имеют с ЦА общий секретный ключ [M. Burrows, M. Abadi, R. Nidham “A Logic Autentification”, M. Burrows, M. Abadi, R. Nidham “Rejoiner to Nessett”]. Схема организации связи соответствует предыдущему протоколу, но в данной ситуации сеансовый ключ вырабатывает не корреспондент, а ЦРК.
Алгоритм работы протокола приведен ниже:
А объединяет свое имя и случайное число, и отправляет созданное сообщение В. А корреспондент В объединяет имя А, его случайное число, свое случайное число, далее шифрует созданное сообщение на общем с ЦРК секретном ключе и посылает его ЦРК, добавляя свое имя потом ЦРК создает два сообщения. Первое включает имя В, сеансовый ключ, случайные числа В и А и шифруется секретным ключом А. Второе состоит из имени А, сеансового ключа и шифруется секретным ключом В. ЦРК посылает оба сообщения А. А дешифрует первое сообщение, извлекает сеансовый ключ и убеждается, что случайное число соответствует переданному ранее на этапе (1). А посылает В два сообщения. Одним является сообщение от ЦРК, зашифрованное на ключе В. Вторым является это ПСП корреспондента В, зашифрованная на сеансовом ключе. В дешифрует первое сообщение, извлекает сеансовый ключ и убеждается, что случайное число совпадает.
1) А генерирует случайное число rai передает В вместе со своим именем, {B,rai}.
2) В вырабатывает rbi случайное число выполняет шифрование Eb(A, B, Kb , rbi , rai )= cbi и передает cbi ЦРК.
3) ЦРК генерирует сеансовый ключ ki и выполняет шифрование двух сообщений:
1. Eb(ki, A, Kb)= cs1i
2. Ea(ki, B, Ka , rbi , rai )= cs2i
1) ЦРК передает {cs2i , cs1i } корреспонденту A.
2) А дешифрует cs2i , Da(Ka , cs2i)={ki, B,Ka , rb’i , ra’i } проверяет ra’i = ra’, в случае совпадения устанавливает сеансовый ключ ki , выполняет шифрование Ek(ki , rb’i)= cabi и передает В {cabi , cs1i } .
3) В дешифрует cs1i , Db(cs1i)={ki, A}устанавливает сеансовый ключ ki и дешифрует cabi, Dk(cabi)= rb’i после чего проверяет равенство rb’i =rb’i.
В результате работы данного протокола корреспонденты А и В убеждены в авторстве сообщений получаемых от других корреспондентов и ЦРК. Также теперь ответственность за выработку сеансового ключа несет корреспондент с заведомо большим вычислительным ресурсом и возможностью централизованного упрощенного контроля и распределения ключевого материала.
В данной схеме имеется существенный недостаток, заключающийся в повышенной ответственности за выработку ключа у корреспондента – инициатора соединения. Если ключ окажется слабым, то сеанс зашифрованной связи окажется бесполезной тратой временного и вычислительного ресурса.
Но по причине простоты эта схема дает хороший запас по ВВХ к экстенсивному усилению шифрования стойкости за счет длины ключа и является стойкой к атаке “внедрение в середину”.
Протокол Needham-Schroeder
В протоколе, разработанном Роджером Нидхэмом и Майклом Шредером [R. M. Needham, M. D. Schroeder “Using Encryption of Autentifications in Large Networks of Computers”], используются симметричная криптография и ДЦ.
А посылает ЦРК сообщение, содержащее его имя, имя корреспондента В и случайное число. ЦРК генерирует сеансовый ключ и шифрует сообщение, содержащее сеансовый ключ и имя А, секретным ключом В. Затем он шифрует случайное число А, имя В, сеансовый ключ и зашифрованное сообщение секретным ключом А. После чего, он отправляет шифрованное сообщение А. А дешифрует сообщение и извлекает сеансовый ключ. Он убеждается, что случайное число совпадает со значением, отправленным ЦРК на этапе 1. Затем он посылает В сообщение, зашифрованное ЦРК секретным ключом В. В дешифрует принятое сообщение и извлекает сеансовый ключ. Затем В генерирует другое случайное число, шифрует это число сеансовым ключом и отправляет его А. А дешифрует сообщение на сеансовом ключе. Он создает число rB-1 и шифрует это число на сеансовом ключе . Затем он посылает это сообщение обратно В. В дешифрует принятое сообщение на сеансовом ключе и проверяет значение rB-1.
1) А создает сообщение {A,B, ra} и посылает его ЦРК.
2) ЦРК генерирует ki, шифрует на kb пару Ek(kb, ki, A)= cbi и добавляет {ra,B, ki, , cbi}. Передает В сообщение зашифрованное на kaEk(kb , ra,B, ki, cbi)= cai .
3) А принимает cai дешифрует Dk(cai )={ ra’,B, ki, cbi} проверяет ra=ra’. И переедет В сообщение cbi.
4) В принимает cbi и дешифрует на своем ключе kbDk(cbi )={ki, A} . Он генерирует случайное число rb и шифрует его на сеансовом ключе ki , Ek(ki, rb)= cb2i и передает его А.
5) А дешифрует Dk(cb2i)= {ki, rb}, и вычисляет (rb-1) и шифрует его на ключе ki , Ek(rb-1)= cb3i, передает cb3i корреспонденту В.
6) В принимает сообщение cb3i, дешифрует его Ek(cb3i)= (rb’-1) сравнивает с rb-1.
Все эти операции с выработкой случайных чисел необходимы для защиты от атаки, основанной на повторной передаче. Злоумышленник, предпринимая попытку вскрытия повторной передачей, записывает сообщения от корреспондентов с целью дальнейшего их использования. Однако случайное число на этапе (2) и является подтверждает А подлинность сообщения от ЦРК и не является повторной передачей ответа от одной из пошлых итераций протокола. Аналогично обстоит и с проверкой достоверности сообщений подтверждения подлинности сообщений корреспондента В.
Таким образом применение рандомизации в данном протоколе защищает его от повторной работу на старых или заведомо подложных ключах.
Протокол Otway-Rees
Этот протокол также использует симметричную криптографию [D. Otway O. Rees “Efficient and Timely Manual Autentification”], и работает по следующей схеме:
Корреспондент А создает сообщение, состоящее из порядкового номера I, его имени, имени корреспондента В и случайного числа. Это сообщение шифруется ключом, общим для А и ЦРК. Корреспондент А посылает это сообщение В вместе с порядковым номером и их именами:
{I, A, B Ek(kat, RA, I, A, B)}
Корреспондент В создает сообщение, состоящее из нового случайного числа, порядкового номера, имени А и имени В. Сообщение шифруется ключом, общим для А и В. Корреспондент В посылает это сообщение ЦРК
вместе зашифрованным сообщением А, порядковым номером, их именами: {I, A, B, Ek(kat, RA, I, A, B), Ek(kab, RB, I, A, B)}
ЦРК генерирует сеансовый ключ ki,. Затем он создает два сообщения. Одно, состоящее из случайного числа корреспондента А и сеансового ключа, зашифрованного на общем секретном ключе, для ЦРК и А. Другое сообщение, состоящее из случайного числа корреспондента В и сеансового ключа, зашифрованное на секретном ключе, общем для ЦРК и корреспондента В. ЦРК отправляет оба сообщения вместе с порядковым номером корреспонденту В: {I, Ek(kat , RA, ki), EB(kbt ,RB, ki)}
Корреспондент В отправляет А сообщение, зашифрованное его секретным ключом, и порядковый номер: {I, Ek(kab, ki , RA)}.
Корреспондент А дешифрует сообщение, получая свой ключ и случайное число. А убеждается, что входе протокола они не изменились.
Предварительные вычисления:
1) А выполняет шифрование Ek(kat, RA, I, A, B)= cai .
2) В выполняет шифрование Ek(kbt, RB, I, A, B) =cbi
3) ЦРК генерирует сеансовый ключ .
Активная часть протокола:
1) А создает сообщение {I, A, B, cai } и передает его корреспонденту В.
2) В принимает сообщение и добавляет к нему cbi и передает {I, A, B, cbi} ЦРК.
3) ЦРК принимает сообщения, дешифрует Dk(kat, cai) = {RA, I, A, B} , Dk(kbt, cbi) = {RB, I, A, B} , выполняет шифрование Ek(kbt, RB, ki) =sbi , Ek(kat, RA, ki) =sai создает два сообщения {sai,I}, {sbi,I} и передает их корреспонденту В.
4) В принимает оба сообщения, дешифрует на своем секретном ключе Dk(sbi) ={R’B, ki }, проверяет подлинность R’B как равенство R’B = RB и передает сообщение {sai,I}, корреспонденту А.
5) А принимает сообщение {sai,I}, дешифрует на своем секретном ключе Dk(sai) ={R’A, ki }, проверяет равенство R’А = RА.
Если проверка всех случайных чисел прошла успешно, и порядковый номер не изменился входе протокола, корреспонденты А и В убеждаются в подлинности друг друга и получают сеансовый ключ для организации работы протокола шифрования.
Протокол Neuman-Stubblebine
Этот протокол, является модификацией протокола Yahalom, в нем также имеется противодействие атаке на повторной передачей с подавлениям [A. Kehne, J.Schonwalder, H. Langendofer “A Nonce-Based Protocol for Multiple Autentifications” ] и позднее в [B.C. Ncuman S. Stubblebine “A Note on the Use Timestamps as Nonces”].
Корреспондент А генерирует случайное число и объединяет свое имя с ним, и отправляет созданное сообщение корреспонденту В. В объединяет имя А, его случайное число и метку времени, шифрует созданное сообщение общим с ЦРК секретным ключом и посылает его ЦРК, добавляя свое имя и новое выработанное случайное число. ЦРК принимает сообщение, генерирует сеансовый ключ. Затем он создает два сообщения. Первое включает имя В, случайное число А, сеансовый ключ, метку времени и шифруется на секретном ключе, А. Второе сообщение состоит из имени А, сеансового ключа, метки времени и шифруется на секретном ключе,
В. ЦРК посылает оба сообщения А вместе со случайным числом корреспондента В. А дешифрует сообщение, зашифрованное на его ключе, извлекает сеансовый ключ и убеждается, что случайное число совпадает со значением, отправленным на этапе (1). А посылает В два сообщения. Одним является сообщение ЦРК, зашифрованное на секретном ключе В. Второе — это случайное число корреспондента В, зашифрованное на сеансовом ключе. В дешифрует принятое сообщение, зашифрованное на его ключе, извлекает сеансовый ключ и убеждается, что значения метки времени и случайное число те же что и на этапе (2).
1) А генерирует RA и посылает свое имя и RA корреспонденту В.
2) В формирует метку времени ti, случайное число RB, выполняет шифрование Ek(kbt, RA, ti )= cbi на своем секретном ключе. После чего передает {cbi, B,RB}, ЦРК.
3) ЦРК принимает сообщение В, генерирует ki, выполняет шифрование Ek(kat, A, ki, ti )= cb2i , Ek(kbt, B, ki,, RA, ti )= ca2i . Передает сообщение {ca2i, cb2i,B} корреспонденту А.
4) А дешифрует принятое сообщение на своем ключе Dk(kat, ca2i )= {B, R’A, ti ki}, устанавливает сеансовый ключ ki, проверяет равенство R’A = RA . Выполняет шифрование Ek(ki, ti,RB)= ca3i . Передает корреспонденту В {ca3i, cb2i}
5) В принимает {ca3i, cb2i}, дешифрует Dk(cb2i )= {A, ki, RA, ti} устанавливает сеансовый ключ ki, на нем выполняет дешифрование Dk(ca3i ) = {t’ia,R’B} и проверяет метку времени и равенство RB=R’B.
Если оба случайных числа и метка времени совпадают, А и В убеждаются в подлинности дуг друга и получают сеансовый ключ. Синхронизация часов всех участников протокола не требуется, так как метка времени формируется и определяется только по часам корреспондента В и, соответственно, проверяется только им же.
Статьи к прочтению:
Мусульмане научили всех шифровать. Лунный календарь
Похожие статьи:
-
Протоколы обмена ключевым материалом
МИНИСТЕРСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ ПО СВЯЗИ И ИНФОРМАТИЗАЦИИ Федеральное государственное Образовательное бюджетное учреждение Высшего профессионального…
-
Протоколы удостоверения подлинности
Удостоверение подлинности средствами криптосистем, предназначенных для шифрования и вычисления ОНФ. На практике часто встает вопрос аутентификации…