← Back to team overview

sslug-teknik team mailing list archive

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