7 (Ответики к экзамену), страница 2
Описание файла
Файл "7" внутри архива находится в папке "Ответики к экзамену". Документ из архива "Ответики к экзамену", который расположен в категории "". Всё это находится в предмете "компьютерные сети" из 6 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "7"
Текст 2 страницы из документа "7"
В этом случае можно предложить следующую процедуру взлома:
-
Вычислить все возможные применения функции Е к шифруемому тексту.
-
Вычислить все возможные дешифрации зашифрованного текста однократным применением дешифрирующей функции.
-
Отсортировать полученные таблицы и искать совпадающие строки.
-
Полученная пара номеров строк – пара ключей.
-
Проверить эту пару на совпадение шифрования; если неудачный результат, продолжить с шага 1.
Тройное шифрование совершенно меняет дело. На рисунке 7-9 показана модификация схемы шифрования с двумя ключами в три этапа - EDE-схема. Ее никому еще не удалось вскрыть. Она была положена в основу международного стандарта. Здесь может возникнуть два вопроса. Первый: почему в этой схеме используются 2, а не 3 ключа. Второй: почему используется схема EDE, а не EEE? Ответ на первый вопрос состоит в том, что двух ключей более чем достаточно для большинства применений. Использование схемы EDE вместо ЕЕЕ связано с особенностями организации алгоритма DES.
Рисунок 7-9. Тройное шифрование с помощью алгоритма DES
Надо отметить, что было предложено много других алгоритмов шифрования.
Хорошо известным является международный алгоритм шифрования данных IDEA. Он был разработан специалистами из Швейцарии, и в нем используют 128-разрядный ключ. Подобно DES, этот алгоритм разбивает исходный текст на 64-разрядные блоки, над которыми производят определенные итерации, каждая из которых имеет параметры. В результате на выходе получают 64-разрядный блок, как показано на рисунке 7-10 (а). На каждой итерации значение каждого выходного бита зависит от всех входных битов, поэтому достаточно 8 итераций, а не 19, как в DES.
Алгоритмы с открытыми ключами
Идея алгоритмов шифрования с открытыми ключами была предложена в 1976 году Диффи и Хеллманом и состоит в следующем. Пусть у нас есть алгоритмы Е и D, которые удовлетворяют следующим требованиям:
-
D(E(P))=P
-
Чрезвычайно трудно получить D из E.
-
Е нельзя вскрыть через анализ исходных текстов.
Алгоритм шифрования Е и его ключ публикуют или помещают так, чтобы каждый мог их получить, алгоритм D также публикуют, чтобы подвергнуть его изучению, а вот ключи к последнему хранят в секрете. В этом случае взаимодействие двух абонентов А и В будет выглядеть следующим образом. Пусть А хочет послать В сообщение Р. А шифрует EВ(P), зная алгоритм и открытый ключ для шифрования. В, получив EВ(P), использует DВ с секретным ключом, т.е. вычисляет DВ(EВ(P))=P. Никто не прочтет P кроме A и B, т.к. по условию алгоритм EВ не раскрываем по условию, а DВ не выводим из EВ.
Примером такого алгоритма является алгоритм RSA. Общая схема этого алгоритма такова:
-
Выберем два больших (больше 10100) простых числа p и q.
-
Вычислим n=pхq и z=(p-1)х(q-1).
-
Выберем d, относительно простое к z.
-
Вычислим e такое, что eхd=1 mod z.
Разбиваем исходный текст на блоки Р так, чтобы каждый блок, как число не превосходил n. Для этого выбираем наибольшее k такое, чтобы P=2k<n. Вычисляем С=Pe(mod n), чтобы зашифровать сообщение P. Для расшифровки вычисляем P=Cd(mod n).
Для шифрования нам нужны (e, n) – это открытый ключ, для расшифровки (d, n) – это закрытый ключ. Можно доказать, что для любого Р в указанном выше диапазоне функции шифрования и дешифрования взаимообратные. Безопасность этого метода основана на высокой вычислительной сложности операции разложения на множители больших чисел. Так, например, разложение на множители 200-разрядного числа потребует 4 миллиардов лет.
Безопасность и способы защиты данных в сетях ЭВМ: протоколы установления подлинности документов и пользователей (аутентификация на основе закрытого разделяемого ключа, установка разделяемого ключа, проверка подлинности через центр раздачи ключей, установление подлинности протоколом Цербер, установление подлинности, используя шифрование с открытым ключом). Электронная подпись (подпись с секретным ключом, подпись на основе открытого ключа). Сокращение сообщения.
Протоколы установления подлинности (аутентификации) позволяют процессу убедиться, что он взаимодействует с тем, с кем должен, а не с тем, кто лишь представляется таковым. Очень часто путают проверку прав на выполнение тех или иных операций с аутентификацией. (В первом случае имеем авторизацию.) Аутентификация отвечает на вопрос: как убедиться, что вы взаимодействуете именно с нужным процессом. Если, например, к серверу процесс обратился с запросом удалить файл x.old и объявил себя процессом Вася, то сервер должен убедиться, что перед ним действительно Вася и что Вася имеет право делать то, что просит. Ключевым конечно является первый вопрос, ответ на второй вопрос – это дело просмотра таблицы. Общая схема всех протоколов аутентификации такова: сторона А и сторона В начинают обмениваться сообщениями между собой или с Центром раздачи ключей (ЦРК). ЦРК - всегда надежный партнер. Протокол аутентификации должен быть устроен так, что даже если злоумышленник перехватит сообщения между А и В, то ни А, ни В не спутают друг друга со злоумышленником.
7.1.5.1. Аутентификация на основе закрытого разделяемого ключа
Основная идея первого протокола аутентификации, так называемого «протокола ответ по вызову», состоит в том, что одна сторона посылает некоторое число (вызов), другая сторона, получив это число, преобразует его по определенному алгоритму и отправляет обратно. Посмотрев на результат преобразования и зная исходное число, инициатор может судить, правильно сделано преобразование или нет. Алгоритм преобразования является общим секретом взаимодействующих сторон. Будем предполагать, что стороны А и В имеют общий секретный ключ KАВ. Этот секретный ключ взаимодействующие стороны как-то установили заранее, например, по телефону. Описанная выше процедура показана на рисунке 7-12.
Рисунок 7-12. Двусторонняя аутентификация с запросом и подтверждением
На этом рисунке:
А,В - идентификаторы взаимодействующих сторон
Ri - вызов, где индекс указывает, кто его послал
Кj - ключ, индекс которого указывает на его владельца
Есть несколько общих правил построения протоколов аутентификации (протокол проверки подлинности или просто подлинности):
-
Инициатор должен доказать, кто он есть, прежде чем вы пошлете ему какую-либо важную информацию.
-
Инициатор и отвечающий должны использовать разные ключи.
-
Инициатор и отвечающий должны использовать начальные вызовы из разных непересекающихся множеств.
7.1.5.2. Установка разделяемого ключа
До сих пор мы предполагали, что А и В имеют общий секретный ключ. Рассмотрим теперь, как они могут его установить. Например, они могут воспользоваться телефоном. Однако, как В убедится, что ему звонит именно А, а не злоумышленник? Можно договориться о личной встрече, куда принести паспорт и прочее, удостоверяющее личность. Однако есть протокол, который позволяет двум незнакомым людям установить общий ключ даже при условии, что за ними следит злоумышленник.
Это протокол обмена ключом Диффи-Хеллмана. Его схема показана на рисунке 7-15. Прежде всего, А и В должны договориться об использовании двух больших простых чисел n и g, удовлетворяющих определенным условиям. Эти числа могут быть общеизвестны. Затем, А выбирает большое число, скажем x, и хранит его в секрете. То же самое делает В. Его число – y. Злоумышленник следит за всем этим. Единственно, что мешает ему вычислить x и y, – это то, что не известно алгоритма с приемлемой сложностью для вычисления логарифма от модуля для простых чисел. Однако и у этого алгоритма есть слабое место. Рисунок 7-16 показывает его. Такой прием называется чужой в середине.
7.1.5.3. Проверка подлинности через центр раздачи ключей
Договориться с незнакомцем об общем секрете можно, но вряд ли это следует делать сразу. Кроме этого, общение с n людьми потребует хранения n ключей, что для общительных или популярных личностей может быть проблемой.
Другое решение можно получить, введя надежный центр раздачи ключей (KDC). Его использование иллюстрирует рисунок 7-17.
Рисунок 7-17. Проверка подлинности через центр раздачи ключей
Идея этого протокола состоит в следующем. А выбирает ключ сессии KS. Используя свой ключ KA, A шлет в центр KDC запрос на соединение с В. Центр KDC знает В и его ключ KB. С помощью этого ключа KDC сообщает В ключ сессии KS и информацию о тех, кто хочет с ним соединиться. Однако решение с центром KDC имеет изъян. Пусть злоумышленник как-то убедил А связаться с В и скопировал весь обмен сообщениями. Позже он может воспроизвести этот обмен за А и заставить В действовать так, как если бы с В говорил А! Этот способ атаки называется атака подменой. Против такой атаки есть несколько средств. Одно из них – временные метки. Это решение, однако, требует синхронизации часов. Поскольку в сети всегда есть расхождение в показаниях часов, то надо будет задать определенный интервал, в течение которого допустимо считать сообщение верным. Злоумышленник может использовать прием атаки подменой в течение этого интервала. Другое решение - использование разовых меток. Однако при этом каждая из сторон должна помнить все разовые метки, использованные ранее. Это обременительно. Кроме этого, если список использованных разовых меток будет утерян по каким-либо причинам, то весь метод перестанет работать. Можно комбинировать решения разовых меток и временных меток. Более тонкое решение установления подлинности дает многосторонний протокол «вызов-ответ». Хорошо известным примером такого протокола является протокол Нидхема-Шредера, вариант которого показан на рисунке 7-18. Вначале А сообщает KDC, что он хочет взаимодействовать с В. KDC сообщает ключ сессии, разовую метку RA, шифруя сообщение ключом А. Разовая метка защищает А от подмены. Теперь, имея ключ сессии, А начинает обмен сообщениями с В. RA2 и RB – разовые метки, защищающие А и В от подмен.
Хотя этот протокол в целом надежен, но и при его использовании есть небольшая опасность. Если злоумышленник раздобудет все-таки старый ключ сессии, то он сможет подменить сообщение 3 старым и убедить В, что это А! На рисунке 7-19 приведена схема исправленного протокола, который предложили Отвей и Риис. В этой модификации KDC следит, чтобы R было одним и тем же в обеих частях сообщения 2.
7.1.5.4. Установление подлинности протоколом «Цербер»
Протокол установления подлинности «Цербер» используется многими действующими системами. Он представляет собой вариант протокола Нидхема-Шредера и был разработан в MIT для безопасного доступа в сеть (предотвращения несанкционированного использования ресурсов сети). В нем используется предположение, что все часы в сети хорошо синхронизованы.
Протокол «Цербер» предполагает использование кроме рабочей станции А еще трех серверов:
-
Сервер установления подлинности (СП) – проверяет пользователей на этапе login.
-
Сервер выдачи квитанций (СВБ) – идентификация квитанции.
-
Сервер В – тот кто должен выполнить работу, необходимую А.
СП аналогичен KDC и знает секретный пароль для каждого пользователя. СВБ выдает квитанции, которые подтверждают подлинность заказчиков работ.
Теперь А может обращаться непосредственно к В с этим ключом. Это взаимодействие сопровождается временными метками, чтобы защититься от подмены. Если позднее А понадобится работать с сервером С, то А должен будет повторить сообщение 3, но указать там сервер С. Поскольку сеть может быть очень большой, то нельзя требовать, чтобы все использовали один и тот же СП. Сеть разбивают на области, в каждой из которых - свои СП и СВБ, которые взаимодействую между собой.
7.1.5.5. Установление подлинности с шифрованием с открытым ключом
Установить взаимную подлинность можно с помощью шифрования с открытым ключом. Пусть А и В уже знают открытые ключи друг друга. Они их используют, чтобы установить подлинность друг друга, а затем используют шифрование с секретным ключом, которое на несколько порядков быстрее. Единственным слабым местом этого протокола является предположение, что А и В уже знают открытые ключи друг друга. Обмен такими ключами уязвим для атаки типа «чужой в середине». Ривст и Шамир предложили протокол, защищенный от атаки «чужой в средине». Это так называемый протокол с внутренним замком. Его идея заключается в том, чтобы передавать сообщения в два этапа: сначала только четные биты, затем нечетные.