Вы почти на месте, но если бы вы полагались на это в одиночку, вы бы рискнули оказаться в середине атаки. Скажем, вредоносная машина 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.
Надеюсь, это поможет, по крайней мере, я признаю, что прошло несколько лет с тех пор, как я изучал криптографию.