2014-01-20 1 views
0

Я хочу, чтобы две стороны могли отправлять зашифрованные сообщения друг другу. Как я могу убедиться, что человек-в-середине не может просто отправить зашифрованные сообщения? Конечно, человек-в-середине не знал бы, что он посылает, но у получателя не будет никакого представления, что он не просто отправил его раньше.Зашифрованная связь. Избегайте повторной отправки сообщений третьей стороне.

Существуют ли алгоритмические методы, чтобы избежать этого?

Надеюсь, вы получите мою проблему.

Приветствия

ответ

0
  1. Вы можете зашифровать сообщение перед отправкой сообщения, но приемный конец должен знать ключ, чтобы расшифровать его. Если вы используете .NET framework, Microsoft предоставляет библиотеку шифрования с количеством функций на выбор.

  2. Вы можете попробовать использовать SSL

1

Стандартное решение пронумеровать каждое сообщение на данном канале последовательно. Если сообщение приходит с порядковым номером меньше предыдущего сообщения, то отклоните это сообщение.

Вам понадобится отдельная система для решения любых проблем: «Вы только что отправили сообщение со вчерашнего дня?»

0

Если есть один запрос-ответ, то клиент может включить запрос nonce в запрос, а nonce будет отправлен обратно в ответ. Используется nonce, например. в протоколе TSP.

Если есть однонаправленный поток данных, тогда будет выполняться последовательная нумерация пакетов.

Если команды отправляются от клиента к серверу, то может работать и какой-то nonce. Команда nonce создается сервером, передается клиенту и затем включается клиентом в команду, отправленную на сервер. Приветственное сообщение сервера должно включать начальное значение nonce, а nonce для следующей команды должно быть включено в ответ на предыдущую команду.

+0

Поток сообщений всегда можно сделать однонаправленным. Используйте один счет для Алисы Бобу и отдельный счет для Боба Алисе. Также полезно использовать флаг для указания направления сообщения: «AB» или «BA», чтобы злоумышленник не отправил сообщение отправителю. – rossum

+0

@rossum в таких протоколах, как TSP и OCSP, они не могут. Здесь используется случайное исключение. –

+0

Затем добавьте свой собственный заголовок сообщения в начале вашего открытого текста: «ABHello Bob ...» Это будет отдельно от созданного системой случайного nonce. – rossum

0

Как вы отметили это сообщение с тегом pgp, почему бы вам не попытаться достичь этого с помощью криптографии OpenPGP.

Клиент может шифровать данные с помощью открытого ключа сервера и подписывать его своим личным ключом. Только сервер сможет расшифровать его, и он также проверит (с открытым ключом клиента), что он возник из клиента.

Смежные вопросы