3.8.2 Технология формирования резюме сообщения
Простой, но эффективный способ технологии аутентификации основан на резюме сообщения (message digest). Как показано на рис. 3.8, такое резюме вычисляется по содержимому сообщения с помощью секретного ключа. В настоящее время наиболее распространен алгоритм Message Digest 5 (MD5), который был разработан Рональдом Ривестом (см. RFC 1321).
Рис. 3.8. Использование резюме сообщения.
Взаимное исследование (challenge handshake) иллюстрирует один из способов применения резюме сообщения. Как и при обычной аутентификации, пользователю присваивается пароль, регистрируемый на хосте. Однако этот пароль уже не пересылается по сети. Вместо этого настольная система выполняет вычисление по алгоритму MD5, используя пароль и секретный ключ (ключ шифрования. — Прим. пер.). Как показано на рис. 3.9:
1. Пользователь посылает на хост свой идентификатор.
2. Хост посылает пользователю сообщение со случайным содержимым.
3. Хост и настольная система пользователя выполняют вычисления по алгоритму MD5 для сообщения от хоста и секретного пароля пользователя.
4. Система пользователя отсылает ответ хосту.
5. Хост сравнивает ответ. Если ответ верен, пользователь аутентифицируется.
Рис. 3.9. Использование MD5 при взаимном исследовании
3.8.3 Целостность сообщения
MD5 и совместно используемые секретные ключи можно применять для определения изменений в данных при их пересылке по сети. Рассмотрим рис. 3.10:
1. Вычисление MD5 выполняется над данными с помощью секретного ключа.
2. Данные и полученное сообщение посылаются партнеру.
3. Партнер выполняет вычисление MD5 над полученными данными и известным секретным ключом.
4. Партнер сравнивает полученный результат с соответствующим резюме сообщения. При совпадении считается, что данные не изменились.
Отметим, что, не зная секретного ключа, подглядывающий за пересылаемыми данными злоумышленник не сможет фальсифицировать или изменить эти данные. Такой механизм применяется в системах защищенной электронной почты и безопасных от вторжения транзакциях клиент/сервер.
Рис. 3.10. Защита пересылаемых данных с помощью резюме сообщения, вычисленного по MD5
3.8.4 Конфиденциальность с помощью симметричного шифрования
Для предотвращения чтения и нежелательного использования пересылаемых данных злоумышленником (snooper) данные должны быть зашифрованы. Классическим способом является согласование секретных ключей между отправителем и получателем. Часто при пересылке добавляется резюме сообщения, и получатель может проверить, что данные получены в том виде, в котором они были отправлены. Как показано на рис. 3.11, после шифрования данные выглядят как бессмысленные строки.
Рис. 3.11. Симметричное шифрование
Этот традиционный метод шифрования называется симметричным. Симметричное шифрование предполагает использование одного и того же ключа как для шифрования, так и для последующей расшифровки. Обе стороны знают ключ и должны сохранять его в тайне. Недостатки такого способа следующие:
■ В целях большей безопасности каждой взаимодействующей паре приходится применять собственный секретный ключ.
■ Изменение ключа связано с большими трудностями.
3.8.5 Асимметричный общедоступный ключ шифрования
Методы асимметричного шифрования известны достаточно давно (основные идеи были заложены в работах Диффи, Хеллмана и Меркля). При таком методе для шифрования и расшифровки используются различные ключи.
Рассмотрим шкатулку с двумя различными ключами (А и Б), как показано на рис. 3.12:
■ Если шкатулка закрывается ключом А, то открывается ключом Б.
■ Если шкатулка закрывается ключом Б, то открывается ключом А.
Рис. 3.12. Использование различных ключей для открытия и закрытия
Асимметричное шифрование называется также шифрованием по общедоступным ключам (public key), поскольку позволяет управлять ключами более согласованным способом. Ключ А может быть общедоступным. Его значение можно открыть для друзей или даже хранить в одном из доступных файлов.
■ Все партнеры могут применять общедоступный ключ для шифрования пересылаемых данных.
■ Однако только вы будете знать личный ключ, и никто иной не сможет расшифровать посылаемые вам данные.