Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_po_SSRiSIZ.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
164 Кб
Скачать
☆

Обмен ключами средствами специализированных криптосистем

Протокол 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=kib . Передает результат вычислений В.

  4. B принимает (ki)b mod p сообщение от A и вычисляет ((ki)b)-b mod p =ki.

  5. Оба корреспондента устанавливают себе сеансовый ключ ki.

Стойкость данного протокола к атаке грубой силой определяется выбором параметров выполнения операции возведения в степень по модулю. Также протокол не стоек к атаке “внедрением в середину“.

Протоколы удостоверения подлинности

Удостоверение подлинности средствами криптосистем, предназначенных для шифрования и вычисления онф.

На практике часто встает вопрос аутентификации корреспондента при получении доступа к некоторому информационному ресурсу. Каким образом определить наличие прав у корреспондента, а самое главное, является ли корреспондент тем, за кого хочет себя выдать и не скрывается ли под ним злоумышленник. Чаще всего эта проблема решается с помощью протоколов аутентификации на основании паролей. А передает свой уникальный пароль, и вызываемый корреспондент проверяет его правильность. Таким образом, и А, и В известна некоторая секретная информация (или некоторое ее отображение), которую В запрашивает всякий раз, когда А пытается начать обмен информацией.

Удостоверение подлинности с помощью онф, аутентификация по простому парольному механизму.

Роджер Нидхэм и Майк Гай показали, что корреспонденту В не нужно знать сами пароли, вполне достаточно, чтобы он мог отличать правильные пароли от неправильных. Этого легко достичь с помощью ОНФ. При этом у аутентификатора хранятся значения однонаправленных функций паролей, а не сами пароли.

А посылает аутентификатору (B) свой пароль. В вычисляет однонаправленную функцию пароля и сравнивает полученное значение с хранящимся в базе.

  1. А передает пароль Pa корреспонденту В.

  2. В получает пароль Pa и вычисляет h’a=h(Pa)

  3. В сравнивает полученное значение h’a с ha, из библиотеки паролей. Если h’a=ha, то пользователь А получает доступ к данным.

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

Вскрытие с помощью словаря.

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

Это «вскрытие с помощью словаря» может быть успешным с точки зрения улучшения временных характеристик атаки, и снижения временной сложности атаки. Но имеется способ повышения временной сложности данной атаки называемый в литературе «подсаливание». "Соль" представляет собой некоторый объем данных, имеющий случайную структуру, добавляемую к паролям перед вычислением их однонаправленной хэш-функции. Затем в базе паролей фиксируются и значение "соли", и результат вычисления ОНФ. Добавление достаточно большого числа возможных значений "соли" практически устраняет возможность вскрытия с помощью словаря, так как М придется вычислять значение однонаправленной хэш-функции для каждого возможного значения "соли", что потребует значительных временных и вычислительных затрат и эквивалентно атаке на хэш-функцию. Этот прием - простейший пример использования вектора инициализации.

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

Для этого нужно небольшое количество бит "соли". Большинство UNIX-систем аутентификации используют для "соли" 12 бит, а для большинства Windows-систем этот прием вообще не используется. Согласно обзору Брюса Шнайера в книге «Practical Cryptology», Дэниел Кляйн написал программу разгадывания паролей, которая в некоторых системах за неделю часто вскрывала 40 процентов паролей [D.V. Klein, “Large Period Nearly de Bruijn FCSR Sequences”, D. V. Klein, personal communication ].

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

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

SKEY

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

Регистрируясь в системе, А задает случайное число, R. Сервер вычисляет следующие значения ОНФ {f(R), f(f(R)), f(f(f(R)))…} и так далее, N (рекомендуется брать N>100) раз, сохранив эти значения в список xk как {x1, x2, x3, …, xn}. Сервер передает список этих значений А, и А хранит его в безопасном месте. Сервер также публикует открытым текстом в базе данных соединений в соответствие с корреспондентом А число xi.Что означает ожидания запроса аргумента xi -1 ОНФ для вычисления значения хэш-функции.

Выполняя первое подключение, А передает свое имя и xi -1. Сервер рассчитывает f(xi -1) и сравнивает его с xi , если значения совпадают, права А на доступ подтверждаются. Затем сервер заменяет в базе данных xi на xi -1. А удаляет xi из своего списка.

А, при каждом подключении к серверу, передает последнее число из своего списка: xk. Сервер рассчитывает f(xi ) и сравнивает его с f(xi +1), хранившемся в базе данных. Так как на каждой итерации соединения выполняется аутентификация (возможно и неоднократно), то для данного протокола возможно проводить до N-1 проверок легитимности доступа корреспондента (терминала) к ресурсу сервера. По исчерпании списков значений хэш-функций требуется замена общего секрета. Также, при приближении числа проверок терминала к N-1, существенно возрастает вероятность угадывания пароля для противника, знающего переданные ранее {f(R), f(f(R)), f(f(f(R)))…}, и проводившего мониторинг обмена данными между корреспондентом и сервером.

Аутентификация с помощью криптографии с открытыми ключами

Даже с применением “подсаливания” у механизма аутентификации на основании пароля, несмотря на возможность применения надежных хэш-функций с высокой стойкостью, имеются серьезные проблемы со стойкостью самого протокола. В момент, передачи терминалом А своего пароля серверу, любой, у кого есть доступ к каналу передачи данных, может прочесть пароль. Терминал может получить доступ к своему серверу посредством запутанного пути передачи информации, проложив его через недоброжелательное окружение и дав возможность всем желающим получить свой пароль. Пассивный противник может находиться на любом объекте ТСПИ, подслушивая передаваемую А последовательность. Если у противника есть доступ к ОЗУ сервера, то он сможет подсмотреть пароль до того, как сервер сможет вычислить его ОНФ и подменить исходящий адрес пакета на свой.

Приемы из криптографии с ОК могут решить эту проблему. В протоколе “Запрос-ответ” сервер хранит базу открытых ключей всех терминалов, а все терминалы хранят свои закрытые ключи. Далее иллюстрирован пример реализации протокола аутентификации корреспондента.

Сервер посылает А случайный запрос. А шифрует эту строку на своем закрытом ключе и посылает ее обратно серверу вместе со своим ID. Сервер находит в базе данных открытый ключ А и дешифрирует сообщение, используя этот открытый ключ. Если отправленный сначала и дешифрованный запросы совпадают, сервер предоставляет А доступ к ресурсу системы.

Приемы из криптографии с ОК могут решить эту проблему. В протоколе “Запрос-ответ” сервер хранит базу открытых ключей всех терминалов, а все терминалы хранят свои закрытые ключи. Далее иллюстрирован пример реализации протокола аутентификации корреспондента:

  1. А передает В сообщение о необходимости аутентификации корреспондента B.

  2. В вырабатывает случайную последовательность ri и передает ее, как запрос А.

  3. А шифрует ri на ЗК корреспондента B eb , ci = E(eb, ri) и передает криптограмму, как ответ В.

  4. В принимает ответ c’i , дешифрует его с использованием своего секретного ключа db, r’i = D(db, c’i), после чего сравнивает с переданным ранее ri.

  5. Если , равенство r’i= ri верно, то аутентификация прошла успешно.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]