22
Inspiring people to share TYPO3-Camp München - 11./12. September 2010 Passwörter sicher speichern mit saltedpasswords Image: Carlos Porto / FreeDigitalPhotos.net

TYPO3-Passwörter sicher speichern mit saltedpasswords

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

TYPO3-Camp München - 11./12. September 2010

Passwörter sicher speichern mit saltedpasswords

Image: Carlos Porto / FreeDigitalPhotos.net

Page 2: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people tosharePasswörter sicher speichern mit saltedpasswords

Passwörter sicher speichern mit derSystemextension saltedpasswords

Steffen Gebert <[email protected]>

TYPO3-Camp München - 11./12. September 2010

Page 3: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people tosharePasswörter sicher speichern mit saltedpasswords

Einführung

Vorstellung

Steffen Gebert

Student, Freelancer

TYPO3 Core Team Member

Page 4: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Einführung

Passwörter sicher speichern mit saltedpasswords

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!

Page 5: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Einführung

Passwörter sicher speichern mit saltedpasswords

Speicherung von PasswörternAbsolutes No-Go: Speicherung des Klartextpassworts

Stattdessen

Speicherung eines Hashes (“Prüfsumme”)

Bei Login nur Vergleich mit dieser Prüfsumme

Page 6: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Einführung

Passwörter sicher speichern mit saltedpasswords

Grundlagen HashingEinwegfunktion

gleiche Eingabe => gleiches Ergebnismd5(‘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

Page 7: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Einführung

Passwörter sicher speichern mit saltedpasswords

Abspeichern eines salted PasswortsBenutzereingabe: ‘joh316’

Salt generieren, z.B. ‘7deb882cf’

Berechnung des Hashesmd5(‘7deb882cf’ . ‘joh316’) = ‘bacedc598493cb316044207d95f7ad54’

Abspeichern von Salt und Hash

Page 8: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Einführung

Passwörter sicher speichern mit saltedpasswords

Überprüfen eines PasswortsBenutzereingabe: ‘joh316’

Genutztes Salt aus Datenbank auslesen: ‘7deb882cf’

Berechnung des Hashesmd5(‘7deb882cf’ . ‘joh316’) = ‘bacedc598493cb316044207d95f7ad54’

Vergleich mit abgespeichertem Hash

Page 9: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Die Extension

Passwörter sicher speichern mit saltedpasswords

Systemextension saltedpasswordsUrsprünglich t3sec_saltedpasswords von Marcus Krause

Aufnahme in den Core in Version 4.3 mit Hilfe von Steffen Ritter

Page 10: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Die Extension

Passwörter sicher speichern mit saltedpasswords

Implementierte salting-MethodenSalted 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

Page 11: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Die Extension

Passwörter sicher speichern mit saltedpasswords

Der KnackpunktPasswort muss im Klartext vorliegen

TYPO3 übermittelt standardmäßig nur MD5-Hash

Klartextübertragung jedoch unsicher

Voraussetzung (mind. eine)

SSL-Verbindung

Systemextension rsaauthVerschlüsselt Passwörter vor Übertragung mit RSA-Algorithmus

Page 12: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Installation & Konfiguration

Passwörter sicher speichern mit saltedpasswords

rsaauthVoraussetzungen

OpenSSL: PHP-Erweiterung empfohlen, Binary als Fallback

JavaScript

Aktivierung

Frontend$TYPO3_CONF_VARS[FE][loginSecurityLevel] = ‘rsa’

Backend$TYPO3_CONF_VARS[BE][loginSecurityLevel] = ‘rsa’;

Page 13: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Installation & Konfiguration

Passwörter sicher speichern mit saltedpasswords

saltedpasswords mit SSL-VerbindungFrontend

$TYPO3_CONF_VARS[FE][loginSecurityLevel] = ‘normal’

Backend

$TYPO3_CONF_VARS[BE][lockSSL] > 0

Page 14: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Installation & Konfiguration

Passwörter sicher speichern mit saltedpasswords

Installation saltedpasswordsPrüft Verfügbarkeit von rsaauth oder lockSSL

Aktivierung für FE / BE getrennt

Wahl des Hashing-Algorithmus

Page 15: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Kompatibilität

Passwörter sicher speichern mit saltedpasswords

AbwärtskompatibilitätExistierende Passwörter? (unsalted MD5)

können nicht sofort konvertiert werden, da nicht im Klartext abgespeichert

einzig möglicher Zeitpunkt: während Login

Page 16: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Kompatibilität

Passwörter sicher speichern mit saltedpasswords

ExtensionsFrontend

felogin kompatibel

srfeuserregister_t3secsaltedpw

Alternative FE-User Registrierungen?

Ggf. Anpassungen nötig (Single-Signon etc.)

Page 17: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Hintergrundwissen

Passwörter sicher speichern mit saltedpasswords

PasswortformateMD5 ohne Salt (zur Erinnerung)bacb98acf97e0b6112b1d1b650b84971

MD5 mit Saltbeginnt mit $1$, 12 Zeichen Salt$1$13NETowd$WFpl6npZF71YKkCCzGds2.

Blowfishbeginnt mit $2a$, 22 Zeichen Salt$2a$07$DZpLLz7wtIfhSSMwyEXjA.Nbh6rpDlqbgwVKa.IoDLyuLe5C7Jp8W

PHPASSbeginnt mit $P$$P$Ccw7UIZ..SkvKBXDWnZlZ.qHcbktrB.

Page 18: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Hintergrundwissen

Passwörter sicher speichern mit saltedpasswords

Passwortformate Pro & ContraPHPASS

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

Page 19: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people toshare

Hintergrundwissen

Passwörter sicher speichern mit saltedpasswords

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

Page 20: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people tosharePasswörter sicher speichern mit saltedpasswords

WeblinksFree Rainbow Tableshttp://www.freerainbowtables.com

PHPASShttp://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

Page 21: TYPO3-Passwörter sicher speichern mit saltedpasswords

Inspiring people tosharePasswörter sicher speichern mit saltedpasswords

?????????????

Page 22: TYPO3-Passwörter sicher speichern mit saltedpasswords

inspiring people to share.