O'Reilly logo

PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren by Stefan Esser, Christopher Kunz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

1476.2 Authentisierungssicherheit
6.2 Authentisierungssicherheit
Bevor Ihre PHP-Anwendung anhand einer Nutzerdatenbank feststel-
len kann, ob ein Nutzer existiert und berechtigt ist, die Anwendung zu
verwenden, muss der Nutzer zunächst die notwendigen Informationen
bereitstellen. Die Authentisierungsinformationen des Nutzers sind
dazu gedacht, ihn eindeutig identifizierbar zu machen – wenn sie
jedoch durch Dritte abhör- oder erratbar sind, ist die Authentisierung
und damit auch die Authentifizierung wertlos und Ihre Anwendung
kompromittiert.
Die in den folgenden Abschnitten vorgestellten Maßnahmen sollen
Ihnen helfen, Ihre Nutzer gegen unsichere Authentisierungsinformati-
onen, aber auch gegen das Erraten und Abhören der Authentisierung
zu schützen.
6.2.1 SSL
Für Login- und Anmeldeseiten jeder Art sollten Sie SSL als absolutes
»Muss« ansehen. Schließlich fühlt sich niemand wohl, wenn seine
persönlichen Daten unverschlüsselt übertragen werden und prinzipiell
von jedermann abgehört werden können.
SSL, kurz für »Secure Sockets Layer«, wird von den meisten Web-
servern, insbesondere von Apache, unterstützt. Ein spezielles Server-
modul, mod_ssl, bietet Funktionen an, die mit der Open-Source-Bibli-
othek »OpenSSL Toolkit«
1
zusammenarbeiten
.
Der Einsatz von SSL für Webserver
erfüllt zweierlei Aufgaben.
Zum einen werden alle Daten, die von Ihrem Server zum Anwender
(dem Client) übertragen werden, verschlüsselt, und zum anderen kann
der Client anhand eines sogenannten »Zertifikates« Ihre Identität
nachprüfen. Ein solches Zertifikat wird von einigen Firmen wie z.B.
InstantSSL
2
, Thawte
3
oder VeriSign
4
ausgestellt, nachdem diese Ihre
Identität und die Existenz Ihrer Firma (falls angebracht) eingehend
geprüft haben (Sie also anhand der von Ihnen vorgelegten Informatio-
nen authentifiziert wurden). Ein Benutzer kann sich nach dieser Über-
prüfung darauf verlassen, dass er tatsächlich eine Verbindung zur
Firma »Meier und Söhne Internetdienstleistungen« aufgebaut hat –
das Zertifikat bestätigt dies. Da die Überprüfung seitens des Zertifi-
katsausstellers jedoch nur einmal pro Zertifikatslaufzeit vorgenom-
1. http://www.openssl.org/
2. http://www.instantssl.com/
3. http://www.thawte.com/
4. http://www.verisign.com/
6 Authentisierung und Authentifizierung 148
men wird (also meist einmal im Jahr), kann es passieren, dass ein Zer-
tifikat nicht den tatsächlichen Besitzer des zertifizierten Servers
widerspiegelt. Das passiert jedoch selten, und in aller Regel ist es
unmöglich, ein Zertifikat so zu fälschen, dass der eigene Server z.B. als
der von eBay ausgewiesen wird – derartige Versuche werden von den
Ausstellern, die im Übrigen auch als »Certificate Authority« oder kurz
CA bekannt sind, verhindert.
»Man in the Middle«-
Attacke
Somit ist es für einen Angreifer nicht möglich, eine »Man in the
Middle«-Attacke auf Ihre Kunden und Webserver auszuführen. Bei
diesem Angriff leitet der Cracker, der eine Möglichkeit hat, den Daten-
verkehr Ihrer Websites auszuspähen und zu manipulieren, die Verifika-
tion eines SSL-Zertifikates so um, dass statt des legitimen Zertifikates
ein von ihm gefälschtes präsentiert wird, das jedoch meist nicht von
einer CA unterschrieben ist. Leitet er zusätzlich den DNS-Eintrag Ihrer
Websites auf eine andere IP um, indem er (über Viren oder Würmer)
die DNS-Funktionen der Kunden manipuliert (Pharming), kann er
Angriffe wie etwa das »Abfischen« von Passwörtern und Nutzerdaten
(Phishing) perfektionieren. Ein von einer im Browser anerkannten CA
ausgestelltes Zertifikat verhindert solche »Man in the Middle«-
Angriffe.
Zertifikate selbst erstellen
Zertifikate sind leider in der Regel nicht kostenlos, sondern schla-
gen mit Preisen zwischen etwa 50 und bis zu 500 Euro jährlich zu
Buche – für diesen Betrag bietet die CA meist zusätzlich eine Versiche-
rung gegen Angriffe auf das Zertifikat.
Sie können, falls Sie die Kosten für ein SSL-Zertifikat scheuen,
auch ein sogenanntes »Snake Oil«-Zertifikat, also ein selbst erstelltes
Dokument verwenden. Der blumige Name rührt daher, dass in der
englischen Umgangssprache »Snake Oil«, also »Schlangenöl«, sinn-
bildlich für unwirksame Tinkturen steht, die von Scharlatanen ver-
kauft werden. Zwar ist ein solches Schlangenöl-Zertifikat nicht völlig
wirkungslos, aber zur Identitätsfeststellung kann es nicht benutzt wer-
den. Lediglich zur Verschlüsselung – also um die Kommunikation mit
dem Webserver abhörsicher zu machen – können sie es verwenden. Die
Dokumentation zu OpenSSL verrät Ihnen, wie Sie ein solches Schlan-
genöl-Zertifikat erstellen. Alternativ können Sie auch bei der Initiative
»CaCert.org«
5
Mitglied werden, von einem oder mehreren anderen
Mitgliedern (die es inzwischen in jeder größeren Stadt gibt – auch einer
der Autoren dieses Buches ist CaCert-zertifiziert) Ihre Identität beglau-
bigen lassen und sich danach selbst beliebig viele SSL-Zertifikate aus-
stellen – alles kostenlos. Zwar sind die Zertifikate von CaCert nicht in
5. http://www.cacert.org/

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required