Пошаговое описание процесса обмена ключами и сообщениями (пример CNG)
Криптографические решения с использованием открытых и закрытых ключей могут подвергнуться атаке "злоумышленник в середине".Эти атаки принимают самые различные формы, включая подслушивание, подмену, отказ в обслуживании и фишинг.В примере защищенного обмена данными с шифрованием CNG демонстрируется подмена адресов, при которой третья сторона (Мэллори) оказывается между двумя взаимодействующими сторонами (Алисой и Бобом).
В следующем разделе приведены дополнительны сведения, иллюстрации и пошаговые инструкции по пяти версиям системы безопасности, описанным в разделе Общие сведения о примере CNG:
Версия 1. Базовый обмен сообщениями
Версия 2. Обмен неподписанными ключами и неподписанными сообщениями
Без перехвата
С перехватом
Версия 3. Обмен подписанными ключами и подписанными сообщениями
Версия 4. Обмен подписанными ключами и подписанными сообщениями с обнаружением
Версия 5. Обмен подписанными ключами и подписанными сообщениями с завершением работы приложения
На следующем рисунке показано, как Алиса и Боб отравляют сообщения без атаки "злоумышленник в середине".Сообщения не шифруются и не снабжаются цифровыми подписями.В примере CNG эта процедура демонстрируется при выборе версии 1.Пошаговое описание этого процесса приводится под рисунком.
Версия 1. Базовый обмен сообщениями
1.Алиса создает сообщение.
2.Алиса отправляет сообщение Бобу.
3.Боб получает сообщение Алисы.
4.Боб создает сообщение.
5.Боб отправляет сообщение Алисе.
6.Алиса получает сообщение Боба.
На следующем рисунке показан обмен ключами и сообщениями без атаки "злоумышленник в середине".В примере CNG эта процедура реализуется при выборе версии 2 и отключении участия Мэллори.Пошаговое описание этого процесса приводится под рисунком.
Версия 2. Обмен неподписанными ключами и неподписанными сообщениями без перехвата
1.Алиса создает пару из открытого и закрытого ключа.
2.Алиса отправляет свой открытый ключ Бобу.
3.Боб сохраняет открытый ключ Алисы.
4.Боб создает пару из открытого и закрытого ключа.
5.Боб отправляет свой открытый ключ Алисе.
6.Алиса сохраняет открытый ключ Боба.
7.Алиса использует свой закрытый ключ и открытый ключ Боба для создания общего секретного соглашения.Она использует общее секретное соглашение для получения материала ключа.
8.Боб использует свой закрытый ключ и открытый ключ Алисы для создания такого же общего секретного соглашения.Он использует общее секретное соглашение для получения такого же материала ключа, как и Алиса.
Дополнительные сведения об общем секретном соглашении и создании ключа см. в разделе Общие сведения об алгоритме ECDH (пример CNG).
9.Алиса создает сообщение и шифрует его с помощью материала ключа.
10.Алиса отправляет зашифрованное сообщение Бобу.
11.Боб получает сообщение и расшифровывает его.
12.Боб создает сообщение и шифрует его с помощью материала ключа.
13.Боб отправляет сообщение Алисе.
14.Алиса получает сообщение и расшифровывает его.
На следующем рисунке показан обмен ключами и сообщениями с атакой "злоумышленник в середине".В примере CNG эта процедура реализуется при выборе версии 2 и включении участия Мэллори.
Версия 2. Обмен неподписанными ключами и неподписанными сообщениями с перехватом
1.Алиса создает пару из открытого и закрытого ключа.
2.Алиса отправляет свой открытый ключ Бобу.
3.Мэллори перехватывает и сохраняет открытый ключ Алисы.
4.Мэллори создает собственную пару из открытого и закрытого ключа для взаимодействия с Алисой.
5.Мэллори отправляет Алисе свой общий ключ, заставляя ее думать, что это ключ Боба.
6.Алиса сохраняет открытый ключ Мэллори, думая, что это ключ Боба.
Мэллори не устанавливает канал связи с Бобом до тех пор, пока не завершит обмен ключами с Алисой.Он поступает так, потому что использует общий канал PublicChannel с Алисой (см. раздел Общие сведения об исходном коде).Он должен отправить Алисе поддельный ключ до того, как он сможет закрыть канал PublicChannel и заново открыть его для взаимодействия с Бобом.
Сравните эти действия с шагами 17–22, где сообщения, отправляемые Алисой, передаются Бобу.
7.Мэллори создает вторую пару из открытого и закрытого ключа для взаимодействия с Бобом.
8.Мэллори отправляет свой открытый ключ Бобу.
9.Боб сохраняет открытый ключ Мэллори, думая, что это ключ Алисы.
10.Боб создает пару из открытого и закрытого ключа.
11.Боб отправляет свой открытый ключ Алисе.
12.Мэллори перехватывает и сохраняет открытый ключ Боба.
13.Алиса использует собственный закрытый ключ и открытый ключ, который, по ее мнению, принадлежит Бобу (хотя на самом деле это ключ Мэллори для взаимодействия с Алисой), для создания общего секретного соглашения.С помощью этого общего секретного соглашения она получает материал ключа для взаимодействия Мэллори и Алисы.
14.Мэллори использует свой закрытый ключ и открытый ключ Алисы для создания такого же общего секретного соглашения.Затем он использует общее секретное соглашение для получения такого же материала ключа, как и Алиса.
15.Мэллори использует свой закрытый ключ и открытый ключ Боба для создания общего секретного соглашения.С помощью этого общего секретного соглашения он получает материал ключа для взаимодействия с Бобом.
16.Боб использует собственный закрытый ключ и открытый ключ, который, по ее мнению, принадлежит Алисе (хотя на самом деле это ключ Мэллори для взаимодействия с Бобом), для создания такого же общего секретного соглашения.Затем он использует общее секретное соглашение для получения такого же материала ключа, как и Мэллори.
Примечание
После шагов 13 и 16 Алиса и Боб полагают, что они обладают общим материалом ключа.Но на самом деле их материал ключа совпадает не друг с другом, а с материалами ключа Мэллори.
В этот момент Мэллори может подключиться к беседе, поскольку у него открыто два канала.Эта ситуация отличается от описанной на шагах 1–6, когда у Мэллори был открыт только один канал для перехвата ключей шифрования.
17.Алиса создает сообщение и шифрует его с помощью материала ключа для взаимодействия с Мэллори, созданного на шаге 13.Она сообщает Бобу о потенциальном клиенте.
18.Алиса отправляет сообщение Бобу.
19.Мэллори перехватывает и расшифровывает сообщение.Он крадет сведения о клиенте.
20.На основе сообщения Алисы Мэллори создает поддельное сообщение, но изменяет контактный адрес клиента.Он шифрует это сообщение с помощью материала ключа для взаимодействия с Бобом.
21.Мэллори отправляет сообщение Бобу.
22.Боб расшифровывает сообщения, думая, что оно отправлено Алисой.
23.Боб создает сообщение и шифрует его с помощью материала ключа для взаимодействия с Мэллори, созданного на шаге 16.Он сообщает Алисе, что хочет встретиться с клиентом.
24.Боб отправляет сообщение Алисе.
25.Мэллори перехватывает и расшифровывает сообщение, не пересылая его дальше.
26.Мэллори создает поддельное сообщение, используя материал ключа Алисы.Он пишет Алисе, что думает, что адрес клиента указан неправильно, но что он будет продолжать искать способы связаться с этим клиентом.
27.Мэллори отправляет сообщение Алисе.
28.Алиса расшифровывает сообщения, думая, что оно отправлено Бобом.Она принимает объяснение и переходит к работе с другими клиентами.
На следующем рисунке показана схема обмена ключами шифрования и сообщениями, атака "злоумышленник в середине" и использование цифровых подписей для подписывания ключей и сообщений.В примере CNG эта процедура реализуется при выборе версии 3 и включении участия Мэллори.
Версия 3. Обмен подписанными ключами и подписанными сообщениями с перехватом
Версия 3 очень похожа на версию 2 за тем исключением, что в ней демонстрируется использование цифровых подписей для подписывания сообщений и ключей шифрования.
В шагах 1–6 Алиса передает ключ цифровой подписи по незащищенному каналу PublicChannel, где его перехватывает Мэллори, который будет использовать этот ключ для подписывания своих фальшивых ключей и сообщений.В результате Алиса, Боб и Мэллори получают доступ к одному ключу цифровой подписи.Когда Алиса и Боб проверяют подписи ключей и сообщений в шагах 15, 20, 35 и 42, они не могут понять, что Мэллори перехватывает сообщения.
На следующем рисунке показана схема обмена ключами шифрования и сообщениями, атака "злоумышленник в середине" и использование цифровых подписей для подписывания ключей и сообщений.Кроме того, программное обеспечение версии 4 обнаруживает недействительные подписи.В примере CNG эта процедура реализуется при выборе версии 4 и включении участия Мэллори.
Версия 4. Обмен подписанными ключами и подписанными сообщениями с обнаружением
У версии 4 есть следующие отличия от версии 3.
Программное обеспечение версии 4 получают только Алиса и Боб.
В версии 4 пересылается ключ цифровой подписи, как это делалось в версии 3, но теперь он выступает в роли поддельного ключа.
Версия 4 позволяет Алисе отправить Бобу еще один ключ цифровой подписи по безопасному каналу, о котором не знает Мэллори.(Это шаг 0 на последнем рисунке.) Алиса и Боб подписывают свои ключи и сообщения с помощью этой секретной цифровой подписи.
В версии 4 недействительные подписи Мэллори обнаруживаются (на шагах 15, 20, 35 и 42), после чего отображается предупреждение безопасности.
Мэллори продолжает использовать для подписывания поддельных ключей и сообщений цифровую подпись из версии 3.Это приводит к следующим результатам.
Он не знает о секретном ключе цифровой подписи версии 4.
Он не получает предупреждений системы безопасности.
Он не знает, что Алиса и Боб могут обнаруживать недействительные подписи ключей и сообщений.
На следующем рисунке показана схема обмена ключами шифрования и сообщениями, атака "злоумышленник в середине" и использование цифровых подписей для подписывания ключей и сообщений.Как и в версии 4, недействительные подписи в этом сценарии успешно обнаруживаются.В примере CNG эта процедура реализуется при выборе версии 5 и включении участия Мэллори.
Версия 5. Обмен подписанными ключами и подписанными сообщениями с завершением сеанса
Версия 5 очень похожа на версию 4 за тем исключением, что при получении Алисой и Бобом открытых ключей шифрования с недействительными цифровыми подписями сеанс прерывается.