Warum Cookies nicht immer sicher sind

Heutzutage verwendet fast jede Internetseite Cookies, falls man im Internet surft. Ein Cookie dient zu einer Speicherung eines Wertes. Dies ist beispielsweise sinnvoll, wenn Sie sich einloggen möchten. Heute möchten wir zeigen, dass die Verwendung von Cookies nicht immer sicher ist und wir werden erklären, warum das so ist.

Ein Cookie befindet sich in der HTTP Response Nachricht. Dies ist die Nachricht, die wir zurückbekommen, wenn wir eine Webseite aufrufen. Ein Cookie ist folgendermaßen aufgebaut:

Set-Cookie: NAME=WERT; [expires=DATUM;] [path=PFAD;]
[domain=DNSNAME;] [secure]

Wenn eine Internetseite aufgerufen wird und Cookies gesetzt werden, dann werden die Cookies im Browser gespeichert. Dies ist allerdings nicht immer sicher.

Ein Angreifer könnte beispielsweise den Cookie-Wert im Browser durch ein spezielles Programm verändern. Wenn wir beispielsweise in einem Webshop ein Cookie setzen, das den Preis eines Artikels im Warenkorb beinhaltet, dann könnte sich der Angreifer dies zu Nutze machen und den Preis verändern.

Die Lösung hierfür ist eine Web Application Firewall. Die Web Application Firewall (WAF) funktioniert folgendermaßen: Es wird eine zufällige Session Nummer erstellt. Diese weist auf Cookie Daten hin. Beispiel für eine zufällige Session Nummer ist “58314e34a43938”. Dieser Cookie weist nun auf die Artikel ID “41122” und den Preis “43,99” hin. Wenn nun ein Angreifer den Session Cookie manipuliert, dann kann der Preis nicht mehr verfälscht werden.

Ein weiteres Problem stellt das Szenario dar, bei dem beispielsweise ein Login mit Cookies realisiert wird. Wenn Person A sich einloggt und vom Computer weggeht, so kann eine Person B immer noch den Login im Browser ausnutzen. Woher weiß man nun, ob es sich um Person A oder um Person B handelt? Die Lösung wäre hier, dass man dem Cookie eine Ablaufzeit beifügt. Beispielsweise soll der Cookie sich nach 10 Minuten selbst löschen.

Zuletzt ist nicht sichergestellt, dass Cookies unterwegs “abgehört” werden können. Bei Cookies sind die Passwörter und Daten stets im Klartext geschrieben. Somit kann ein Angreifer unterwegs die Daten abfangen und kann somit das Passwort kennen. Abhilfe schafft hierbei, dass man vertrauliche Daten verschlüsselt. Beispielsweise kann ein Passwort mit einer Verschlüsselungsmethode verschlüsselt werden. Noch besser ist es hierbei, die HTTP-Verbindung zwischen Browser und Internetseite mit SSL zu verschlüsseln.

Diese Gedanken sollte man im Hinterkopf haben, falls man bei der Programmierung von Internetseiten (beispielsweise Webshops) Cookies verwendet. Cookies sind keine zuverlässige und sichere Methode, um Daten zu speichern.