Jedem Keks sein Geheimnis

Ich habe lange überlegt, ob ich nicht doch ein Login mit einem Cookie implementieren soll. Natürlich kann dies eine Sicherheitslücke darstellen – doch es gibt auch Vorteile.
Was ist überhaupt ein Cookie?
Ein Cookie (am. englisch Plätzchen, Keks) ist ein kurzer Eintrag in einer meist kleinen Datenbank auf einem Computer und dient dem Austausch von Informationen zwischen Computerprogrammen oder der zeitlich beschränkten Archivierung von Informationen.
Doch diese Beschreibung ist mir zu allgemein. Wenn wir von Cookies im Zusammenhang mit dem Internet reden, meinen wir eine kleine Textdatei mit einer Information drin, die der Browser irgendwo ablegt.
Mit einem Cookie ist es also möglich, Informationen für eine gewisse Zeit zwischenzulagern, auch dann, wenn der Browser geschlossen wird. Viele Foren, Gästebücher etc. machen oft davon Gebrauch, um z.B. Login-Informationen in einem Cookie abzulegen, so dass der Benutzer nicht immer sein Passwort eingeben muss. DER GROSSE NACHTEIL: Wird das Cookie gestohlen, kann sich der Angreifer als fremden Benutzer einloggen, ohne dessen Passwort zu kennen.
Es ist wohl klar, dass ich eine solch unsichere Methode sicher nicht implementieren werde. Stattdessen habe ich nach einer Lösung gesucht, die trotz des hohen Komforts auch noch einigermassen sicher ist. Folgendes ist dabei herausgekommen:

SSC – Session Secret Cookie
Ihr habt nun also folgende Möglichkeit, euch auf dem Weblog einzuloggen: Entweder per User/Pass Kombination, oder mit einem Cookie.
Jetzt muss noch definiert werden, welcher Benutzer wohl der “richtigere” ist: Derjenige, der sein Passwort kennt oder der mit dem Cookie? Richtig, der mit dem Passwort. Logins mit einem Cookie sind also nicht vertrauenswürdig.
Das obige SSC-Verfahren (yeah, nobody has done it before, it’s my invention!) funkioniert im Prinzip so: Jedesmal, wenn sich der User (Bob) mit seinem Passwort anmeldet (vertrauenswürdig), wird ein Geheimnis auf dem Server festgelegt – unabhängig davon, ob er Cookies will oder nicht.
Akzeptiert er Cookies, wird dieses Geheimnis als Cookie beim Benutzer abgelegt. Von nun an kann er sich ohne Passwort einloggen, mit anderen Worten: Er ist theoretisch immer online. Cool, gleich zwei Fliegen auf einen Streich: Verabschiedet euch von den nervigen Session-Timeouts; läuft die Session ab, seid ihr schwuppsdiwupps per Cookie wieder online!
Der Server prüft bei jedem Klick folgendes:

Nur das Geheimnis überprüfen, wenn das Cookie gesetzt ist, wäre sinnlos. Der Angreifer kann das Cookie löschen, und bleibt online, auch wenn das Geheimnis geändert wird. Somit wird bei einem Cookie-Login das Geheimnis zusätzlich in die Session registriert.
Session: Ein Servergespeichertes Cookie (Session-Cookie), das der Benutzer nicht von Hand ändern kann. Er kann nur sagen: “Mir gehört die Session 0541a2427ae590184115cbe821b0f479″. Und wenn er das nicht sagen tut, wird er ausgeloggt!
Nun kann der Angreifer sich mit Bob’s Cookie einloggen. Er kann es von mir aus auch wieder löschen.
Egal was er mit dem gestohlenen Cookie macht: Loggt sich Bob mit seinem Passwort ein, wird das Geheimnis geändert, und der Angreifer wird beim nächsten Klick ausgeloggt und sein Cookie ungültig. Ihm bleibt nichts anderes übrig als ein 32-stelliger nutzloser Zahlensalat.
Es ist also von Vorteil, sich von Zeit zu Zeit mit Passwort einzuloggen, damit das Geheimnis geändert wird.
Cookies sind übrigens nicht die einzige Komfortsteigerung; Postet doch mal ein neues Blog und schaut wie komfortabel das jetzt geht!
Longneck
de Thomas Winter? Nöö, dä isch nur am Donnstig & Fritig do.
Und dä chunt denn amigs mi cho froge wäge PHP ![]()

Capt. Crakkstuh
)))))
er hett vrzellt er hett sone börsespkulant-by-php für sone game gschriebe… absolut freaky. aber de siech isch dufte. hilft immer wenn mir am billard spiele sind *g* co-assistanz
Longneck
jäjä de winti…
mir het er au scho sone site zeigt für guild wars, wo azeigt wo sich NPCs ufhalte mithilf vo dr grafik-library vo php. isch no cool!
hüt sött er glaubs wider do si, denn chönnemer wider fachsimple – er sitzt jo grad 5m nebe mir
)

Capt. Crakkstuh
heheheheeheheheheeeee, seischem e gruess gelle



Capt. Crakkstuh
gibs doch zue. de fhbb student wo bi euch in coop zu 40% als netzadmin schafft hett dr e tipp geh