Введение

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

Канал обмена

Обмен ключами выполняется либо по каналу связи, либо вне его.

Проблема обмена ключами

Проблема обмена ключами описывает способы обмена любыми ключами или другой информацией, необходимой для установления защищенного канала связи, чтобы никто другой не мог получить копию. Исторически, до изобретения криптографии с открытым ключом (асимметричной криптографии), симметричная криптография использовала один и тот же ключ для шифрования и дешифрования сообщений. Чтобы две стороны могли конфиденциально общаться, они должны сначала обменяться секретным ключом, чтобы каждая сторона могла зашифровать сообщения перед отправкой и расшифровать полученные. Этот процесс известен как обмен ключами. Основная проблема симметричной, или одноключевой криптографии, заключается в том, что секретный ключ необходимо передавать через доверенных курьеров, дипломатические сумки или любой другой защищенный канал связи. Если две стороны не могут установить защищенный первоначальный обмен ключами, они не смогут безопасно общаться без риска перехвата и расшифровки сообщений третьей стороной, получившей ключ в ходе этого обмена. Криптография с открытым ключом использует систему из двух ключей – открытого и закрытого, где сообщения шифруются одним ключом, а расшифровываются другим. В зависимости от выбранного криптографического алгоритма, для шифрования используется либо открытый, либо закрытый ключ, а для расшифровки – другой. Например, в RSA закрытый ключ используется для расшифровки сообщений, а в алгоритме цифровой подписи (DSA) – для их аутентификации. Открытый ключ можно передавать по незащищенным каналам или публиковать; закрытый ключ доступен только его владельцу. Ключ шифрования, известный как обмен ключами Диффи — Хеллмана, можно передавать открыто, поскольку это не представляет угрозы для конфиденциальности зашифрованных сообщений. Одна сторона обменивается ключами с другой, где они затем могут шифровать сообщения этим ключом и отправлять зашифрованный текст. Расшифровать это сообщение может только ключ расшифровки – в данном случае, закрытый ключ. В отличие от симметричного обмена ключами, ни в какой момент времени во время обмена ключами Диффи — Хеллмана конфиденциальная информация не подвергается риску компрометации.

Идентификация

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

Обмен ключами DiffieHellman

В 1976 году Уитфилд Диффи и Мартин Хеллман опубликовали криптографический протокол, известный как обмен ключами Диффи — Хеллмана (D–H), основанный на концепциях, разработанных аспирантом Хеллмана Ральфом Мерклем. Этот протокол позволяет пользователям безопасно обмениваться секретными ключами, даже если злоумышленник перехватывает канал связи. Однако сам по себе протокол обмена ключами Диффи — Хеллмана не решает задачу аутентификации (то есть установления уверенности в подлинной идентичности собеседника или "сущности" на другом конце канала связи). Аутентификация критически важна, когда злоумышленник может не только перехватывать, но и изменять сообщения в канале связи (так называемые атаки "человек посередине" или MITM), и эта проблема рассматривалась в четвертом разделе статьи.

Общедоступная инфраструктура

Инфраструктуры открытых ключей (PKI) были предложены как способ обхода проблемы аутентификации личности. В наиболее распространенной реализации каждый пользователь обращается к "центру сертификации" (CA), которому доверяют все стороны, для получения цифрового сертификата, который служит для других пользователей неподдельной аутентификацией личности. Инфраструктура безопасна, пока сам CA не будет скомпрометирован. Однако, в случае компрометации, многие PKI предоставляют возможность отзыва сертификатов, чтобы другие пользователи больше не доверяли им. Отзывные сертификаты обычно публикуются в списках отзыва сертификатов, с которыми можно сверять любой сертификат. Ряд стран и других юрисдикций приняли законы или издали нормативные акты, стимулирующие использование PKI, придавая (в большей или меньшей степени) юридическую силу этим цифровым сертификатам (см. цифровую подпись). Многие коммерческие компании, а также некоторые государственные учреждения, создали подобные центры сертификации. Однако это не решает проблему, поскольку надежность самого CA по-прежнему не гарантирована для какого-либо конкретного лица. Это разновидность логической ошибки, апелляции к авторитету. Для реальной надежности требуется личная проверка того, что сертификат принадлежит CA, и установление доверия к CA. Обычно это невозможно. Известны случаи, когда авторитарные правительства предлагали создать так называемые "национальные CA", чьи сертификаты должны были быть обязательными для установки на устройствах граждан, и после установки и доверия к ним могли использоваться для мониторинга, перехвата, изменения или блокировки зашифрованного интернет-трафика. Для тех, кто впервые сталкивается с подобным, эти схемы лучше всего рассматривать как электронные нотариальные подтверждения того, что "этот открытый ключ принадлежит этому пользователю". Как и в случае с нотариальными подтверждениями, в таких заверениях могут быть ошибки или недоразумения. Кроме того, самому нотариусу нельзя доверять. Произошло несколько громких публичных сбоев в работе различных центров сертификации.

Сеть доверия

На другом конце концептуального спектра находится система «паутины доверия», которая полностью исключает центральные центры сертификации. Каждый пользователь несёт ответственность за получение сертификата от другого пользователя, прежде чем использовать его для связи с этим пользователем. PGP и GPG (реализация интернет-стандарта OpenPGP) используют именно такой механизм «паутины доверия».

Соглашение о ключе с использованием пароля

Алгоритмы согласования ключей с аутентификацией по паролю могут выполнять криптографический обмен ключами, используя знание пароля пользователя.

Обмен квантовым ключом

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