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