web-dev-qa-db-ja.com

可変IP:それらはどの程度可変ですか?追跡のベストプラクティス

セッションセキュリティ/セッションハイジャックに関連するStackOverflowに関する質問は多数ありますが、問題に対する本当に良い解決策はないようです。最も一般的な3つの提案は次のとおりです。

  1. ユーザーのIPアドレスを$ _SESSIONデータの一部として追跡し、セッションが変更された場合は無効にする可能性があります。欠点は、多くのユーザーが動的IPアドレスを持っているため、ユーザーをランダムに無効にしているように見えることです(彼らの観点)。

  2. 1.と同じですが、ユーザーエージェントを使用します。ここで2つの問題:追跡するUAがない場合があり、ブラウザのアップグレード中などに変更される可能性があります。

  3. 一意のトークンを持つ2番目のCookie。ここでの問題は、攻撃者が通常のセッションCookieを保持した場合、セカンダリトークンも同様に保持できる可能性が非常に高いことです。

したがって、これら3つのオプションでは、IPアドレスが最良のオプションであると思われます。1つが渡され、物理的なセキュリティとは無関係であることが保証されているためです(そして、ユーザーが物理的に侵害された場合は、それにもかかわらず失われます)。それを念頭に置いて、IPアドレスの変更に関する質問がいくつかあります。

  1. 通常の条件下でユーザーのIPアドレスが実際に変更される頻度。私は自宅にDSLを持っていますが、通常の動的なIPの懸念があり、gmailによると、私のIPは数日も変わっていません。私の知る限り、これはモデムがとにかく循環する場合にのみ本当に起こりますか? mightセッションを無効にしても大丈夫なほどまれなイベントのようです。

  2. ジェフがSOポッドキャストの1つで、似たようなことをしたと言ったのを覚えていると思います。考えは、IPアドレスの最初の2つの(私が信じる)オクテットを使用することは、状況によっては「十分に近い」と考えられるということでした。これにより、ユーザーは同じISPで動き回ることができますが、ユーザーが突然別のISPの範囲にいた場合、システムはそれを認識します。これは実行可能な戦術ですか?

3
AgentConundrum

私はこれがウェブマスターに属することを100%確信していませんが、とにかく答えます。

  1. ユーザーのIPアドレスは、接続がオフラインになりオンラインに戻ったときにのみ変更されます。私は自宅に動的IPを持っていますが、ルーターを再起動してからどれくらいの時間がかかったのか、1か月間使用していました。 ISPの中にはn日ごとに強制的に切断するものもあれば、そうでないものもあります。知ることはできませんが、この日と年齢でIPアドレスは一般に数日間続きます。そうは言っても、彼らはIPの変更(停電、ネットワークケーブルのトリップなど)の直前にあなたのWebサイトにログオンしている可能性があります。

    ここで見つかる大きな問題は、モバイルユーザーをターゲットにしている場合です。その後、3GまたはHSPDAネットワークを使用してサイトにアクセスしている場合、すべてのベットはオフになります。

  2. 最初の2オクテットはおそらく安全に使用できますが、オーストラリアには(残念ながら)国内最大のBigPondというISPがあります。割り当てるIPアドレスは大きく異なり、最初の2オクテットが同じになることを保証する方法はありません。

それは、iPhone、ホームネットワーク、職場のラップトップのStack Exchangeサイトからログアウトしたことは一度もありません(別のサイトに行ったりHSPDAを使用した場合でも)。だから彼らがやっていることは何でも動作します。

また、ユーザーエージェントを認証トークンとして使用することを聞いたことがありません。認証プロセスの1つだけpartにできます。

セッションCookieを1つまたは2つ保持するだけで十分であることがわかると思います。そうでない場合は、信じられないほど安全サイトに対する深刻なハイジャックの試みがあることを知っています。

1
Mark Henderson

IPアドレスは、IPアドレスが発行されたデバイスがインターネットに接続解除され、再接続された場合にのみ変更できます。ただし、これが発生するかどうかと頻度は、使用パターンとISPに大きく依存します。それにもかかわらず、動的IPを使用するISPは常に同じIPを発行しようとしますが、他の(静的IPの追加料金を取得しようとする)ISPは、ネットワークを一時的に中断しただけでも新しいIPを発行します。

私の経験では、IPアドレスの変更はあまり頻繁に発生しないため、IPアドレスを介したセッションを無効にするのはやり過ぎではありません。ただし、サイトが機密性の高いものを扱っていない限り、これはまだ避けてください。

このサイトを例にとると、誰かが私のアカウントをハイジャックした場合に起こる可能性のある最悪の事態は何ですか?少しの破壊行為(コミュニティがすぐにつぶれる)、評判の低下。その影響はユーザーにとっては軽微であり、攻撃者にとってはほとんど利点はありません。したがって、ここでこの方法を採用することは非常に積極的です。

逆に、私のGoogleアカウントは、攻撃者にあらゆる種類のプライベートデータへのアクセスを許可する可能性があります(ボーナスとして、このサイトへのアクセスを含む)。したがって、Googleがより慎重になるのは自然なことであり、(そのために)私はそこで頻繁に自分の身元を確認するように頼みました(ただし、どの基準を使用しているかわからないことは認めます)。

