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