Image: Carlos Porto / FreeDigitalPhotos.net


                        TYPO3-Camp München - 11./12. September 2010       In...
Passwörter sicher speichern mit der
       Systemextension saltedpasswords


                   Steffen Gebert <steffen@st...
Einführung


Vorstellung


        Steffen Gebert
         Student, Freelancer

      TYPO3 Core Team Member




         ...
Einführung


Upps..
     TYPO3 Assicciation, 3rd Quarterly Report 2008

         “What happened? An unauthorized person ga...
Einführung


Speicherung von Passwörtern
     Absolutes No-Go: Speicherung des Klartextpassworts

     Stattdessen

      ...
Einführung


Grundlagen Hashing
     Einwegfunktion

         gleiche Eingabe => gleiches Ergebnis
         md5(‘joh316’) ...
Einführung


Abspeichern eines salted Passworts
     Benutzereingabe: ‘joh316’

     Salt generieren, z.B. ‘7deb882cf’

  ...
Einführung


Überprüfen eines Passworts
     Benutzereingabe: ‘joh316’

     Genutztes Salt aus Datenbank auslesen: ‘7deb8...
Die Extension


Systemextension saltedpasswords
      Ursprünglich t3sec_saltedpasswords von Marcus Krause

      Aufnahme...
Die Extension


Implementierte salting-Methoden
      Salted MD5

      Portable PHP password hashing framework

         ...
Die Extension


Der Knackpunkt
      Passwort muss im Klartext vorliegen

         TYPO3 übermittelt standardmäßig nur MD5...
Installation & Konfiguration


rsaauth
      Voraussetzungen

         OpenSSL: PHP-Erweiterung empfohlen, Binary als Fallb...
Installation & Konfiguration


saltedpasswords mit SSL-Verbindung
      Frontend

         $TYPO3_CONF_VARS[FE][loginSecuri...
Installation & Konfiguration


Installation saltedpasswords
      Prüft Verfügbarkeit von rsaauth oder lockSSL




      Ak...
Kompatibilität


Abwärtskompatibilität
      Existierende Passwörter? (unsalted MD5)

          können nicht sofort konver...
Kompatibilität


Extensions
      Frontend

          felogin kompatibel

          srfeuserregister_t3secsaltedpw

      ...
Hintergrundwissen


Passwortformate
     MD5 ohne Salt (zur Erinnerung)
     bacb98acf97e0b6112b1d1b650b84971

     MD5 mi...
Hintergrundwissen


Passwortformate Pro & Contra
     PHPASS

         niedrige Systemvoraussetzungen (zu jeder PHP-Versio...
Hintergrundwissen


Nutzung von crypt() [3]
     Passwortüberprüfung:
     crypt($user_input, $encrypted_password) == $enc...
Weblinks
     Free Rainbow Tables
     http://www.freerainbowtables.com

     PHPASS
     http://www.openwall.com/phpass/
...
?????
                                    ??
                                   ?
                                   ??
  ...
inspiring people to share.
Nächste SlideShare
Wird geladen in …5
×

TYPO3-Passwörter sicher speichern mit saltedpasswords

12.716 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Technologie
0 Kommentare
3 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
12.716
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
169
Aktionen
Geteilt
0
Downloads
50
Kommentare
0
Gefällt mir
3
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

TYPO3-Passwörter sicher speichern mit saltedpasswords

  1. 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. 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. 3. Einführung Vorstellung Steffen Gebert Student, Freelancer TYPO3 Core Team Member Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  4. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 21. ????? ?? ? ?? ?? ? Inspiring people to Passwörter sicher speichern mit saltedpasswords share
  22. 22. inspiring people to share.

×