Курсовая работа На тему: “типичные дефекты в криптографических протоколах”





Скачать 198.16 Kb.
НазваниеКурсовая работа На тему: “типичные дефекты в криптографических протоколах”
страница2/2
Дата публикации08.05.2015
Размер198.16 Kb.
ТипКурсовая
100-bal.ru > Информатика > Курсовая
1   2

Дефекты в криптографических протоколах


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

  • протоколы с криптосистемой DH (Диффи, Хэллман);

  • протоколы с криптосистемой RSA (Райвест, Шамир, Адлеман);

  • протоколы с коммутативным шифрованием (Шамир);

  • протоколы аутентифицированного распределения ключей;

  • протоколы, основанные на тождествах.

Протоколы с криптосистемой DH (Диффи, Хэллман)


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

Протокол ключевого обмена DH


Пользователи А и В формируют секретный ключ парной связи Kab с помощью следующего протокола (Рис.1)

  • Пользователь А от датчика случайных чисел (ДСЧ) генерирует случайное число Xa, вычисляет и посылает его В.

  • Пользователь В от своего датчика генерирует случайное число Xb, вычисляет и посылает его А.

  • Пользователь А, получив число Yb от В, вычисляет.

  • Пользователь В, получив число Ya от А, вычисляет.



Рис.1
Числа Xa, Xb стираются. Поскольку , то Kab = Kba .

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

А : ДСЧ (А) Xa; ; [A ║ B ║ Ya] B

В : ДСЧ (В) Xb; КЗУ(В); ;

[B║A║Yb] A,

А :

Здесь: ║ - знак присоединения, [ ... ] - сформированное сообщение, КЗУ - ключевое запоминающее устройство.

Предполагается, что канал без ошибок и без воздействий противника (Е).

Атака 1. Еb - противник Е, играющий роль пользователя В, перехватывает сообщение от А к В и формирует ключ парной связи Kea=Kae, причем А считает, что это ключ связи с В (Рис.2):

А : ДСЧ (А) Xa; ; [A ║ B ║ Ya] EbB

Eb : ДСЧ (E) Xе; КЗУ(E); ;

[B║A║Ye] A

А :


Рис.2
Атака 2. Еа, Еb - противник Е, играющий роли пользователей А и В, перехватывает сообщения от А и В, формирует ключи Kae и Keb парной связи с А и В путем ведения двух параллельных протоколов. В результате пользователи А и В считают, что они имеют конфиденциальную связь на ключе Kab; в действительности они установили шифрованную связь с перешифрованием у противника Е. (Рис.3).


Рис.3


А : ДСЧ (А) Xa; ; [A ║ B ║ Ya] Eb

Eb : ДСЧ (E) Xе; КЗУ(E); ;

[B║A║Ye] A

Ea : [A║B║Ye] B ,

А :

В : ДСЧ (В) Xb; КЗУ(В); ; [B║A║Yb] Ea,

Ea :

Протокол аутентифицированного ключевого обмена DH


После получения системных констант от сервера S пользователи А,В,С,... генерируют от ДСЧ секретные ключи Ха, Хb, Xc,... , вычисляют открытые ключи ; ; ; ... и помещают их в защищенный от модификаций общедоступный справочник {Ya, Yb, Yc, ...}. (Рис.4).


Рис.4

Формальная запись протокола:

В : ДСЧ (В) tb ; ; [BAZ] A

A : ДСЧ (A) ta ; ;

;

[ABUV] канал [] B

В: =A(?); =B(?);;

Здесь знак “~” означает возможность искажения каналом или модификации противником, знак “  ” означает возведение в степень , - обратный к tb по mod (p-1), знак (?) после равенства означает, что проверяется выполнение равенства: при невыполнении протокол разрывается, при выполнении осуществляется переход к следующей операции.

В результате ключ при U отличается от Kab , если выполняется проверка аутентичности . Отсюда следует:

Атака 1. Противник Еа, играющий роль пользователя А, подменяет в канале сообщение [ABUV]  на [AB] с условием . В результате пользователь В формирует ложный ключ Kab.

