Обычно пользователи, вступающие в информационный обмен, нуждаются во взаимной аутентификации. Этот процесс выполняется в начале сеанса связи.
Для проверки подлинности применяют следующие способы:
- механизм запроса-ответа
Если пользователь А хочет быть уверен, что сообщения, получаемые им от пользователя Б не являются ложными, он включает в посылаемое для Б сообщение непредсказуемый элемент (Запрос Х, например некое случайное число). В ответе пользователь Б должен выполнить над этим числом некую, заранее оговоренную операцию. Это невозможно сделать заранее, так как пользователь Б не знает, какое случайное число Х придет в запросе. Получив ответ от Б, А может быть уверен в его подлинности.
Недостаток: возможность установление закономерности между запросом и ответом.
- механизм отметки времени (временной штемпель)
Механизм подразумевает регистрацию времени для каждого сообщения. В этом случае каждый пользователь может определить, насколько «устарело» сообщение, и не принимать его, поскольку оно может оказаться ложным.
Процедура рукопожатий.
Для взаимной проверки пользователей обычно используют процедуру рукопожатий, которая базируется на указанных выше механизмах и заключается во взаимной проверке ключей, используемых партнеров. То есть стороны признают себя законными партнерами, если докажут друг другу, что обладают правильными ключами.
Процедура рукопожатия в частности применяют в компьютерных сетях при организации связи между пользователями, пользователями и хост-компьютерами, хостами и так далее.
Существуют 2 пользователя А и Б. Применяется симметричная крипто-система. Пользователи А и Б разделяют один и тот же секретный ключ Каб.
Пользователь А инициирует «рукопожатие», отправляя пользователю Б идентификатор Ida в открытой форме. Пользователь Б по Ida находит в БД секретный ключ Kab и вводит его в систему. В то время пользователь А генерирует случайную последовательность S с помощью псевдослучайного генератора PG и отправляет пользователю Б в виде Ekab(S).
Пользователь Б расшифровывает эту криптограмму и раскрывает исходный вид последовательности S. Затем оба пользователя преобразуют эту последовательность S используя однонаправленную функцию F(S). Пользователь Б шифрует это сообщение F(S) и отправляет криптограмму пользователю А. Пользователь А расшифровывает эту криптограмму и сравнивает с исходным F(S). Если совпали пользователь А признает Б. Пользователь Б проверяет подлинность пользователя А тем же способом.
Обе эти процедуры образуют процедуру рукопожатий, которая обычно выполняется в начале любого сеанса связи между любыми двумя сторонами в компьютерных сетях.
Достоинства: ни один из участников связи не получает секретной информации во время процедуры подтверждения подлинности.