Systems Architecture http sar informatik huberlin de HTTPS
Systems Architecture http: //sar. informatik. hu-berlin. de HTTPS Interface für LDAP-Passworte Christopher Rudolf, Philipp Stockschlaeder, David Pincus 18. 09. 2007
Gliederung • Einführung • Grundlagen • Architekturen • Implementierung • Angriffs-Szenarien May 2006 - 2 Systems Architecture 2 http: //sar. informatik. hu-berlin. de
Einleitung Die benutzerseitige Authentifizierung gegenüber Diensten erfolgt oft über Passworte werden heute nicht mehr im Klartext sondern als Hash übertragen. Aufgabenstellung: Erstellen Sie ein sicheres Web-Interface, das bei Passwortänderung alle Hashwerte, die für verschiedene Dienste benötigt werden, in eine LDAP–Datenbank einträgt. Das System sollte modular und erweiterbar sein und die Konsistenz der Hashes gewährleisten. May 2006 - 3 Systems Architecture 3 http: //sar. informatik. hu-berlin. de
Grundlagen LDAP • Verzeichnisdienst • hierarchische Struktur • offene Implementation: Open. LDAP • LDAPS: LDAP über SSL-Tunnel May 2006 - 4 Systems Architecture 4 http: //sar. informatik. hu-berlin. de
Grundlagen SSL (secure socket layer) • • Zertifikaterstellung mittels Open. SSL Selbstsignierte Zertifikate, manueller Austausch May 2006 - 5 Systems Architecture 5 http: //sar. informatik. hu-berlin. de
Grundlagen Hashfuntionen • „Fingerprint“ • festgelegte Länge • unumkehrbar (Einwegfunktion) • (möglichst) kollisionsfrei • Beispiele: MD{2 -5}, SHA{0, 1, 256, 512}, Whirlpool, NTPassword, LMPassword, Crypt May 2006 - 6 Systems Architecture 6 http: //sar. informatik. hu-berlin. de
Benötigte Komponenten • Webserver (Formular) • LDAP–Server (Passwort-Verzeichnis) May 2006 - 7 Systems Architecture 7 http: //sar. informatik. hu-berlin. de
Mögliche Architektur Passwortänderungsformular Webserver Benutzer LDAP Server - Login - Altes Passwort - Neues Passwortänderungssoftware May 2006 - 8 Systems Architecture 8 http: //sar. informatik. hu-berlin. de
Probleme • Do. S-Angriffe • „Man in the middle“ • Webserver wird übernommen • LDAP-Server wird übernommen • Passwortkonsistenz May 2006 - 9 der Datenbank Systems Architecture 9 http: //sar. informatik. hu-berlin. de
Gewählte Architektur Login Altes Passwort May 2006 - 10 Benutzer Webserver: Passwortänderungsformular LDAP Server Client Cert Passwortänderungssoftware. Server Cert Systems Architecture 10 http: //sar. informatik. hu-berlin. de
Gewährleistung der Passwortkonsistenz • Konfiguration der LDAP – Datenbank • Benutzer nur Lesezugriff auf Passwort-Hashes • Spezieller Benutzer hat Schreibrechte auf diese Werte • Zugangsdaten dieses Nutzers sind (nur) dem Java-Programm bekannt May 2006 - 11 Systems Architecture 11 http: //sar. informatik. hu-berlin. de
Webserver Benutzername Altes Passwort Neues Passwort an Java-Programm May 2006 - 12 Systems Architecture 12 http: //sar. informatik. hu-berlin. de
Java-Programm Benutzername Altes Passwort Neues Passwortänderung nicht möglich Account nicht vorhanden May 2006 - 13 Passwort aktualisiert Systems Architecture 13 http: //sar. informatik. hu-berlin. de
Angriffszenario: Do. S Ansatz: Do. S auf LDAP Server über den Webserver. • Wird durch CAPTCHAs verhindert. • Angriffsfläche kleiner als bei normaler Anwendung. Ansatz: Do. S auf Webserver. • Do. S betrifft lediglich Passwortänderungsfunktion. • -Keine Gefährdung der Erreichbarkeit des LDAPMay 2006 14 Servers. Systems Architecture 14 http: //sar. informatik. hu-berlin. de
Angriffszenario: Bruteforce Ansatz: Bruteforce-Angriff über das Webinterface. • Automatisierter Passwort-Test wird durch CAPTCHAs verhindert. May 2006 - 15 Systems Architecture 15 http: //sar. informatik. hu-berlin. de
Webserver übernommen Anfragen direkt an Java Applikation: • „Breites” durchtesten der Passwörter (ein Test, viele User) • Sperren der anfragenden IP nach mehr als 10 Anfragen • Optional: Konfigurierbare Mail an Administrator mit IP des Nutzers • „Tiefes” durchtesten der Passwörter (viele Tests, ein User) • Sperren der anfragenden IP nach mehr als 3 Anfragen • Optional: Konfigurierbare Mail an Administrator mit IP des Nutzers. May 2006 - 16 • Maximal 100 Verbindungen pro Sekunde auf Java-Applikation. • Maximale Dauer einer Verbindung: 1 Sekunde. Systems Architecture 16 http: //sar. informatik. hu-berlin. de
LDAP – Server übernommen May 2006 - 17 Systems Architecture 17 http: //sar. informatik. hu-berlin. de
Ende May 2006 - 18 Systems Architecture 18 http: //sar. informatik. hu-berlin. de
- Slides: 18