
8.2. Защищенные каналы 479
Боб может быть уверен, что сообщение т отправила Алиса. Однако, если Боб не
может получить гарантии, что сообщение т в ходе пересылки не изменялось, что
ему толку в знании того факта, что исходную версию сообщения отправила имен-
но Алиса?
Представим таким же образом поддержку одной только целостности сообще-
ний без механизма аутентификации. Когда Боб получает сообщение, в котором
говорится, что он выиграл 1 000 000 долларов в лотерею, стоит ли ему радовать-
ся,
если он не в состоянии проверить, действительно ли это письмо прислано ор-
ганизаторами лотереи?
Таким образом, аутентификация и целостность сообщений должны идти «ру-
ка об руку». Во многих протоколах их комбинация работает примерно следую-
щим образом. Предположим, что Алисе и Бобу снова не терпится пообщаться и
Алиса берет инрщиативу по организации канала в свои руки. Она начинает этот
процесс с посылки сообщения Бобу или доверенному третьему лицу, которое по-
может устанавливать канал. Когда канал установлен, Алиса уверена, что она об-
щается с Бобом, а Боб уверен, что общается с Алисой. Теперь они могут начать
обмениваться сообщениями.
Чтобы в дальнейшем обеспечить целостность сообщений, которыми они бу-
дут обмениваться после аутентификации, обычно используется криптография с
секретным ключом с использованием сеансовых ключей. Сеансовый ключ (session
key)
—
это общий ключ, используемый для шифрования сообщений с целью со-
блюдения их целостности, а также, возможно, конфиденциальности. Этот ключ
обычно требуется только в течение времени существования канала. После за-
крытия канала соответствующий сеансовый ключ отменяется (или уничтожает-
ся с соблюдением мер защиты). Позже мы еще вернемся к сеансовым ключам.
Аутентификация на основе общего секретного ключа
Начнем с того, что рассмотрим протокол аутентификации на основе секретного
ключа, который используется Алисой и Бобом постоянно. Как эти двое могут в
реальности безопасным образом получить общий ключ, мы обсудим чуть позже.
В
описании протокола мы сократим Алису и Боба соответственно до Л и 5, а со-
вместно используемый ими ключ обозначим как
Kj^g,
Обычно запрос одной из
сторон вызывает ответ другой, который будет верен только в том случае, если эта
другая сторона знает общий секретный ключ. Такие решения известны под назва-
нием
протоколов запрос-ответ {challenge-response
protocols).
В случае аутентификации на базе общего секретного ключа протокол работа-
ет так, как показано на рис. 8.11. Сначала Алиса посылает Бобу свой идентифи-
катор (сообщение 1), показывая, что она хочет установить между ними канал
связи. После этого Боб посылает Алисе запрос
RB,
обозначенный как сообще-
ние
2.
От Алисы требуется зашифровать запрос секретным ключом
КА,В^
который
она использует совместно с Бобом, и вернуть этот запрос Бобу. Ответ, показан-
ный на рисунке в виде сообщения 3, содержит KA,B(RB)'
Когда Боб получит ответ KA,B(RB) на свой запрос RB, ОН должен расшифро-
вать сообщение, снова применяя общий ключ, чтобы убедиться, что в сообщении
содержится запрос RB. ЕСЛИ ЭТО так, то он считает, что на другой стороне канала