2012-02-24 30 views
2

私は無事にこのような速いプレーン接続に戻ってドロップすることができる場合、私は疑問に思って、脅威モデルを与えられたウェブサイトで安全なログインを含めると、:交渉、安全な接続を介して

  1. ランダムトークンT。これはクッキーに保存されます。
  2. サーバーストアf(T)=hash(private_salt,T,username,password,$_SERVER['REMOTE_ADDR'])
  3. Tは、後で暗号化されていない接続で共有されます。サーバーは接続を認証するためにf(T)を再計算します。

アイデアは、Tは、特段の情報を表していないということであり、それが盗まれた場合でも、別の発信元IPアドレスからの接続を計算するために、異なるf(T)の原因となります。

明らかに弱点は、NATの背後にあるセッション盗難です。これを実際に却下することができるとしましょう。質問は基本的には:$_SERVER['REMOTE_ADDR']を保存して、接続を偽装するのは簡単ですか?

このウェブサイトは、中程度のセキュリティしか必要としません。機密性の高いトラフィックはありません。 脅威モデルは、基本的には、破壊行為に対処することです。私は、ロシアのマフィアではなく、退屈な人を抑える必要があります。この仮定を前提とすると、上記のプロトコルは十分に安全ですか?

また、これは通常のウェブブラウザとLAMP - 安全なパスワードの送信の場合、タウンで唯一のゲームであると仮定します。 Diffie-Hellman Key Exchangeなどのようなもので十分でしょう(サーバーの偽装は脅威モデルにはありません)。そのような署名をすべて行う必要はありません。ほとんどのブラウザでサポートされている標準のapache/phpモジュールはありますか?

答えて

1

悪い考え。

以前は、複数のIPアドレスを持つ大きなネットワーク上にいることがありました。私がしたすべてのリクエストは、ロードバランサによってIPアドレスの1つに割り当てられました。効果的にこれは、私のIPアドレスが2回の連続した要求でほとんど同じではないことを意味しました。私はページを読み込むたびにシステムからログアウトします。

$_SERVER['HTTP_USER_AGENT']を使用してみてください。クッキーの泥棒はまったく同じブラウザを使用するか、まったく同じUA文字列を偽造する必要があります。つまり、誰にもUA文字列をチェックしてもらわないと、熟練していないハッカーたちは、あなたのサーバーが「完璧な」セッションクッキーについて拒否しているものを見つけ出すことに困惑するかもしれません。

+1

この「大きなネットワーク」は、特別な企業内部設定のようなものでしたか?それとも、自宅のユーザーのための一般的な練習ですか? – spraff

+0

私は当時大学にいました。しかし、動的IPを持つ人(つまり、ほとんどの人)がログインに問題を抱えているという点は依然として残っています。 –

+0

クライアントがモバイルの場合はどうなりますか?ラップトップや電話を言う。それからあなたは同じ問題にぶつかります。 – diedthreetimes

0

もし誰かがログインしているユーザのIPとクッキーを盗んだり、誰かがユーザacc/passwordを知っているとしたら、これはうまくいかないようです。 ...これはどんな種類の破壊行為にも(cookie-bruteforce /推測攻撃を除いて)どう対処するのか分かりません:/

また、接続されたIPが変わるたびに、彼は再度ログインする必要があります。

+0

「IPを盗むのはどれくらい難しいのですか?」という質問は、簡潔に言えば、 10代の若者が別の大陸でできることなのでしょうか、それとも最初にISPをハッキングする必要がありますか?これは最も弱いリンクの問題です。ハードな中間層をハックする必要がある場合、その努力をする価値はありません。 – spraff

0

ウェブサイトとの相互作用は、TCPを介して実行されるHTTPを使用して行われます。 TCP接続は永続的であり、各接続設定の開始時に発生するスリーウェイハンドシェイクは、自分のIPアドレスを知ることができないことを保証します(ハンドシェイクの第2ステップがサーバからクライアントであるため、ルーティングテーブルを妥協することができないか、他の本当に素晴らしい(そして非常に難しい)ことをしない限り、接続はセットアップできません。

特に、使用している脅威モデルに基づいて、IPアドレスのなりすましについては対処しないでください。 TCP接続の場合、実際にはこれを取り除くことは非常に難しいです。クライアントはIPアドレス(ISPが発行したダイナミックIP、プロキシサーバのロードバランシング、NAT/PATなど)を変更することができるため、この方法を使用して不正なものを正しく拒否するよりも、良いセッションIDを生成し、それをクッキーに格納し、リクエストごとにチェックします。

関連する問題