Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MethodFull.doc
Скачиваний:
113
Добавлен:
09.02.2015
Размер:
908.8 Кб
Скачать

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

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

  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))))

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

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

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

Обнаружение вскрытия, основанного на возвращении сообщения

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

  1. Василиса подписывает сообщение;

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

  3. Иван расшифровывает сообщение с помощью своего закрытого ключа;

  4. Иван проверяет подпись Василисы;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]