0
Kris
  1. 自宅のIPアドレスは数か月間変更されていません。 Shaw Communications(カナダのケーブルISP)では、外向きのMACアドレス(ルーターのMACアドレスまたはモデムに直接接続されているコンピューター)が変更されたときにのみIPアドレスが変更されることを知っていますOR使用しません数日間私のインターネット。

    少し前まではダイヤルアップ接続を使用していたので、再接続するたびにIPアドレスが変わることに気付きましたが、それほど大きくは変わりませんでした。これがDSLおよびワイヤレスハンドセットに似ているかどうかはわかりません。

    考慮すべきもう1つのことは、同じローカルネットワークからのセッションハイジャックです。それについてできることが本当にあるかどうかはわかりません。一部の学校や大企業では、単一の外部IP上に多くのコンピューターがあります。 (いくつかのispも多分?)

  2. 2つのオクテットが安全に使用できるかどうか、私が答えられるかどうかはわかりません。大規模なユーザーベースのデータと、IPアドレスの変更量を確認したいと思います。

0
WalterJ89
  • 15分間使用しないと、DSLルーターが切断され、毎回新しいIPが取得されます。
  • 私のプロバイダーは2つまたは3つの非常に異なるIP範囲を使用しています。
  • 24時間ごとに強制的に切断します(以前の2つのDSLプロバイダーとまったく同じです)。
0
Chris Lercher

住宅用ISPでは一般的ではないと思いますが、主要なクライアント(契約上の理由でこの時点では無名のままにする必要がある有名な英国の銀行)のすべての発信HTTP(S)トラフィックに使用されるプロキシ配置ユーザーが数分ごとにIPアドレスを切り替えるように見えることがあります。同じページのサブオブジェクト(画像など)のリクエストのブロックの途中であっても、正確なIPv4アドレスをユーザーの一部が同様の取り決めの背後にいる場合、セッショントラッキングは悪い考えです。

安全性を高めるために、IPアドレスの最初の2オクテット以下に固執することをお勧めしますが、アドレス全体が範囲ではなく、同じ/ 24の範囲内で与えられるアドレスを見ました。

それでも、旅行中にアプリを使用すると不便になる場合があります。たとえば、ネットブックで旅行中にウェブメールセッションを開いている場合があります。これは自宅のワイヤレスで開始し、駅で無料のワイヤレスに移動し、最終的に電車に乗っていない場合は携帯電話プロバイダーに移動できます-ボードワイヤレス、次に別の無料ワイヤレスAP、次に目的地で使用するネットワークに接続します。 Zimbaからログアウトすることなく(ネットブックのスリープを解除し、利用可能なものに接続するたびに動作します)-このような旅で/ 16から2を切り替えることができました。もちろんこれはエッジのケースであり、計画で検討する価値があるほどユーザーに十分な影響を与えない可能性があります-特に、最もうるさいユーザー以外はすべて、ホームネットワークからモバイルネットワークに切り替えるときに再度ログインする必要があります。

セッションハイジャックを完全にブロックすることは困難です。ハイジャッカーがクライアントとサーバー間のトラフィックを検査できる場合anything暗号化されていないチャネルを介してやり取りするのは簡単に模倣でき、ハイジャッカーがクライアント間のルート上のホストから機能することができた場合また、適切なIPアドレスから送信されたように見えるリクエストを偽造することもできるため、必ずしも役立つとは限りません。セッションのハイジャックを完全に停止するには、HTTPSを使用する必要があります(そして、本当に妄想したい場合:攻撃者が何らかの方法で証明書HTTPSにアクセスする(または偽造する)場合、これはMiTMセッションスタートアッププロキシベースの攻撃を停止しません)。共有キーを送信せずに決定するためにDHキー交換のようなものを実装し、それに加えて現在の時間とソルトを使用してサーバーが検証できるハッシュを作成することもできると思いますが、それが実用的であることは非常に疑わしいです( FF3.5 +、Chromeなどに見られる最新のJSエンジンを搭載したまともなCPUでは、最初のDH交換で十分な速度で有用なキーサイズを交換できますが、モバイルIEユーザーは1週間以内に参加できます)。

セッショントラッキングの一部としてリクエスタのIPアドレスを使用することに関する最後の問題:NAT配置の背後にいる場合、そのIPアドレスを何百人ものユーザーと共有することができます。 3Gプロバイダーに接続すると、公式にルーティングされていない10.xxxの範囲のアドレスを取得します-私のリクエストが何件のパブリックアドレスに対応しているのかわかりませんが、1つのパブリックアドレスを何千ものアドレスと共有することは可能ですこの時点での人々(私は間違いなく自分自身の公開アドレスを持っていません)。

要するに、クライアントのIPアドレスはセッションを追跡するために考えるほど良くはありませんが、最初の2つのオクテットを使用すると、他のセッショントークンの上に追加の保護を提供します。少数のユーザー。

0
David Spillett