Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
94
Добавлен:
19.02.2016
Размер:
381.95 Кб
Скачать

10.2. Распределение ключей и аутентификация

Основой криптографического протокола (в математическом понимании этого термина) является некоторый криптоалгоритм. В отличие от шифрования, кроме наличия злоумышленника, в криптопротоколах предполагается недоверие участников друг к другу.

Можно выделить следующие основные классы прикладных криптографических протоколов:

– генерация ключей: пересылка ключей (перешифрование), согласование ключей (протоколы типа Диффи-Хеллмана);

– аутентификация (подтверждение подлинности источника, данных, ключей);

– подпись (обычная, затемненная, конфиденциальная и т. д.);

– электронные деньги (система протоколов);

– протоколы голосования;

– конфиденциальные вычисления.

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

Отметим несколько аспектов, связанных с остальными протоколами.

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

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

После этого клиент передает банку заготовки купюр с номерами и получает так называемую затемненную (слепую) подпись. Из подписанного материала клиент постепенно «извлекает» купюры, которыми он может расплатиться.

При этом банк, получив эти купюры, не узнает, в каком именно сеансе он их подписал. Вот что гарантирует протокол снятия со счета. Другими словами: банк всегда узнает купюру, которую он подписал; но он не сможет (с вероятностью выше простого угадывания) указать, кому и в каком сеансе он эту купюру выдал.

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

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

Задача обеспечения конфиденциальности вычислений формулируется следующим образом. Имеется процессоров иаргументов. Каждый процессор «знает» свой аргумент.

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

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

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

Криптопротоколы принято подразделять на следующие виды:

– арбитрируемые (arbitrated);

– с судейством (adjudicated);

– самодостаточные (self-enforcing).

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

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

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

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

Желательно иметь универсальный самодостаточный протокол для всех применений. Однако на практике в каждом конкретном случае приходится конструировать свой специальный самодостаточный протокол.

Различают следующие виды атак на протоколы:

– пассивные, целью которых является анализ или подслушивание протокола для извлечения необходимой информации. Соответствует случаю атаки на криптосистемы ciphertext-only attack;

– активные, ориентированные на изменение протокола в пользу нарушителя, включая вставку, удаление или изменение исходного сообщения;

– пассивное мошенничество (cheaters) со стороны участников протокола, имеющее целью в рамках протокола получение большего объема информации;

– активные жульничество, если для достижения цели предыдущей атаки возможно изменение протокола.

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

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

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

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

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

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

2. А генерирует некоторое случайное число (равное длине ключа шифрования), вместе с личным идентификаторомшифрует в режиме СBC и направляет абоненту:.

3. Абонент генерирует свое случайное число(по длине), зашифровывает в режиме СBC с помощью транспортного ключа оба случайных числа, свой идентификатори посылает их абоненту:.

4. А расшифровует полученное сообщение и убеждается, что случайное число, посланное , совпадает с результатом.

5. Абонент из первой половины случайного числаи второй половины случайного числасоставляет свой сеансовый ключ зашифрования. Абонентвоспользуется соответственно второй половиной случайного числаи первой половины случайного числасоставит свой ключ зашифрования.

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

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

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

Формальное описание простейшего протокола на основе СОК можно представить в виде следующей последовательности действий.

1. Абоненты идоговариваются об используемой криптосистеме.

2. Абонент посылает абонентусвой открытый ключ.

3. Абонент зашифровывает сообщение с использованием полученного открытого ключа и посылает его абоненту.

4. Абонент расшифровывает полученное отсообщение, используя собственный секретный ключ.

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

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

Практическое требование к числу : разложение числана множители должно содержать большой простой множитель размера, примерно в половину размера, а размер должен превышать 512 битов.

1. Абоненты идоговариваются о значениях(несекретные параметры) и обмениваются ими в открытом виде.

2.Абонент генерирует большое случайное целое(секретный ключ) и вычисляет свой открытый ключ. В свою очередьгенерируети вычисляет.

3. Абоненты иобмениваются открытыми ключами.

4. Абоненты ивычисляют общий ключ.

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

К числу недостатков можно отнести невысокую скорость работы криптопротокола и опасность проведения криптоаналитических атак типа «агент посредине» (Man-in-the-Middle Attack). Один из вариантов данной атаки может быть описан следующим образом.

1. Нарушитель имеет возможность «разорвать линию связи», т.е. внедриться междуитаким образом, что поток информации следует по схемеи обратно.

2. Абонентпосылаетсвой открытый ключ. Нарушительпосылаетсвой открытый ключ от имени.

3. Абонент посылаетсвой открытый ключ, который также перехватывается и подменяется собственным ключом нарушителя, который действует от имени.

4. Абонент посылает зашифрованное с помощью открытого ключасообщение абоненту. Нарушитель, перехватив сообщение, сначала расшифровывает его, читает, а затем зашифровывает с помощью открытого ключаи отсылает.

5. При передаче в обратном направлении ситуация полностью повторяется.

Эта атака работает эффективно, если у абонентов инет средства для аутентификации (проверки подлинности и легальности) участников информационного обмена.

Простейший способ борьбы с атакой типа «агент посредине» – это передать по телефону (или иному каналу, где обеспечивается аудиовизуальная узнаваемость) результат хэширования своего ключа, но данная процедура становится нереальной в случае проведения тысяч соединений в минуту.

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

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

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

Такую проверку достаточно просто реализовать с помощью хэш-функции. Для этого в памяти компьютера вместо паролей хранится результат хэширования пароля – его дайджест.

Для каждого принятого пароля вычисляется значение хэш-функции которое сравнивается с хранимым в памяти значением. Такая процедура практически исключает возможность компрометации пароля в случае доступа злоумышленника к памяти компьютера.

Соседние файлы в папке Гулак_по_главам