Атака 2. Противник Еb, играющий роль В, посылает А число , на что тот по протоколу отвечает числами (UV), где В результате противник Е устанавливает с А ключ парной связи Kae, переданный по открытому каналу связи, причем А считает, что это ключ для связи с В.

Протоколы с криптосистемой RSA


Предварительно все пользователи А, В, С, ... сети связи генерируют личные модули na, nb, nc, ..., каждый из которых имеет структуру: n=pq произведения двух простых чисел p и q (na=paqa; nb=pbqb; nc=pcqc; ... ), выбранных надлежащим образом [ 2 ]. Затем каждый пользователь соответствующим образом выбирает пару чисел (e, d), удовлетворяющих условию , где Далее числа (n, e) в качестве открытого ключа отправляются по достоверному каналу в общедоступный справочник. Числа (p, q, , d) пользователи сохраняют в секрете.

Протокол шифрования и цифровой подписи по RSA


Данный протокол рекомендован МККТТ, рекомендация Х.509. Дефект протокола состоит в неправильном порядке операции шифрования и подписывания: правильно сначала подписать, затем шифровать. В формальной записи протокола применяются следующие обозначения:

М - передаваемое сообщение от А к В;

Сb - шифрованное А сообщение М на ключе eb получателя В;

Сba - сообщение Сb, подписанное А на ключе da отправителя А.





Предполагается, что nba. Обоснование последних двух равенств состоит в следующих преобразованиях:



Атака1. Некоторый пользователь Х (нарушитель) перехватывает сообщение (Рис.5), снимает ЭЦП пользователя А, пользуясь открытым ключом (na, ea).


Рис.5


Полученное шифрованное сообщение Сb он подписывает на своем секретном ключе dx, тем самым присваивая себе авторство на сообщение М. Получив сообщение , пользователь В снимает подпись Х с помощью открытого ключа (nx, ex), расшифровывает на своем секретном ключе db и выделяет сообщение М, которое считает сообщением от Х, но не от А, если само сообщение М не содержит признаков А.

Замечание: если na=nb, то операции шифрования и подписывания становятся перестановочными, так что снятие ЭЦП становится возможным при любом порядке этих операций.

Протокол шифрования по RSA на общем модуле


Пусть сообщение М шифруется по криптосистеме RSA с общим модулем “n”. Пользователи А и В получают шифрованные сообщения ,

Атака1. Противник Е перехватывает шифрованные сообщения Са и Сb. Зная открытые ключи ea и eb, противник по алгоритму Эвклида находит числа x, y так, что xea + yeb = 1 (с большой вероятностью числа ea и eb взаимно просты). Тогда . В результате противник вычисляет сообщение М, зная только открытые ключи ea, eb и модуль n, но не зная модуля , что равносильно знанию факторизации n=pq.

Протоколы с коммутативным алгоритмом шифрования


Алгоритм шифрования называется коммутативным, если результат последовательного шифрования сообщения М на ключах К1 и К2 не зависит от порядка используемых ключей: К2{К1{M}}= =K1{K2{M}}, где K{M} - результат шифрования M на ключе К. Примерами коммутативного алгоритма шифрования являются алгоритм DH, алгоритм RSA при общем модуле, алгоритм гаммирования (сложения по модулю). Коммутативность алгоритма шифрования является здесь следствием коммутативности операций модульного умножения и сложения.

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

Трехшаговый протокол шифрования Шамира






Рис.6
Формальная запись протокола:

A: ДСЧ (А) х; М х В

В: ДСЧ (В) y; (М х) y A

A: (М х y) x = M y B

B: (M y) y = M

Атака 1. Противник Е перехватывает все три сообщения в канале связи и складывает их по mod2. В результате получается М в открытом виде.

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

Трехшаговый протокол с коммутативным шифрованием


В общем случае трехшаговый протокол шифрования Шамира имеет следующую формальную запись (Рис.7):

А: Ka { M }B

B:

A:

B:


Рис.7


Ведущий А протокола применяет сначала операцию шифрования на ключе Ка, затем операцию расшифрования с ключом ;

