Netspirit писал(а):
Чисто для общего развития. Как я понимаю, шифрование у тебя используется для защиты от перехвата. Тогда твой принцип использования ни от чего не защитит, если злоумышленник узнает пароль. Правильная реализация - это шифрование неизвестным паролем. Например, серверу и клиенту известен пароль, под которым пользователь заходит в чат - можно использовать его.
Если нужна ещё большая стойкость - реализуется асимметричная схема шифрования:
- на сервере один раз генерируется пара ключей - публичный и приватный
- при установке подключения публичный ключ передаётся клиенту
- клиент генерирует рандомный длинный пароль - сессионный ключ
- сессионный ключ шифруется публичным ключом сервера и передаётся на сервер
- сервер с помощью приватного ключа расшифровывает полученный сессионный ключ
- таким образом и клиент и сервер знают одинаковы сессионный ключ и шифруют весь обмен данными этим ключом.
Злоумышленник, перехватывающий данные, не может расшифровать данные без знания сессионного ключа, и не может расшифровать перехваченный сессионный ключ, не имея приватного ключа сервера. А приватный ключ не передаётся по сети.
Редактировалось 2 раз(а), последний 2017-05-05 14:05:28
Я не понял публичным шифруем, а приватный другой ключ он не расшифрует. Если приватный такое же будет как и публичный, значит все таки будет передаваться по сети ключ приватный!
Я все, кроме последних пункты сделал.