Меня интересует вопрос защиты сеансов PHP без использования SSL.
К моему удивлению, если посредник перехватывает пакеты, которыми обмениваются пользователь и сервер, очень легко украсть сеанс, даже если он аутентифицирован. Я знаю, что есть некоторые тактики для ограничения ущерба, такие как изменение sessionid при входе/выходе из системы, запись/проверка системных параметров пользователя (например, ОС, браузер).
Однако, если во время сеанса, который уже аутентифицирован и не вышел из системы (на тайм-аут тоже не было времени), злоумышленник может получить идентификатор сеанса, то он может легко захватить сеанс (насколько я понимаю проблема ).
Я подумал о возможном решении, когда во время аутентификации входа в систему, которая зашифрована, сервер может отправить клиенту случайный пароль сеанса. Пароль сеанса будет действителен только во время этого сеанса входа в систему. Таким образом, каждое сообщение, которым обменивались во время этого сеанса, должно было быть подписано с использованием пароля сеанса (например, MD5 (пароль сеанса + содержимое сообщения)).
Проблема устранена? Каковы недостатки этого подхода, если предположить, что злоумышленник не может крипто-анализировать первоначальный обмен логинами?
security scheme
- person Andreas Wong   schedule 06.06.2012