Протокол, который вы описали, направлен на одну атаку, то есть атаку с повторным воспроизведением. Тем не менее, вы очень уязвимы для атак MITM. Соединение TCP не будет разорвано, когда атакующий переместится по протоколу. Более того, все, что передается по этой системе, может быть обнаружено. Если вы используете беспроводную связь в кафе, все в этом районе смогут прослушивать все, что передается, а затем MITM аутентифицированный сеанс. Другое дело, что sha1 () оказывается небезопасным, вы должны использовать sha256 для всего, что связано с безопасностью.
НИКОГДА НЕ ПОВЫШАТЬ КОЛЕСО, особенно когда речь идет о безопасности.
Используйте SSL! Каждый использует SSL, и у него долгая история доказанной безопасности, и это то, что вы не можете построить. SSL Не только решена атака «Человек посередине», но вы также можете использовать сертификаты вместо паролей для аутентификации клиента и сервера, что делает вас невосприимчивым к грубой силе. Солнце сгорит, прежде чем злоумышленник сможет перебить 2048-битный сертификат RSA. Отец, тебе больше не нужно беспокоиться о том, что пипетка накануне нюхает передачу.
Имейте в виду, что OpenSSL БЕСПЛАТНО, генерация сертификатов БЕСПЛАТНА, а пение сертификатов БЕСПЛАТНО. Хотя единственная причина, по которой вы хотите подписать сертификат, заключается в том, что вы хотите реализовать PKI, что, вероятно, не является необходимым. У клиента может быть жесткий код открытого ключа сервера для проверки соединения. Сервер может иметь базу данных открытых ключей клиента. Эта система будет автономной и не потребует OCSP или CRL или какой-либо другой части инфраструктуры открытого ключа.