Ведомый B применяет сначала операцию расшифрования с ключом К, затем операцию шифрования с ключом Кb. Предполагается, что для всякого М и К имеет место: К-1{K{M}}=K{K-1{M}}.

Атака 1. Рефлексия

Противник Еb, играющий роль В, возвращает А его первое сообщение. Действуя по протоколу, А применяет к нему операцию , и в канале оказывается открытое сообщение М.

А:

Атака 2. (Параллельный протокол)

Противник Еb возвращает А его первое сообщение не в качестве ответа, а как начало параллельного протокола с ведущим Еb и ведомым А. Предполагается, что при работе в сети такое возможно (Рис.8).


Рис.8



I протокол ( А Еb )

II протокол ( Еb А )

1. А: Ка{M}Еb







1’. Еb: Ka{M}A




2’. A: {Ka{M}}=MЕb

2. Еb: A




3. A: {}Еb







3’. Еb : {}A

4. A: Ка{{}}=







4’. ___________________


В результате противник Е получает сообщение М, предназначенное для В, а пользователь А получает ложное сообщение , якобы от В.

Атака рефлексии и с параллельным протоколом являются сильным оружием противника, против которого трудно предложить простую защиту. Возможны также атаки с несколькими параллельными протоколами, в которых противник Е может играть одновременно несколько ролей: например, Ea, Eb и Es - роль сервера S.

Протоколы аутентифицированного распределения ключей


Рассматриваемые в этом разделе протоколы имеют трех участников: пользователи А, В и сервер S. Цель протоколов - генерация и безопасная передача сервером S ключа парной связи Kab пользователям А и В. Безопасность включает свойства конфиденциальности, целостности, аутентичности и “свежести”. Это означает, что в результате протокола подлинный ключ Kab должен оказаться именно у А и В, и только у них. Свойство “свежести” означает, что участники протокола имеют возможность убедиться, что принимаемые сообщения сформированы в данном запуске протокола, а не взяты из параллельного или более раннего протокола. С этой целью используются “нонсы” Na и Nb - случайные числа одноразового использования.

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

Протокол передачи ключа с квитированием


В данном протоколе используется криптосистема RSA (типа RSA) для передачи по каналу ключей парной связи с ЭЦП, шифрованием и квитированием. Алгоритмы шифрования / расшифрования пользователей А, В, С обозначаются через (Еа, Da), (Eb, Db), (Ec, Dc), причем все алгоритмы шифрования считаются открытыми, а каждый алгоритм расшифрования является секретом пользователя. Подписывание осуществляется применением алгоритма D, а проверка подписи - применением алгоритма Е. Авторизованный пользователь С играет роль противника. Для упрощения обозначений будем писать EDK вместо E(D(K)).

Формальная запись протокола:

A: ДСЧ(А)  Kab; EbDaKab=Х; [A║B║X] канал[]B

B: =B(?); EaDb=КЗУ(В); EaDb=Y; [B║║Y]

 канал [ ]A

A: =B(?); =A(?); EbDa=;= Kab (?); Kab КЗУ(A)

Знаки “~” и “__” означают возможность модификации сообщений канальными ошибками или противником в направлениях АВ и ВА. Предположим, что протокол АВ проходит в отсутствии модификаций так, что Y= EaDbKab , но нарушитель С перехватывает квитанцию Y и начинает свой протокол СА.

С: AY] A

A: A= A(?); Ec Da Y= Ec Db KabКЗУ (А); Ec Da=Z;

[ACZ] C

C: Ea Dc Z=КЗУ (C); Eb Dc= EbDcEcDbKab=KabКЗУ(C)

В результате С узнает ключ Kab и формирует с А ключ с отклонением от протокола, чего пользователь А не замечает.

Протокол Нейман - Стаблбайн


