Я использую RSA для шифрования связи между сервером и клиентом. Допустим, у нас есть 2 Асимметричных ключа, ключ 1 и ключ2.Безопасен ли этот сценарий?
Сервер имеет key1 (Private) с самого начала, и клиент имеет key1 (публичное)
Так вот сценарий:
- клиент генерирует key2
- клиент подключается к сервер
- отправка ключа2 (общедоступный) зашифрованный ключ1 (общедоступный)
- с этого момента сервер отправит все данные, зашифрованные ключом2 (общедоступный)
- клиент посылает случайные данные на сервер
- сервер отправляет обратно те же данные хэшируются
- клиент проверяет, что данные правильно
Насколько я могу видеть, это должно предотвратить человек в-середине атаки, или я чего-то не хватает? В точке 7 клиент должен знать, пытается ли кто-то дать серверу неправильный ключ для шифрования, поскольку никто, кроме сервера, не может дешифровать key2 (public).
Если есть что-то, что можно сделать для повышения безопасности, пожалуйста, скажите мне.
В той степени, в которой вы правы, ваш предполагаемый MITM мог бы сделать это в любом случае без клиента. – MarkusQ
уверен, что он мог бы, но потом он потерял бы клиента и хорошо, тогда нет смысла делать MITM, так как нет ничего, чтобы заглянуть. – Peter