Введение

Протокол согласования криптографического ключа

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

Публичные ключи

Широко используемым механизмом противодействия таким атакам является использование цифровых ключей с гарантированной целостностью: если ключ Боба подписан доверенной третьей стороной, подтверждающей его личность, Алиса может быть уверена, что полученный ею подписанный ключ не является попыткой перехвата со стороны Евы. Когда у Алисы и Боба имеется инфраструктура открытых ключей, они могут цифровой подписью подтвердить согласованный ключ Диффи — Хеллмана или обменяться открытыми ключами Диффи — Хеллмана. Такие подписанные ключи, иногда подписываемые центром сертификации, являются одним из основных механизмов, используемых для защиты веб-трафика (включая протоколы HTTPS, SSL или Transport Layer Security). Другими конкретными примерами являются MQV, YAK и компонент ISAKMP в составе набора протоколов IPsec для защиты коммуникаций по протоколу Интернет. Однако для корректной работы этих систем требуется тщательная проверка соответствия между идентификационной информацией и открытыми ключами со стороны центров сертификации.

Гибридные системы

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

Пароли

Протоколы согласования ключей с аутентификацией по паролю требуют раздельного установления пароля (который может быть короче ключа) таким образом, чтобы обеспечить его конфиденциальность и целостность. Они разработаны для защиты от атак типа "человек посередине" и других активных атак на пароль и установленные ключи. Например, DH EKE, SPEKE и SRP являются вариантами протокола Диффи — Хеллмана с аутентификацией по паролю.

Другие трюки

Если у кого-либо есть надежный способ проверки общего ключа по открытому каналу, можно использовать обмен ключами Диффи — Хеллмана для получения кратковременного общего ключа, а затем убедиться в его соответствии. Один из способов — произнести ключ вслух с голосовой аутентификацией, как это реализовано в PGPfone. Однако голосовая аутентификация предполагает, что злоумышленник, находящийся посередине, не сможет в реальном времени подделать голос одного участника для другого, что может быть нежелательным допущением. Такие протоколы могут быть разработаны для работы даже с небольшим общедоступным значением, например, с паролем. Различные варианты этой схемы были предложены для протоколов сопряжения Bluetooth. В попытке избежать использования каких-либо дополнительных факторов аутентификации по стороннему каналу, Дэвис и Прайс предложили использовать протокол взаимоблокировки Рона Ривеста и Ади Шамира, который подвергался атакам и последующей доработке.

Общие секретные ключи

Криптография с секретным (симметричным) ключом требует первоначального обмена общим ключом, обеспечивающего конфиденциальность и целостность. При правильной реализации это предотвращает атаку «человек посередине». Однако без использования криптографии с открытым ключом могут возникнуть нежелательные проблемы управления ключами.