2016-06-18 6 views
2

У меня есть коммуникационная система, встроенная в C#. Скажем, у меня есть код подтверждения, например, 123-456-789.Сообщайте код подтверждения между устройствами с C#

Я хочу отправить его через TCP, но я не хочу его обнюхивать.

Если я использую его и отправлю его в виде пакета, это сработает? Я знаю, что люди все еще могут обнюхать его, но они не могут получить код подтверждения.

Может ли моя система быть более безопасной, если я ее солью и отправлю соль в свой хэш-пакет? Или есть ли лучшие протоколы связи, чем TCP?

(Примечание: Конечно, система как система авторизации: Люди типа в код подтверждения, и я хеширования «введенный» код (с солью) и сравнить его с посланной хэш)

+0

You может использовать ассиметричное шифрование для передачи информации в очень безопасном виде. – JDE

ответ

1

В любом случае люди могут взломать все, если захотят. Но для пуленепробиваемой и запутанной системы лучше использовать так:

  1. HASHING код с солью (в любом месте вы хотите, даже в середине коды) Ex. 123 СОЛЬ И ЗДЕСЬ
  2. Добавление соли для хэш (пример использует md5) Ex. де 60f564ad де 7996e06 эф af7f a0 6407597c8b9
  3. Отправка эту строку с помощью TCP
  4. ПОЛУЧАТЬ на клиенте
  5. Декодирование хэш, например, извлекая смелые части де 60f564ad de 7996e06 ef af7f a0 6407597c8b9
  6. хеширования всех строки клиент хочет использовать правило # 1 (добавление соли)
  7. Сравнивая декодируется хэш и клиент хэш строки

При формировании хэша вы можете также сохранять метки время где-то и форма полужирными детали в зависимости от этого (например, если вы даже можете разместить жирным шрифтом деталей в других местах)

Этого должно быть достаточно для системы входа в систему если вы боитесь только MITM атака с нюхает пакет (ваша часть программного обеспечения должно быть защищена)

Но если вам нужна действительно пуленепробиваемая система лучше использовать симметричное шифрование (для белых целей системы дома Войти, например)