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

Аутентификация сообщений

 

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

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

1. Применима к блоку данных любой длины.

2. Дает на выходе значение фиксированной длины.

3. Значение H(х) вычисляется относительно легко для любого заданного х.

4. Чувствительна ко всевозможным изменениям в тексте x, таким как вставки, выбросы, перестановки и т.п.

5. Для любого данного кода h должно быть практически невозможно вычислить х, для которого Н(х) = h (свойство необратимости).

6. Для любого блока х должно быть практически невозможно вычислить у ≠ x, для которого H(х) = H(у).

7. Должно быть практически невозможно вычислить любую пару различных значений х и у, для которых Н(х) = H(у).

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

 

1. Шифрование хеш-значения симметричным методом

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

Аутентификация симметричным шифрованием хеш-значения

 

2. Хеширование с использованием секретного значения

 

Этот вариант аутентификации сообщения с помощью функции хеширования не использует шифрования вообще (смотри рисунок ниже ). Сообщающиеся стороны, скажем, А и B, имеют известное только им общее секретное значение SAB. Перед отсылкой сообщения стороне B сторона A вычисляет функцию хеширования для результата конкатенации этого секретного значения и текста сообщения: DM = H(SAB||M). Затем [M||DM] пересылается стороне B. Поскольку сторона B имеет значение SAB, она может вычислить H(SAB||M) и проверить соответствие вычисленного значения полученному значению DM. Поскольку само секретное значение с сообщением не пересылается, у нарушителя нет возможности модифицировать перехваченное сообщение. Пока секретное значение остается секретным, нарушитель не может генерировать фальшивые сообщения. При этом алгоритм аутентификации выполняется за время, соизмеримое со временем выполнения функции хеширования.

Аутентификация хешированием секретного значения

 

Один из вариантов реализации данного подхода, называемый НМАС, принят в качестве стандарта защиты протоколов IPSec, TLS, SET и др. Его работа описывается выражением:

 

HMACK = H[(K+  opad) || H[(K+  ipad) || M]],

где

Н – встроенная функция хеширования (например SHA1);

М – подаваемое на вход НМАС сообщение (включая биты заполнителя, требуемые встроенной функцией хеширования);

К – секретный ключ;

К+ – ключ K, расширенный до размера хеш-значения путем добавления нулей слева;

ipad – шестнадцатеричное 363636…36, повторенное до заполнения K+;

opad– шестнадцатеричное 5С5С5С…5С, повторенное до заполнения K+.

 

Связывание с ipad означает переключение половины битов K. Точно так же связывание с opad означает переключение половины битов K, но для другого набора битов. В результате этого из K+ получаются два ключа, сгенерированных псевдослучайным образом, что повышает криптостойкость алгоритма.

 

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