SSLを使用せずにPHPセッションを保護することに興味があります。
驚いたことに、中間者がユーザーとサーバーの間で交換されたパケットを傍受した場合、セッションが認証されていたとしても、非常に簡単にセッションを盗むことができます。ログイン/ログアウト時にセッション ID を変更したり、ユーザーのシステム パラメータ (OS、ブラウザなど) を記録/確認したりするなど、被害を最小限に抑えるためのいくつかの戦術があることを私は知っています。
ただし、すでに認証されており、ログアウトされていないセッション中に (タイムアウトする時間もありませんでした)、攻撃者がセッション ID を取得できる場合、攻撃者はセッションを簡単に乗っ取ることができます (私が問題を理解している限り)。 )。
暗号化されたログイン認証中に、サーバーがランダムなセッションパスワードをクライアントに送信できる解決策を考えました。session-password は、そのログイン セッションの間のみ有効です。したがって、そのセッション中に交換されるすべてのメッセージは、セッション パスワードを使用して署名する必要がありました (例: MD5(セッション パスワード+メッセージ コンテンツ))。
問題は解決しましたか? 攻撃者が最初のログイン交換を暗号分析できないと仮定すると、このアプローチの弱点は何ですか?