logo
MethodFull

Возвращение сообщения при приеме

Рассмотрим реализацию этого протокола с дополнительной возможностью подтверждения сообщений – получив сообщение, Иван обязательно возвращает подтверждение приема:

  1. Василиса подписывает сообщение с помощью своего закрытого ключа, шифрует подписанное сообщение от­крытым ключом Ивана и посылает его Ивану ЕИ(SА(M));

  2. Иван расшифровывает сообщение с помощью своего закрытого ключа, проверяет подпись с помощью открытого ключа Василисы и восстанавливает сообщение VВ(DИИ(SА(M)))) =M;

  3. Иван подписывает сообщение с помощью своего закрытого ключа, шифрует подписанное сообщение от­крытым ключом Василисы и посылает его Василисе обратно ЕВ(SИ(M));

  4. Василиса расшифровывает сообщение с помощью своего закрытого ключа и проверяет подпись с помощью открытого ключа Ивана. Если полученное сообщение совпадает с отправленным, она знает, что Иван получил правильное сообщение.

Если для шифрования и проверки цифровой подписи используется один и тот же алгоритм, то существует возможность вскрытия. В таких случаях операция цифровой подписи – противоположность операции шифрования: VX— ЕXи SX—DX.

Пусть Соловей – зарегистрированный пользователь со своей парой ключей: открытым и закрытым. Теперь посмотрим, как он сможет читать почту Ивана. Сначала он запишет сообщение Василисы Ивану. Затем, немного погодя, он пошлет это сообщение Ивану, утверждая, что оно отправлено самим Соловьем. Иван, думая, что это обычное сообщение от Соловья, дешифрирует это сообщение своим закрытым ключом и пытается проверить подпись Соловья, дешифрируя ее с помощью открытого ключа Соловья-Разбойника. В результате получается полная чепуха:

ЕС(DИИ(DВ(M)))) = ЕС(DВ(M))

Даже в этом случае, следуя протоколу, Иван посылает Разбойнику полученное сообщение: EС(DИ(EС(DВ(M))))

Теперь Соловью остается только расшифровать сообщение с помощью своего закрытого ключа, зашифровать его открытым ключом Ивана, расшифровать снова с помощью своего закрытого ключа и зашифровать от­крытым ключом Василисы. Соловей-Разбойник получает М.

Отнюдь не глупо предположить, что Иван может автоматически посылать Райбойнику квитанцию. Этот протокол, например, может быть встроен в его коммуникационное программное обеспечение и посылать квитанции автоматически. Именно готовность сообщить о приеме чепухи и нарушает безопасность. Если Иван проверит сообщение на осмысленность перед отправкой квитанции, он сможет избежать таких проблем с безопасностью.

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