Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_Информационная безопасность.doc
Скачиваний:
41
Добавлен:
24.09.2019
Размер:
1 Мб
Скачать
☆

12.3Аутентификация

12.3.1Аутентификация skey

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

Протокол SKEY предлагает решение этих проблем. Клиент А генерирует некоторое случайное число r0. Затем сто раз преобразовывает это число, пользуясь хэш-функцией и сохраняя промежуточные значения. То есть, получает числа r1=H(r0), r2=H(r1), ..., r101=H(r100). Затем клиент сохраняет все числа на своем компьютере, кроме r101, которое отправляет В. В сохраняет это число в своей базе. Теперь, когда А желает связаться с В, он отправляет число r100. В, получив это число, вычисляет H(r100) и сравнивает полученный результат с хранимым. Если они совпадают, аутентификация считается удачной. После этого В изменяет свое хранимое число на только что полученное r100. А клиент, в свою очередь, вычеркивает из своего списка r100, намереваясь в следующий раз воспользоваться r99. И так далее, пока не закончатся числа, после чего протокол можно снова инициализировать.

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

12.3.2Взаимная аутентификация - однонаправленные сумматоры

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

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

Такой протокол можно реализовать, если использовать при подготовке данных некоторое доверенное лицо Д. Д готовит n=p*q, 1<a<n и для каждого члена группы выбирает (случайно) yi, где i=1,2,…k. Затем i-тому члену группы передается n, yi и некоторая частичная «сумма» Si, то есть выражение, вычисленное по нижеприведенной формуле, но без одного возведения в степень, то есть без возведения в yi:

(…(((ay1 mod n)y2 mod n)y3 mod n) …)yk mod n

При встрече А предъявляет В свой ya и свою частичную «сумму» Sa. В аналогично предъявляет А свой yb и Sb. Каждый из них, зная n (но не сообщая его второй стороне!), может посчитать, совпадают ли Saya mod n и Sbyb mod n. Если совпадают, аутентификация считается успешной.

Здесь важно то, что производимые вычисления коммутативны и вычислительно необратимы. Если С, не являющийся членом группы, попытается произвести аутентификацию, например, с В, то он получит yb и Sb, но не зная n, он не сможет даже вычислить полную сумму S. Впрочем, если n ему известно, то перед ним встает сложная вычислительная задача по расчету xy mod n = S. Правда, при попытке аутентифицироваться с В, С узнаёт верные yb и Sb, которые С может использовать в дальнейшем, пытаясь аутентифицироваться (от имени В) с предположительным членом этой же группы, например, с А. Последнее удается. Чтобы защититься от такой атаки, на стадии аутентификации с В, когда В понимает, что перед ним не член группы, В фактически узнаёт о дискредитации своего аутентификатора (yb и Sb). В этом случае следует сообщить об инциденте Д, для того чтобы он выработал для всей группы новые аутентификаторы.

12.4Генерация и распределение ключей

12.4.1Вручение бита (симметричная криптография)

12.4.2Вручение бита (хэш-функция)

12.4.3Вручение бита (ГПСЧ)

12.4.4Подбрасывание монеты (хэш-функция)

12.4.5Подбрасывание n-мерной монеты

12.4.6Подбрасывание монеты (RSA)

12.4.7Распределение ключей – мысленный покер

12.4.8Анонимное распределение ключей

12.4.9Анонимное раскрытие секрета (с FBI)

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

12.5Групповые подписи с доверенным посредником.

Задача состоит в том, чтобы создать протокол, удовлетворяющий описанным ниже характеристикам. Для того, чтобы разрешить субъекту А выполнить то или иное действие Д, субъекту В необходимо определить принадлежность А некоторой группе, при этом необходимо обеспечить анонимность члена группа, то есть имя А должно остаться неизвестным для В. В то же время специальный контролёр С при необходимости может установить, что действие Д выполнил именно А.

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

Доверенное лицо (посредник) создает большое множество пар ключей (открытый и закрытый) - n пар. Далее разбивает это множество случайным образом на m подмножеств, где m - количество клиентов. Посредник распределяет подмножества ключей клиентам. Затем собирает все открытые ключи, соответствующие закрытым ключам клиентов из одной группы, и публикует их. Так он проделывает для каждой группы.

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

Недостаток данного протокола в том, что посреднику известны все ключи.