Словесное описание протокола:

  • Пользователь А передает В свой нонс Na в открытом виде.

  • Пользователь В шифрует на ключе Kbs нонс Na, свою отметку времени Тb и посылает серверу S вместе со своим нонсом Nb, который вернется к В от А в шифрованном виде на ключе Kab и будет проверен.

  • Сервер S генерирует ключ Kab, шифрует его для А и В, но оба шифрованных сообщения отправляются к А с открытым нонсом Nb.

  • Пользователь А выделяет соответствующую часть для В и посылает В вместе с Kab{Nb}, для проверки “свежести” полученного ключа Kab (Рис.9).




Рис.9
Атака. Противник Еа запускает протокол, выбрав число Na по своему усмотрению, из сообщения ВS выделяет Nb и Kbs{ANaТb}, игнорирует сообщение SЕа, составляет и посылает В последнее сообщение протокола: [Kbs{ANaТb}Na{Nb}], где вторая часть есть нонс Nb, шифрованный на Na, как на ключе. В этом сообщении роль Kab играет Na. Протокол не предусматривает проверок признаков ключа, а потому Na будет принято В как ключ парной связи Kab (заданный противником Еа).

Протоколы, основанные на тождествах


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

Для примера рассмотрим две модификации протокола односторонней идентификации. Предварительно сервер S выбирает надлежащим образом значения системных параметров (Р, ), генерирует от ДСЧ свой секретный ключ х, вычисляет соответствующий открытый ключ и рассылает всем пользователям постоянные (Р, , y) по достоверному каналу. Далее, для каждого пользователя, например, для А сервер генерирует от ДСЧ случайное секретное число “К”, вычисляет открытый идентификатор r=k (mod p), находит секретный идентификатор S=K-1(A+xr)mod(p-1) и по безопасному каналу передает А его идентификационные данные (A, r, S), например, А получает их в ЦГРК при регистрации вместе с системными константами Р, , y. Заметим, что секретный идентификатор S является функцией неизвестного числа “К”, которое стирается, и секретного ключа х сервера S, а также функцией адреса А и открытого идентификатора “r”.

Двухшаговый протокол односторонней идентификации


В этом протоколе пользователь В, желая идентифицировать А, посылает “вопрос” (случайное число Z) и проверяет правильность “ответа” А (Рис.10).

Формальная запись протокола:

В: ДСЧ(В) Z А

А: ДСЧ(А) t; rt(modp)=u; (S+tz) mod (p-1) = V; [A║r║u║v] B

B: ; A - аутентифицирован.


Рис.10


Заметим, что если какие-то числа А, r, u, v при заданных , y, z удовлетворяют уравнению (*) в обычной арифметике (без mod p), то они удовлетворяют такому же уравнению по любому модулю.

Положим rij=, где i, j, l, m - целые. Тогда уравнение (*) удовлетворяется, если iv= A+lz; jv = rij + mz. Оба уравнения для всякого z дают одинаковые значения v, если пропорциональны их коэффициенты 

Отсюда следует, что А должно равняться ; (числа i, j удобно выбрать так, чтобы v было целым). Заметим, что поскольку равенство (*) будет проверяться по mod p, то систему уравнений относительно показателей (v, z) можно решать по mod(p-1), согласно теореме Эйлера. Числа Aij, rij, ulm, в общем случае, имеют разрядность значительно больше, чем разрядность модуля p. Поскольку число Aij участвует в уравнении (*) только в показателе, то вместо него можно использовать (числа v, z уже имеют разрядность ). Число ulm участвует в уравнении (*) только в основании степени, поэтому его можно заменить на . Наконец, число rij участвует в уравнении (*) как в показателе, так и в основании степени, а потому его можно заменить только на т.е. число разрядности 2.

Атака. Противник Е, играющий роль , перехватывает в канале связи “вопрос” Z и дает “ответ”: B, где число v находит из системы уравнений по mod (p-1). Если В не проверяет разрядность чисел в “ответе”, то у него уравнение (*) удовлетворяется. Если В проверяет наличие значения rij в справочнике открытых идентификаторов, то противник может заранее подобрать целые i, j так, чтобы значение rij в справочнике было.

Трехшаговый протокол односторонней идентификации


