2014-11-14 6 views
21

Die Yesod book sagtWarum kann der Jessod Session Cookie nicht gehackt werden?

Die Verschlüsselung der Benutzer von der Überprüfung der Daten verhindert, und die Signatur stellt sicher, dass die Sitzung weder missbraucht werden können, noch manipuliert.

Es ist mir nicht klar, warum das der Fall ist. Wenn ein Lauscher den Cookie, der vom Server gesendet wird, in Besitz nimmt und ihn benutzt, bevor der legitime Benutzer eine andere Anfrage macht, wird die Sitzung nicht entführt?

Es scheint mir, dass die einzige Möglichkeit, Session-Hijacking wirklich zu verhindern, die Verwendung von SSL ist. Aber wenn ich das tue, dann ist das Signieren und Verschlüsseln, das von Yesod erledigt wird, überflüssiger Overhead (EDIT: Overhead, soweit es das Entführen verhindert. Wie @sr_ in den Kommentaren hervorhebt, ist es ansonsten immer noch nützlich).

+2

Die Bedrohung, die hier gemildert wird, ist _der Benutzer, der den Cookie ändert (ohne dass der Server dies merkt) _, ein allgemeines Problem, das auftritt, wenn dem Client zu viel vertraut wird (durch Speichern von Daten in Cookies). Von [hackage] (http://hackage.haskell.org/package/clientsession-0.9.1/docs/Web-ClientSession.html): "Neben dem Erkennen möglicher Fehler bei der Speicherung oder Übertragung der Cookies (Integrität), der MAC verhindert auch böswillige Änderungen der Cookie-Daten, indem sichergestellt wird, dass die Cookie-Daten tatsächlich von diesem Server generiert wurden (Authentizität). " –

+0

@sr_ Einverstanden. Was ich beanstande, ist mit der Behauptung des Buches, dass der Cookie nicht entführt werden kann. Wenn ich beispielsweise die Authentifizierung auf meiner Site verwende, aber kein SSL auf allen meinen Seiten verwende, scheint es mir, dass ein Angreifer mich unter den richtigen Umständen für die Site ausgeben kann. –

Antwort

24

Das ist ein guter Haken. Dies war früher genauer, wenn wir die IP-Adresse des Clients in den Cookie aufnehmen, um eine Entführung zu verhindern. In Kombination mit den Anti-Manipulations-Schutzmechanismen war es für einen MITM-Angriff im Grunde unmöglich, zu funktionieren, wenn Sie nicht hinter demselben Router NAT oder denselben Proxy verwenden.

Leider mussten wir diesen Schutz aufgrund von Bedenken über Proxies deaktivieren. Es ist möglich, dass die Anforderungen eines einzelnen Benutzers aufgrund von dazwischen liegenden Proxy-Servern von mehreren IP-Adressen kommen. Ich habe keine Daten, um zu sagen, wie oft das passiert, aber es gab genug Bedenken, dass dieses Sicherheitsmerkmal einen Bruch verursachen könnte, dass wir es deaktiviert haben.

Vielen Dank für dieses Problem, I've corrected the book.

+1

Danke, sowohl für die Korrektur als auch für die großartige Software. –

+3

Ein Vergnügen, Feedback wie diese Frage macht das ganze System viel besser! –

+1

Für Benutzer von AOL war es früher so, dass jeder Benutzer für Anfragen vier IP-Adressen rotierte. Ich erinnere mich daran, dass ich vor vielen Jahren meinen IP-Schutz deaktiviert habe. –