it-swarm.com.de

Variable IPs: Wie variabel sind sie? Best Practices für die Verfolgung

Es gibt viele Fragen zu StackOverflow in Bezug auf Sitzungssicherheit/Sitzungsentführung, aber es scheint keine wirklich gute Lösung für das Problem zu geben. Die drei häufigsten Vorschläge lauten wie folgt:

  1. Verfolgen Sie die IP-Adresse des Benutzers als Teil seiner $ _SESSION-Daten und machen Sie möglicherweise eine Sitzung ungültig, wenn sich diese ändert. Der Nachteil ist, dass viele Benutzer dynamische IP-Adressen haben, so dass Sie das Risiko eingehen, einen Benutzer scheinbar zufällig zu stören (aus seiner Sicht).

  2. Wie 1., jedoch mit einem User Agent. Hier gibt es zwei Probleme: Möglicherweise muss keine UA verfolgt werden, und sie können sich während Browser-Upgrades usw. ändern.

  3. Zweiter Cookie mit einem eindeutigen Token. Das Problem hierbei ist, dass ein Angreifer, der das normale Sitzungscookie in den Griff bekommt, sehr wahrscheinlich auch Ihr sekundäres Token in den Griff bekommt.

Mit diesen drei Optionen ist die IP-Adresse anscheinend die beste Option, da Sie garantiert eine IP-Adresse erhalten und diese unabhängig von der physischen Sicherheit ist (und wenn der Benutzer physisch gefährdet ist, verlieren Sie sie trotzdem). In diesem Sinne habe ich einige Fragen zu Änderungen der IP-Adresse:

  1. Wie oft würde sich die IP-Adresse eines Benutzers unter normalen Bedingungen wirklich ändern? Ich habe zu Hause DSL mit den üblichen dynamischen IP-Bedenken, und laut Google Mail hat sich meine IP seit Tagen nicht geändert. AFAIK, das passiert eigentlich nur, wenn das Modem sowieso zykliert, oder? Das scheint selten genug zu sein, dass es in Ordnung sein könnte, die Sitzung ungültig zu machen .

  2. Ich glaube, ich erinnere mich, dass Jeff in einem der SO Podcasts gesagt hat, dass sie etwas Ähnliches gemacht haben, obwohl es möglicherweise für etwas anderes war. Die Idee war, dass die Verwendung der ersten beiden (ich glaube) Oktette einer IP-Adresse unter bestimmten Umständen als "nah genug" angesehen werden kann. Dies ermöglicht es einem Benutzer, sich auf demselben ISP zu bewegen, das System würde jedoch feststellen, dass der Benutzer plötzlich in einem anderen ISP-Bereich ist. Ist das eine praktikable Taktik?

3
AgentConundrum

Ich bin nicht zu 100% sicher, dass dies auf Webmaster gehört, aber ich werde es trotzdem beantworten.

  1. Die IP-Adresse eines Benutzers ändert sich nur, wenn seine Verbindung unterbrochen und wieder hergestellt wird. Ich habe eine dynamische IP zu Hause, aber ich habe sie seit einem Monat, weil es so lange her ist, seit ich meinen Router neu gestartet habe. Einige ISPs erzwingen alle n Tage eine Trennung, andere nicht. Es ist unmöglich zu sagen, aber heutzutage hält eine IP-Adresse in der Regel einige Tage. DAS GESAGT, sie haben sich möglicherweise direkt vor ihren IP-Änderungen (Stromausfall, Auslösung über das Netzwerkkabel usw.) auf Ihrer Website angemeldet, sodass es nicht sicher ist, dies überhaupt anzunehmen.

    Das große Problem, das Sie hier finden, ist, wenn Sie sich an mobile Benutzer wenden. Dann sind alle Wetten deaktiviert, wenn sie ihre 3G- oder HSPDA-Netzwerke verwenden, um auf Ihre Site zuzugreifen.

  2. Die ersten beiden Oktette sind wahrscheinlich ziemlich sicher zu verwenden, aber in Australien gibt es einen ISP namens BigPond, der (leider) der größte im Land ist. Ihre zugewiesenen IP-Adressen variieren stark, und Sie können nicht garantieren, dass die ersten beiden Oktette gleich sind.

Trotzdem wurde ich noch nie von meinen Stack Exchange-Sites auf meinem iPhone, Heimnetzwerk oder Laptop abgemeldet (selbst wenn ich zu anderen Sites gehe oder HSPDA verwende). Was auch immer sie tun, funktioniert.

Außerdem habe ich noch nie davon gehört, den Benutzeragenten als Authentifizierungstoken zu verwenden. Dies kann nur ein Teil des Authentifizierungsprozesses sein.

Ich denke, Sie werden feststellen, dass ein oder zwei Sitzungscookies im Allgemeinen ausreichen, es sei denn, Sie tun etwas so nglaublich sicher dass Sie wissen, dass es ernsthafte Hijacking-Versuche gegen Ihre Website geben wird.

1
Mark Henderson

IP-Adressen können nur geändert werden, wenn das Gerät, dem die IP-Adresse zugewiesen wurde, vom Internet getrennt und erneut verbunden wurde. Es hängt jedoch stark von Ihren Nutzungsmustern und Ihrem ISP ab, ob und wie oft dies auftritt. Einige ISPs mit dynamischen IPs versuchen dennoch, Ihnen immer die gleiche IP-Adresse zuzuweisen, während andere (die versuchen, zusätzliche Gebühren für statische IPs zu erhalten) Ihnen eine neue IP-Adresse erteilen, selbst wenn Sie ihr Netzwerk nur kurzzeitig verlassen.

Nach meiner Erfahrung ist eine Änderung der IP-Adresse ein so seltenes Ereignis, dass es nicht übertrieben wäre, eine Sitzung darüber ungültig zu machen. Beachten Sie jedoch, dass dies immer noch vermieden werden sollte, es sei denn, Ihre Website befasst sich mit etwas Sensiblem.

Was ist beispielsweise das Schlimmste, was passieren kann, wenn jemand mein Konto stiehlt? Ein bisschen Vandalismus (dass die Community schnell zerquetscht), vielleicht etwas an Ansehen verloren. Die Auswirkungen sind für den Benutzer gering und der Vorteil für den Angreifer gering. Daher wäre es zu aggressiv, diese Maßnahme hier anzuwenden.

Umgekehrt kann mein Google-Konto einem Angreifer Zugriff auf alle Arten von privaten Daten gewähren (einschließlich - als Bonus - Zugriff auf diese Website). Daher ist es für Google selbstverständlich, vorsichtiger zu sein, und (folglich) habe ich dort häufig nach meiner Identität gefragt (obwohl ich zugeben werde, dass ich keine Ahnung habe, welche Kriterien sie verwenden).

0
Kris
  1. Meine private IP-Adresse hat sich seit mehreren Monaten nicht geändert. Ich weiß, dass sich bei Shaw Communications (Kabel-ISP in Kanada) meine IP-Adresse nur ändert, wenn sich meine externe MAC-Adresse ändert (MAC-Adresse des Routers oder eines Computers, der direkt mit dem Modem verbunden ist). OR Ich benutze mein Internet nicht für ein paar Tage.

    Vor nicht allzu langer Zeit habe ich eine DFÜ-Verbindung verwendet und festgestellt, dass sich meine IP-Adresse bei jeder erneuten Verbindung geändert hat, obwohl sich nicht allzu viel geändert hat. Ich bin mir nicht sicher, ob dies für DSL- und drahtlose Mobilteile ähnlich ist.

    Eine weitere zu berücksichtigende Sache wäre das Session-Hijacking über dasselbe lokale Netzwerk. Ich bin mir nicht sicher, ob es wirklich irgendetwas gibt, was man dagegen tun kann. Einige Schulen und größere Unternehmen haben viele Computer auf einer einzigen externen IP. (einige isp's auch vielleicht?)

  2. Ich bin mir nicht sicher, ob ich antworten kann, wenn zwei Oktette sicher sind. Es würde mich interessieren, einige Daten auf einer großen Nutzerbasis zu sehen und wie stark sich ihre IP-Adresse ändert.

0
WalterJ89
  • Mein DSL-Router trennt die Verbindung, wenn ich ihn 15 Minuten lang nicht benutze, und ich erhalte jedes Mal eine neue IP.
  • Mein Provider verwendet zwei oder drei sehr unterschiedliche IP-Bereiche.
  • Sie erzwingen alle 24 Stunden eine Trennung (genau wie meine beiden vorherigen DSL-Anbieter).
0
Chris Lercher

Ich glaube nicht, dass dies bei privaten ISPs üblich ist, aber die Proxy-Vereinbarung, die einer unserer Hauptkunden für den gesamten ausgehenden HTTP (S) -Verkehr verwendet (eine bekannte britische Bank, die aus vertraglichen Gründen an dieser Stelle namenlos bleiben muss). Manchmal sieht es so aus, als würden die Benutzer alle paar Minuten die IP-Adresse wechseln, manchmal sogar mitten in einem Block von Anfragen nach Unterobjekten (Bildern usw.) auf derselben Seite. Verwenden Sie daher die genaue IPv4-Adresse als Teil Ihrer Anfrage Sitzungsverfolgung ist eine schlechte Idee, wenn einige Ihrer Benutzer hinter einer ähnlichen Vereinbarung stehen.

In dem Fall, dass die angegebenen Adressen im selben/24-Bereich und nicht im gesamten Bereich liegen, würde ich aus Sicherheitsgründen empfehlen, höchstens die ersten beiden Oktette der IP-Adresse einzuhalten.

Sogar dann könnten Sie den Leuten Unannehmlichkeiten bereiten, wenn sie Ihre App auf Reisen nutzen. Zum Beispiel habe ich manchmal eine Webmail-Sitzung geöffnet, während ich mit meinem Netbook unterwegs bin - diese kann über mein drahtloses Heimnetzwerk gestartet werden, um dann zum kostenlosen drahtlosen Netzwerk am Bahnhof und zu meinem Mobilfunkanbieter zu wechseln, wenn der Zug, in dem ich lande, nicht eingeschaltet ist -board wireless, dann zu einem anderen kostenlosen WLAN-Zugangspunkt, dann zu einem beliebigen Netzwerk, das ich an meinem Zielort verwende. Alles ohne mich jemals von Zimba abzumelden (es ist einfach da und funktioniert jedes Mal, wenn ich das Netbook ausschlafe und eine Verbindung zu dem herstelle, was immer verfügbar ist) - ich könnte auf einer solchen Reise zwischen ein paar/16s wechseln. Dies ist natürlich ein Edge-Fall, der möglicherweise nicht genügend Nutzer betrifft, um in Ihren Plänen berücksichtigt zu werden. Dies gilt insbesondere dann, wenn sich alle Benutzer, die nicht besonders wählerisch sind, erneut anmelden müssen, wenn sie vom Heimnetzwerk in ein Mobilfunknetzwerk wechseln .

Session-Hijacking ist nur schwer vollständig zu blockieren. Wenn der Hijacker den Datenverkehr zwischen Client und Server überprüfen kann, als irgendetwas Sie über einen unverschlüsselten Kanal hin und her senden, ist dies leicht nachzuahmen, und wenn der Hijacker es geschafft hat, von einem Host auf der Route zwischen Client zu arbeiten und Server könnten sie sogar Anfragen fälschen, die anscheinend von der richtigen IP-Adresse stammen, so dass es Ihnen nicht immer hilft. Um das Session-Hijacking vollständig zu stoppen, müssen Sie HTTPS verwenden (und wenn Sie sich wirklich paranoid fühlen möchten: Wenn der Angreifer auf irgendeine Weise Zugriff auf Ihr Zertifikat HTTPS hat oder Zugriff darauf erhält (oder es vortäuscht), stoppt dies nicht Angriffe, die auf dem Proxying von MiTM-Sitzungsstarts basieren). Ich nehme an, Sie könnten auch so etwas wie den Austausch von DH-Schlüsseln implementieren, um einen freigegebenen Schlüssel zu bestimmen, ohne ihn zu übertragen, und dies zusammen mit der aktuellen Zeit und etwas Salz dazu verwenden, einen Hash zu erstellen, den der Server vereinfachen kann. Auf einer anständigen CPU mit einer modernen JS-Engine, wie sie in FF3.5 +, Chrome oder ähnlichem enthalten ist, können Sie möglicherweise den anfänglichen DH-Austausch für nützliche Schlüsselgrößen schnell genug durchführen, aber kein mobiler IE Benutzer wird dies tun in der Lage sein, innerhalb einer Woche einzusteigen).

Ein letztes Problem bei der Verwendung der IP-Adresse des Anforderers als Teil Ihrer Sitzungsverfolgung: Wenn sie sich hinter einer NAT -Vereinbarung befinden, können sie diese IP-Adresse für Hunderte von Benutzern freigeben. Wenn ich mit meinem 3G-Anbieter verbunden bin, erhalte ich eine Adresse im offiziell nicht weitergeleiteten 10.xxx-Bereich. Ich weiß nicht, von wie vielen öffentlichen Adressen meine Anfragen stammen, aber es ist möglich, dass ich eine öffentliche Adresse mit Tausenden von freigebe Leute an dieser Stelle (ich werde definitiv keine öffentliche Adresse für mich selbst haben).

Um es kurz zu machen: Die IP-Adresse des Clients ist nicht so gut, wie Sie es sich für das Verfolgen von Sitzungen vorstellen. Die Verwendung der ersten beiden Oktette bietet jedoch einen zusätzlichen Schutz gegenüber allen anderen Sitzungstoken, die Sie verwenden, ohne mehr als ein Problem zu verursachen wenige Benutzer.

0
David Spillett