[LUGA] Mit freundlicher Unterstützung von:
Linux New Media AG

Mail Thread Index


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[luga] Django und Linux-Passwörter



Da stehe (bzw. sitze) ich also und habe eine Django-Applikation, auf die
meine User (ca. 100) Zugriff bekommen sollen. Ich könnte natürlich die
Leute bei mir im Büro antanzen und ihr Passwort eintippen lassen. Oder
ich könnte Passwörter generieren und den Leuten zuschicken. Aber das
scheint mir alles nicht sonderlich elegant zu sein. Oder ich könnte LDAP
gegen Active Directory verwenden, aber python-ldap scheint noch nicht so
ganz in der Python3-Welt angekommen zu sein.

Aber da sitzt so ganz unschuldig am Ende von PASSWORD_HASHERS ein Modul
names django.contrib.auth.hashers.CryptPasswordHasher herum. Könnte es
sein, dass dieses den gehashten String einfach an crypt(3) übergibt?

Fast. Der Aufbau der von Django gespeicherten Passwörter ist generell
<algorithm>$<iterations>$<salt>$<hash> und im Fall von
CryptPasswordHasher vereinfacht sich das zu 
<algorithm>$<iterations>$<cryptedpassword>
algorithm ist "crypt", iterations wird ignoriert, kann also ein
Leerstring sein, und cryptedpassword kann glücklicherweise auch
$-Zeichen enthalten. Das Passwort "Geheim" kann man also z.B. als
crypt$$xy/CPrdQaBRfA
crypt$$$1$abcd$A5U5XfU9mb/BPR/3xquNX.
abspeichern.
Oder mit anderen Worten: Einfach die Passwörter aus /etc/shadow
auslesen, "crypt$$" davorpacken und fertig.

Beim ersten erfolgreichen Login wird das Passwort übrigens mit dem
bevorzugten Algorithmus (per default PBKDF2) neu gehasht und
abgespeichert. 

	hp

-- 
   _  | Peter J. Holzer     | You can do reverse engineering,
|_|_) | Schriftführer LUGA  | but you can't do reverse hacking.
| |   | hjp@luga.at         |
__/   | http://www.luga.at/ | -- Vilayanur S. Ramachandran

Attachment: signature.asc
Description: Digital signature



powered by LINUX the choice of a gnu generation
linux user group austria;
Suche
Suche
Letzte Änderung:
webmaster@luga.at
Juli 2015