В данном протоколе пользователь А, желая идентифицировать себя В, посылает ему свои идентификационные данные А, r и синхроданные сеанса связи “u”. На “вопрос” Z от В он должен дать правильный “ответ” v такой, чтобы удовлетворилось проверочное равенство (*) (Рис.11).


Рис.11


Для авторизованного пользователя это сделать легко, поскольку он знает свой секретный идентификатор (S) и сам генерирует синхроданные (u) специальным образом. Для противника Е, не знающего ни одного секретного идентификатора, это также удалось сделать в протоколе 7.1. , но там “вопрос” Z был известен заранее. В протоколе 7.2. противник должен сначала предъявить какие-то идентификационные данные и только затем получает “вопрос” Z от В, на который он должен дать “правильный ответ”. Формальная запись протокола между А и В:

А: ДСЧ (А) t; rt (mod p) = u; [A║ r║ u] B

B: ДСЧ (В) Z; [B║Z] A;

A: ; v = (S+tz) mod (p-1); [A║ v] B

B: ; A идентифицировался у В.

Атака. Противник Е, играющий роль , посылает В сообщение ], где подбирает идентификационные данные, как в атаке п.7.1. В ответ на любой “вопрос” Z от В, противник решает систему уравнений относительно v по mod(p-1) и посылает v]. Если В не проверяет разрядность чисел в “ответе”, то противник идентифицируется В под именем , не зная секретного идентификатора этого пользователя.

Заключение


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

Литература





  1. Диффи, Хэллман. ”Новые направления в криптографии”. ТИИЭР, т.67, №3, 1979

  2. Л.Н. САПЕГИН, «СПЕЦИАЛЬНАЯ ТЕХНИКА СРЕДСТВ СВЯЗИ», Выпуск 1, Серия «Системы, сети и технические средства конфиденциальной связи», 1996 г.
1   2

Похожие:

Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа на тему : Формирование рынка ценных бумаг в Украине
Курсовая работа содержит 38 листов, 2 рисунка, 2 таблицы и было использовано 11 источников
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа по дисциплине Электромагнитная совместимость систем...
Курсовая работа состоит из 20 с, в которых содержаться: 3 рисунка, 3 таблицы, 6 формул и 4 ссылки на литературу
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа на тему «Открытый урок»
Данная курсовая работа выполнена для того, чтобы учителя русского языка и литературы могли использовать разработанные мною уроки...
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа по русскому языку Тема: Окказиональное словообразование...
Рассмотрены наиболее типичные случаи употребления окказионализмов, сферы их применения и структура. Примеры, приведенные в данном...
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа
Курсовая работа оформляется в виде электронного файла и прикрепляется к своей странице в системе мониторинга нир. Распечатывать работу...
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа по аудиту, на тему: «Аудит учета кассовых операций»

Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа На тему: «Учет затрат и калькулирование себестоимости продукции»

Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа по «(указать наименование дисциплины)» на тему «(указать выбранную тему)»
Подведите курсор к букве с (содержание). Далее Абзац. Положение на странице. Поставить «птичку» в окошечко с новой страницы
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа по дисциплине «Предпринимательское право»
Курсовая работа имеет целью систематизацию, закрепление и расширение теоретических знаний, углубленное изучение и решение студентом...
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа по курсу тэс на тему “Расчет технических характеристик
Канала связи
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа на тему: Wi-Fi технология беспроводной связи
Архитектура, компоненты сети и стандарты
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовой работы. Составитель: доцент Корляков А. С. Екатеринбург...
Курсовая работа самостоятельная работа студента, выполняемая в соответствии с типовой программой учебного процесса по подготовке...
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа Компьютерная графика Савин И. И. 16. 12. 2008 Работа...
Московский государственный институт электроники и математики (технический университет)
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconРекомендации к оформлению курсовой и дипломной работы по истории искусства. Курсовая работа
Курсовая работа задание, которое выполняется студентами в определённый срок и по определённым требованиям. Защита курсовых работ...
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа по дисциплине на тему: «Мониторы»
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Курсовая работа На тему: “типичные дефекты в криптографических протоколах” iconКурсовая работа на тему: «Совершенствование системы мотивации как...



Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск