sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #01534
Re: Dekryptering af passwd
Mads Bondo Dydensborg wrote:
>
> On Wed, 3 Feb 1999, Morten Olsen wrote:
>
> > Morten Sørensen wrote:
> > >
> > > Hej!
> > >
> > > Jeg har meget længe været temmelig nysgerrig mht. passwords i /etc/passwd.
> > > Hvordan kan det være at ingen (nogensinde?) har dekrypteret/cracket denne fil. Jeg
> > > ved at det er muligt (ved nemme passwords) med en brute force cracker, som bruger en
> ordbog. Men hvordan hænger det sammen.. Hvordan checker 'systemet' så om passwordet
> > > er rigtigt?
> >
> > ;) Det undrede jeg mig også over engang. Hit'et er at de ikke er
> > crypterede i traditionel forstand, men "hashede" med en bijektiv
>
> Slaa lige bijektiv op. Algoritmen er netop -ikke- bijektiv....
Doh! Lidt for lang tid siden jeg havde Mat for Dat. Den er selvgølgelig
kun _injektiv_
(f(a1) = f(a2) => a1=a2)
>
> > algoritme (dvs. der til hver password svarer der 1 og kun 1 krypteret
> > streng).
>
> Hvert password giver anledning til kun een enkrypteret streng.
?? Ja det var det jeg skrev?
> > Når man indtaster et password bliver selve dit password brugt
> > til at kryptere den tomme streng (vist nok) med en envejs algoritme.
>
> Nej. Hvis man indtaster et password, og et salt, kan man faa en
> enkrypteret streng. Naar man indtaster sit password bliver saltet fra
> passwd filen brugt til at enkryptere passwordet med, derefter sammenlignes
> de to enkrypterede strenge.
Man indtaster ikke et salt. passwd programmet vælger et tilfældigt salt
når man skifter password, dette salt gemmes ganske rigtigt som de 2
første tegn i det enkrypterede password.
>
> > Dvs. man kan ikke "dekryptere" det.
> Det er korrekt. Fordi det ikke er bijektivt.
>
> > Når du indtaster passwordet ved
> > login gøres dette, og hvis det krypterede stemmer med det der står i
> > /etc/passwd, så må det være det rigtige. Vupti! De to første bogstaver i
> > det krypterede password er det såkaldt "salt". Dette bruges til at opnå
> > bedre sikkerhed. Passwords på Windows (LANMAN) bruger ikke et sådant, og
> > er meget nemmere at brute-force.
>
> Passwords under SMB/LANMAN er, enkrypteret, langt stoerre. Unix/Linux er
> begraenset til 8 tegn. Som jeg har laest dokumentation til samba, er
> passwords under SMB/LANMAN "sikrere" end under unix/linux.
Ja, men det er bare ikke rigtigt af forskellige grunde.
1. Hashen er åbenbart dårligere en crypt(2)
2. De bruger _ikke_ et salt, hvorfor brute-force er langt hurtigere.
Desforuden er det enkrypterede password "clear-text"-ækvivalent. Dvs. du
med en lettere modificeret smbclient, og adgang til de krypterede
passwords kan du skaffe dig adgang. Derfor er det også vigtigt på linux
systemer der kører samba at smbpassword filen _ikke_ kan læses af andre
som /etc/passwd kan.
På http://www.l0pht.com/l0phtcrack/ kan du finde en LANMAN password
cracker. Samme sted kan du også læse en teknisk forklaring på hvorfor
sikkerheden ved LANMAN krypterede passwords er ekstremt dårligt, pga.
forskellige fejl i den challenge-response protocol der bruges. Dvs. du
kan sniffe et LANMAN password fra nettet, og bruge deres crackprogram på
det. Der er yderligere fejl i Win95/98 implementationen der gør det
endnu hurtigere end hvis det er imellem NT maskiner.
Mvh Morten
Follow ups
References