Подтверждение клиента - PullRequest
       6

Подтверждение клиента

0 голосов
/ 05 февраля 2020

Допустим, у нас есть две машины: машина одна и машина две:

  • машина одна имеет состояние c IP.
  • машина две имеет динамический c IP .

Теперь вторая машина хочет подключиться к первой. как мог компьютер один проверить, что другой компьютер - это компьютер два?

Я ищу масштабируемое решение, чтобы использовать его для сервера с несколькими клиентами.

мое решение использовать ключ, который уже известен двум машинам.

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

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

1 Ответ

0 голосов
/ 05 февраля 2020

Вы почти на месте, но если бы вы полагались на это в одиночку, вы бы рискнули оказаться в середине атаки. Скажем, вредоносная машина 3 претендует на то, чтобы быть машиной 1.

  • Машина 2 пытается подключиться к машине 1, но вместо этого открывает соединение с машиной 3.
  • Машина 3 открывает соединение с машина 1, машина 1 отвечает строкой «encrypt_me_please»
  • машина 3 отвечает на запрос соединения машины 2 с «encrypt_me_please»
  • машина 2 шифрует «encrypt_me_please» как (скажем) «x10hsdapg» и отправляет его обратно на компьютер 3
  • Машина 3 отвечает на машину 1 с зашифрованной строкой "x10hsdapg"
  • Машина 1 проверяет, что машина 3 использовала правильный ключ шифрования и, следовательно, должна быть машиной 2.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...