linux-l: Authentification in bash script
Thomas Knop
t.knop at isv-gmbh.de
Di Aug 8 09:34:47 CEST 2000
On, Mon, 07 Aug 2000, postmaster at thaten.in-berlin.de wrote:
> Zitiere Thomas Knop <t.knop at isv-gmbh.de>:
> > Ich hab mal ein wenig mit login rumprobiert: nix :-(
> > Aber schreib dir doch ein kleines proggi, daß genau das macht.
> > In perl oder tcl ist das doch kein problem. Einfach /etc/passwd
> > und /etc/shadow lesen, Benutzereingabe, Vergleich ==> gut / böse.
>
> Klingt gut. Bloß nunmal ne blöde Frage: Sind die Checksummen in
> /etc/shadow einfach die MD5-Hashs der eingegebenen Passwörter?
> Oder wie kann ich sonst die Eingabe so verarbeiten lassen,
> daß ich mit dem Eintrag in /etc/shadow vergleichen kann?
Nein, die sind stadart unix gecrypted. du must
die /etc/passwd & /etc/shadow auslesen. jede zeile an den ":" zerteilen.
Ist der zweite Teilstring aus /etc/passwd ein "x" (manchmal auch "*")
steht das gecryptete password in /etc/shadow (ebenfalls zweiter
teilstring). Jetzt mußt du die ersten zwei Zeichen des gecrypteten
passwortes abtrennen (das/der sogenannte "salt"). Dann cryptes du das
eingegebene Passwort mit genau diesem "salt". Das muß dann wieder den
gleichen codierten String geben. Beispiel:
/etc/passwd:
dummvogel:x: ....
/etc/shadow
dummvogel:ABt9z6QZHjGJw: ....
"dummvogel" hat natürlich das passwort "passwort" und
crypt("passwort", "AB") liefert "ABt9z6QZHjGJw".
Die Unix Passworter werden mit eine one-way DES (=Data Encrytion Standart)
verschlüsselt, d.h. man kann sie nur verschlüsseln, nicht aber entschlüsseln
(one-way). Zu den Zeiten als DES erfunden wurde, galt es als "hinreichend"
sicher (Ein Computer hätte ca. 10 Millionen Jahre zur entschlüsselung eines
DES-crypted Textes gebraucht). Heute stimmt das natürlich nicht mehr,
weswegen auch der shadow Mechanismus eingeführt wurde. In der Regel,
darf nämlich jeder User /etc/passwd lesen (wird auch für finger ect.
benötigt); /etc/shadow hingegen nur root.
Unter http://people.blinx.de/tknop/ckpw.pl findes du ein kleinen,
häßlichen, undokumentiertes perl-scrip, das ein passwort mit
oben beschriebenem Algorithmus auf Gültigkeit prüft.
chpw.pl dummvogel passwort
-> Password for user `dummvogel' OK!
Gruß Thomas
--
Thomas Knop Tel: +49-30-53433408
ISV GmbH Berlin Fax: +49-30-53433435
Am Treptower Park 75 t.knop at isv-gmbh.de
12435 Berlin http://www.isv-gmbh.de
Mehr Informationen über die Mailingliste linux-l