logo
Лекции / Малов / Другие сети от другого Малова / 09) аутентификация

3.1.1. Протокол 1. Симметричная криптосистема

В симметричной криптосистеме каждый абонент имеет секретный ключ, известный также серверу аутентификации.

При установлении соединения полезно различать абонента-инициатора (обозначим через А), запрашивающего соединение, и абонента-респондента (обозначим через В), отвечающе­го на сообщения абонента-инициатора. С точки зрения рассматриваемой задачи абонент-инициатор должен сгенерировать сообщение, отвечающее двум основным требованиям:

а) сообщение должно быть понятно только В. то есть только В может воспользоваться сообщением для доказательства своей подлинности абоненту-инициатору А;

б) подлинность сообщения абонента-инициатора должна быть для В очевидна.

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

Протокол начинается с передачи AS имени абонента-инициатора, абонента-респондента и некоторого уникального одноразового значения iai. (В англоязычных текстах для обо­значения iai часто используют термин nonceused only once.). Важно, чтобы одноразовое значение менялось от сеанса к сеансу. Вся информация на первом шаге протокола передается в незашифрованном виде:

Получив сообщение (IX.1), сервер AS извлекает из базы данных секретные ключи абонен­тов А и В и вычисляет уникальный сеансовый секретный ключ Kg. Затем AS передает А сообщение:

AS -> А: {1А1, В, Ks, {Ks, А}Кв}КА. (IX.2)

Через ка и kb обозначены секретные ключи абонентов А и В соответственно. Поскольку со­общение (IX. 2) зашифровано на секретном ключе абонента А, только он может дешифровать его и раскрыть сеансовый ключ Kg. После дешифрования А выполняет проверку атрибутов сообщения: имени абонента-респондента и значения iai. Совпадение принятых атрибутов с переданными ранее позволяет убедиться, что принятое от сервера сообщение является отве­том на запрос (IX. 1). При положительном результате проверки А посылает В сообщение:

А->В: {Ks, А}Кв. (IX.3)

Только В при помощи ключа Kg может дешифровать данное сообщение и извлечь сеансо­вый ключ ks. При этом В знает, что подлинность А подтверждена доверенным сервером аутентификации AS.

Таким образом, при содействии сервера AS абоненты А и В входят в ключевой синхронизм и могут обмениваться шифрованными сообщениями.

Отметим, что сообщение (IX. 2) должно обязательно содержать имя абонента-респонден­та и одноразовое значение iai- Отсутствие имени респондента в запросе (IX. 1) позволяет злоумышленнику заменить имя абонента-инициатора на свое имя (например, X), до того как сервер получит данное сообщение. В результате А установит аутентичное соединение с X вместо В. Если опустить одноразовое значение iai, злоумышленник может воспользоваться ранее переданным сообщением (IX.2) и тем самым вынудить А использовать секретный ключ предыдущего сеанса (возможно, уже раскрытый злоумышленником).

Определим, что знают абоненты А и В по окончании фазы аутентификации. Абонент А уверен, что все принятые им и дешифрованные на ключе ks сообщения отправлены абонен­том В. Любое зашифрованное на ключе ks сообщение будет адекватно дешифровано только В. Аналогичные рассуждения справедливы mutatis mutandis в отношении абонента В.

Необходима, однако, гарантия того, что злоумышленник не сможет воспользоваться сооб­щениями фазы аутентификации предыдущего сеанса для активной атаки на протокол. В этом отношении позиции абонентов А и В различаются. Абонент А уверен, что ключ ks уникален и ранее не использовался. Следовательно, все зашифрованные на данном ключе сообщения принадлежат легальному абоненту В. Положение абонента В значительно хуже: он не может установить уникальность сеансового ключа — существует риск, что сообщение (IX. 3) исполь­зовалось ранее в другом сеансе. Абонент В может, конечно, сохранять ключи предыдущих сеансов и выполнять поиск заданного ключа с целью определения его уникальности (нет среди сохраненных — уникален, в противном случае — использовался ранее). Однако такая процедура мало практична. В целях защиты В генерирует уникальное одноразовое значение ib, шифрует его на ключе Kg и посылает А:

В->А: {IB}Ks. (IX.4)

Абонент А, в свою очередь, отвечает сообщением:

Соответствующая проверка позволяет В убедиться в уникальности сеансового ключа После этого А и В готовы к обмену шифрованными сообщениями.

Рассмотренный выше протокол аутентификации состоит из пяти сообщений. Если абонент А взаимодействует с фиксированным числом постоянных партнеров, можно сократить число сообщений до трех. Для этого необходимо создать локальную базу данных с записями вида В: ks, {Kg, A} B для каждого постоянного абонента В. Информация для записи извлекается из сообщения (IX.2) первого сеанса. Для всех последующих сеансов сообщения (IX.1) и (IX.2) из протокола исключаются. Однако такой подход требует внесения некоторых изменений. Заметим, что один и тот же ключ ks используется многократно. Следовательно, уникаль­ность каждого сеанса должна подтверждаться при помощи дополнительного одноразового значения 1д2- Для этого сообщения (IX.3) и (IX.4) необходимо заменить на:

А->В: {Ks, А}Кв, {IA2}Ks, (IX.6)

В -> А: {IA2-1, IB}Ks. (IX.7)

Описанные изменения не увеличивают числа сообщений протокола. Сообщения (IX.3)-(IX.5) необходимы на начальном этапе для гарантий уникальности ключа ks — единого для серии сеансов.