TYPO3-Passwörter sicher speichern mit saltedpasswords

  • 10,897 views
Uploaded on

English version available here: http://www.slideshare.net/StephenKing/secure-password-storing-with-saltedpasswords-in-typo3 …

English version available here: http://www.slideshare.net/StephenKing/secure-password-storing-with-saltedpasswords-in-typo3

Erklärung der Systemextension "saltedpasswords" zur sicheren Speicherung von Passwörtern in TYPO3-Installationen.
Vortrag auf dem TYPO3camp Munich 2010
http://www.typo3camp-munich.de

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
10,897
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
44
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Image: Carlos Porto / FreeDigitalPhotos.net TYPO3-Camp München - 11./12. September 2010 Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 2. Passwörter sicher speichern mit der Systemextension saltedpasswords Steffen Gebert <steffen@steffen-gebert.de> TYPO3-Camp München - 11./12. September 2010 Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 3. Einführung Vorstellung Steffen Gebert Student, Freelancer TYPO3 Core Team Member Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 4. Einführung Upps.. TYPO3 Assicciation, 3rd Quarterly Report 2008 “What happened? An unauthorized person gained administrative access to the typo3.org website. As far as we can tell, an admin password was stolen and used to find out more passwords on typo3.org.” Speicherung sensibler Daten (z.B. Passwörter) bestmöglichst vermeiden! Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 5. Einführung Speicherung von Passwörtern Absolutes No-Go: Speicherung des Klartextpassworts Stattdessen Speicherung eines Hashes (“Prüfsumme”) Bei Login nur Vergleich mit dieser Prüfsumme Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 6. Einführung Grundlagen Hashing Einwegfunktion gleiche Eingabe => gleiches Ergebnis md5(‘joh316’) = ‘bacb98acf97e0b6112b1d1b650b84971’ Rückrichtung algorithmisch nicht möglich Meistgenutzter Algorithmus: MD5 gilt nicht mehr als sicher (Kollisionen relativ einfach, riesige Rainbowtables verfügbar) Alternativen (SHA) liefern nur größeren Ergebnisraum => Verschiebung des Problems auf neue Rainbowtables Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 7. Einführung Abspeichern eines salted Passworts Benutzereingabe: ‘joh316’ Salt generieren, z.B. ‘7deb882cf’ Berechnung des Hashes md5(‘7deb882cf’ . ‘joh316’) = ‘bacedc598493cb316044207d95f7ad54’ Abspeichern von Salt und Hash Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 8. Einführung Überprüfen eines Passworts Benutzereingabe: ‘joh316’ Genutztes Salt aus Datenbank auslesen: ‘7deb882cf’ Berechnung des Hashes md5(‘7deb882cf’ . ‘joh316’) = ‘bacedc598493cb316044207d95f7ad54’ Vergleich mit abgespeichertem Hash Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 9. Die Extension Systemextension saltedpasswords Ursprünglich t3sec_saltedpasswords von Marcus Krause Aufnahme in den Core in Version 4.3 mit Hilfe von Steffen Ritter Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 10. Die Extension Implementierte salting-Methoden Salted MD5 Portable PHP password hashing framework Verfügbar für diverse PHP Applikationen (Drupal etc.) Wiederholte Anwendung von MD5 (langsam) Blowfish Verfügbarkeit systemabhängig Ab PHP 5.3 eigene Implementierung Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 11. Die Extension Der Knackpunkt Passwort muss im Klartext vorliegen TYPO3 übermittelt standardmäßig nur MD5-Hash Klartextübertragung jedoch unsicher Voraussetzung (mind. eine) SSL-Verbindung Systemextension rsaauth Verschlüsselt Passwörter vor Übertragung mit RSA-Algorithmus Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 12. Installation & Konfiguration rsaauth Voraussetzungen OpenSSL: PHP-Erweiterung empfohlen, Binary als Fallback JavaScript Aktivierung Frontend $TYPO3_CONF_VARS[FE][loginSecurityLevel] = ‘rsa’ Backend $TYPO3_CONF_VARS[BE][loginSecurityLevel] = ‘rsa’; Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 13. Installation & Konfiguration saltedpasswords mit SSL-Verbindung Frontend $TYPO3_CONF_VARS[FE][loginSecurityLevel] = ‘normal’ Backend $TYPO3_CONF_VARS[BE][lockSSL] > 0 Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 14. Installation & Konfiguration Installation saltedpasswords Prüft Verfügbarkeit von rsaauth oder lockSSL Aktivierung für FE / BE getrennt Wahl des Hashing-Algorithmus Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 15. Kompatibilität Abwärtskompatibilität Existierende Passwörter? (unsalted MD5) können nicht sofort konvertiert werden, da nicht im Klartext abgespeichert einzig möglicher Zeitpunkt: während Login Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 16. Kompatibilität Extensions Frontend felogin kompatibel srfeuserregister_t3secsaltedpw Alternative FE-User Registrierungen? Ggf. Anpassungen nötig (Single-Signon etc.) Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 17. Hintergrundwissen Passwortformate MD5 ohne Salt (zur Erinnerung) bacb98acf97e0b6112b1d1b650b84971 MD5 mit Salt beginnt mit $1$, 12 Zeichen Salt $1$13NETowd$WFpl6npZF71YKkCCzGds2. Blowfish beginnt mit $2a$, 22 Zeichen Salt $2a$07$DZpLLz7wtIfhSSMwyEXjA.Nbh6rpDlqbgwVKa.IoDLyuLe5C7Jp8W PHPASS beginnt mit $P$ $P$Ccw7UIZ..SkvKBXDWnZlZ.qHcbktrB. Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 18. Hintergrundwissen Passwortformate Pro & Contra PHPASS niedrige Systemvoraussetzungen (zu jeder PHP-Version kompatibel) setzt PHPASS-Implementierung in Applikation voraus MD5 / Blowfish Unix crypt() Format, kompatibel zu Systemdiensten (/etc/passwd) vielleicht doch die bessere Wahl (?) Algorithmen von PHP/System abhängig mit PHP 5.3.2 auch SHA-256/512 möglich Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 19. Hintergrundwissen Nutzung von crypt() [3] Passwortüberprüfung: crypt($user_input, $encrypted_password) == $encrypted_password); Gespeicherter Hash (incl. Salt): $1$13NETowd$WFpl6npZF71YKkCCzGds2. crypt(joh316, $1$13NETowd$WFpl6npZF71YKkCCzGds2.) = $1$13NETowd$WFpl6npZF71YKkCCzGds2. crypt(password, $1$13NETowd$WFpl6npZF71YKkCCzGds2.) = $1$13NETowd$SeAArtswHd8jzc9SQvH691 Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 20. Weblinks Free Rainbow Tables http://www.freerainbowtables.com PHPASS http://www.openwall.com/phpass/ PHP Manual: crypt() http://de2.php.net/manual/en/function.crypt.php Wikipedia: crypt (Unix) http://en.wikipedia.org/wiki/Crypt_(Unix)#Library_Function Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 21. ????? ?? ? ?? ?? ? Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  • 22. inspiring people to share.