PHP 4.3

14.2 Gefahrenquellen

Bevor wir auf die Verschlüsselungsfunktionen von PHP im einzelnen eingehen, sei eines vorweggenommen: keine von ihnen bedeutet absolute Sicherheit. Der häufig am schwersten wiegende Schwachpunkt jeder serverseitigen Verschlüsselung (um die es sich bei PHP handelt, da die Verarbeitung eines Skripts nur auf dem Webserver stattfindet) ist die Übertragung der Daten. All zu oft werden Passwörter, die in ein HTML-Formular eingegeben wurden, unverschlüsselt vom Client zum Server übertragen. Da es möglich ist, unverschlüsselte Verbindungen zwischen Client und Server "abzuhören", kann das Passwort während der Übertragung zum Server mitgelesen werden. Auch wenn das Passwort, beim Server angelangt, verschlüsselt in Datenbanken oder Dateien abgelegt wird, gewährt dies also nur Schutz vor dem Auslesen des Passworts aus der Datenbank.

Die Verschlüsselungsfunktionen von PHP können also nur eine von mehreren Komponenten aktiver Sicherheitspolitik im Umgang mit Personendaten sein. Hier setzt der sogenannte Secure Socket Layer (SSL) an, mit dem es möglich ist, die Verbindung zwischen Client und Server zu verschlüsseln. Die Vermittlung des notwendigen Wissens zur Installation eines SSL-fähigen Webservers und der Umgang mit "sicheren Verbindungen" würde den Rahmen eines PHP-Basiskurses sprengen. Wir verweisen hier auf die Qualifikationseinheit "WebSite-Administration & Grundlagen Apache".

Neben dem "Belauschen" einer ungeschützten Übertragung, wie sie ohne Verwendung von SSL stattfinden kann, ist eine weitere Art des Angriffs gängig: die sogenannten Brute-Force-Attacken (engl. brute force = rohe Gewalt), bei denen systematisch alle möglichen Schlüssel bzw. Passwörter ausprobiert werden. Gerade bei Passwörtern bietet sich auch eine Angriffsvariante an, die als Wörterbuchattacke bezeichnet wird. Ein solcher Angriff basiert auf der Erfahrung, dass Menschen bei der Wahl des Passworts häufig Begriffe wählen, die für sie leicht merkbar sind. Aus diesem Grund sind echte "Wörterbücher" mit gängigen Passwörtern entstanden. Ein Angreifer versucht nun, mittels Programmen, die Stück für Stück jeden Eintrag des Wörterbuchs testen, ein gültiges Passwort eines Benutzer herauszufinden. Der Erfolg dieser Art des Angriffs ist von zwei Faktoren abhängig:

  1. Wie zufällig ist das Passwort, das heißt, wie groß ist die Chance, dass es in einem Wörterbuch auftaucht.
  2. Mit welcher Geschwindigkeit können Wörterbucheinträge "durchgetestet" werden.

Ein wichtiges Merkmal der Sicherheit eines Benutzerzugangs ist demnach auch die Qualität seines Passworts. Klassische Beispiele für schlecht gewählte Passwörter sind Namen, Geburtsdaten, etc. der Verwandten und Bekannten des Anwenders. Je zufälliger ein Passwort ist, desto schwieriger ist es zwar für den Benutzer, sich dieses Passwort zu merken (im schlimmsten Fall schreibt er es sogar auf einem gut sichtbaren Klebezettel am Monitor nieder). Andererseits verringern sich dadurch die Erfolgsaussichten für Brute-Force-Angriffe.

Hier gilt es einen guten Mittelweg zu finden, der daraus bestehen kann, dass merkbare, jedoch scheinbar zufällige Buchstabenkombinationen (mit Groß- und Kleinbuchstaben) mit 2 bis 5 Ziffern ein Passwort bilden. Dazu könnte man beispielsweise Wörter eines Wörterbuchs in verkürzter oder zufällig geänderter Schreibweise einsetzen und somit zwar Assoziation (und damit Merkbarkeit) schaffen, ohne jedoch Wörter des täglichen Sprachgebrauchs direkt einzusetzen.

Da hierbei viele Benutzer noch angeleitet werden müssen, ist es wichtig, dass Sie als Entwickler dafür einen Betrag leisten. Weisen Sie deshalb zu einfache Passwörter zurück. Vielleicht wollen Sie es dem Benutzer so einfach wie möglich machen, indem Sie zufällig generierte Passwörter vorschlagen oder zuweisen. Viele hilfreiche Funktionen, die Sie zur Erzeugung solcher Passwörter nutzen können, haben Sie im Verlauf der Qualifikationseinheit kennen gelernt. Aber Vorsicht: Sorgen Sie dafür, dass genug echter Zufall und Variationsmöglichkeit in dem vorgeschlagenen Passwort steckt, dass auch einem Kenner Ihres Vorschlagsmechanismus kein erfolgreicher Angriff möglich wird. Für ein gutes Passwort mit 8 Zeichen mit je 64 Möglichkeiten (Groß- und Kleinschreibung plus Ziffern plus ein paar Sonderzeichen wie Punkt und Minus) brauchen Sie 8x6 = 48 Bits an echtem Zufall!

Kommentare (0)

Ihr Kommentar

Name