Version: GSB 7Einsatz von HTTPS und SSL
Das SSL-Protokoll verschlüsselt die zwischen Browser und Server ausgetauschten Daten und sorgt dafür, dass vertrauliche Informationen vor dem Ausspähen auf dem Übertragungsweg geschützt sind. Diesen Schutz führen heutige Browser so weit, dass auch bei einem Wechsel von einer per SSL geschützten Seite (HTTPS) zu einer ungeschützten Seite (HTTP) – etwa dann, wenn der User auf der SSL-geschützten Seite auf einen HTTP-Link klickt – sensitive Protokollinformationen nicht weitergegeben werden.
Vertraulichkeit
Durch Verschlüsselung von Daten soll die Vertraulichkeit sichergestellt werden. Bei HTTPS-Verbindungen auf einem Webserver wird zur Verschlüsselung der Kommunikation zu Beginn der Verbindung automatisch ein so genannter Session Key ausgehandelt, ein Schlüssel für symmetrische Verschlüsselung, der anschließend für die Dauer der Verbindung verwendet wird.
Bei der SSL-Verschlüsselung wird sichergestellt, dass
- der Schlüssel zufällig gewählt und nicht vorhersagbar ist,
- der Schlüssel ausreichend lang ist, um von einem Angreifer nicht durch Ausprobieren geknackt zu werden.
Eine Gefahr, die trotz Verschlüsselung noch nicht gebannt ist, besteht darin, dass eine Webseite in der Regel aus mehreren Teilen besteht (z. B. Bilder, Frames, Stylesheets, Flash-Animationen, Hintergrundmusik), die separat transportiert werden. Wenn nur ein Teil davon gesichert übertragen wird, ist die Kommunikation wieder angreifbar. Daher kann es unter Umständen sinnvoll sein, den gesamten Applikationskontext (d.h. die Session) innerhalb von SSL zu übertragen, um mögliche Sicherheitsprobleme, die durch die unverschlüsselte Übertragung von Teilbereichen entstehen könnten, von vornherein auszuschließen.
Hinweise und Maßnahmen
Um innerhalb eines GSB-Mandanten eine HTML-Seite vollständig verschlüsselt auszuliefern, muss am Navigationsknoten (Originalname des Dokumenttyps: NavNode) beim Attribut Transferprotokoll (Originalname: transferProtocol) der Wert HTTPS (bzw. 1) eingestellt werden. Die Einstellung der Übertragungsmethode bei einem HTML-Formular wird in Kapitel 3.4 näher beschrieben.
Auch wenn der Webauftritt eines konkreten GSB-Mandanten im Einzelfall selbst nicht als schutzbedürftig durch SSL eingestuft werden sollte, sind zumindest folgende Operationen zu verschlüsseln:
- Registrierung
- Login
- Zugriff auf persönliche Daten
- Passwort-Änderung
- "Passwort vergessen"-Funktion
- Kontaktformulare
Integrität
Durch die Verschlüsselung wird leider noch nicht die Manipulation von Daten verhindert. Zwar wird die freie Gestaltung beim Fälschen von Informationen durch die Verschlüsselung deutlich erschwert, aber je nach den konkreten Umständen gibt es für einen Angreifer doch die Möglichkeit, bei einer Nachricht etwas einzufügen. Es kann einem Angreifer aber vielleicht auch genügen, die Nachricht einfach nur so zu manipulieren, dass sie für den Adressaten nicht mehr verständlich bzw. nachvollziehbar ist.
Manipulation der Daten auf dem Übertragungsweg
Technisch kann zwar eine Manipulation der Daten nicht immer verhindert werden, aber es ist durchaus möglich, eine Manipulation zu erkennen. Dazu müssen die übertragenen Datenpakete digital unterschrieben werden. Der Absender bildet eine kryptographische Prüfsumme aus der Nachricht und dem Session Key und sendet das Ergebnis mit, das vom Empfänger nachgerechnet wird. Da außer Sender und Empfänger niemand den Session Key kennt, kann niemand die zu einer gefälschten Nachricht passende Prüfsumme berechnen. Wenn Prüfsumme und Nachricht nicht übereinstimmen, sind die Daten manipuliert worden, und entsprechende Maßnahmen können eingeleitet werden.
Hinweise und Maßnahmen
Um Datenmanipulationen bei Emails zu verhindern, steht im GSB-Umfeld eine Projektlösung zur Verfügung, die Emails mittels PGP oder S/MIME signieren und verschlüsseln kann.
Replay Attacks
Bei so genannten Replay Attacks wird die gesamte Verbindung (oder zumindest ein Teil davon) von einem Angreifer aufgezeichnet und zu einem späteren Zeitpunkt wieder abgespielt. Das Protokoll HTTPS ist gegen so genannte Replay-Attacken geschützt, indem jeder Nachrichtenblock innerhalb einer Verbindung eine fortlaufende Nummer erhält. Da sowohl der Session Key als auch die Blocknummern in die Berechnung der integritätsschützenden Prüfsumme einbezogen werden, wird jeder Versuch des Daten-Recyclings sofort erkannt und führt zur Beendigung der Verbindung.
Zertifikate
Zum Schutz der Integrität gehört es auch, die Authentizität eines Servers oder eines Kommunikationspartners sicherzustellen. Hierzu muss der Webserver seine Identität beispielsweise mithilfe von Zertifikaten nachweisen können.
Ein TLS/SSL-Zertifikat ist eine normierte Datenstruktur, die unter anderem folgende Angaben enthält:
- Domainname,
- Organisation,
- Gültigkeitszeitraum,
- öffentlicher Schlüssel des Rechners,
- Bezeichnung der Stelle, die das Zertifikat ausgestellt hat (Certificate Authority, kurz CA) sowie
- deren Signatur.
Zur Kontrolle eines Zertifikats entschlüsselt der Browser die Unterschrift der Zertifizierungsstelle mit deren öffentlichem Schlüssel, berechnet selbst die Prüfsumme aus den Angaben im Zertifikat und vergleicht die Ergebnisse. Stimmen sie überein, kann man sich auf die Identität des Servers verlassen - vorausgesetzt, man vertraut dem Zertifikatsaussteller.
Hinweise und Maßnahmen
Bei einer GSB-Hosting-Plattform müssen für alle GSB-Mandanten, die mittels HTTPS im Internet kommunizieren, entsprechende Server-Zertifikate bereitgestellt werden.