Newsgroup: it.comp.sicurezza.crittografia
Titolo: Cracking delle password di windows , una implementazione iperveloce

http://punto-informatico.it/p.asp?i=44910
Sembra che microsoft non viva giorni tranquilli ....
Ciao
Fabio

 Sembra che microsoft non viva giorni tranquilli ....
Ho letto l'articolo e pure i commenti, pare che i sistemi *nix usino 
l'MD5 per hashare le pwd, microsoft si affida a una qualche soluzione 
che una volta si limitava allo xor poi a un metodo banale e ora a uno 
più complicato ma comunque cracckabile in dieci secondi pur di avere i 
file SUM (mi pare), quelli con gli hash.
Non ho voglia di scervellarmi per immaginare perché si hasha la pwd 
degli users/amm/root, qulcuno ha qualche parola di spiegazione da spendere?
-- 
Bye,     | Stolto e' colui che invece di guardare(gnuKEY ID 0xD5D28BA9)
Sandro.  | la luna guarda il dito che la indica. (Togli/Cut SpamNo)
---------*
[This message is released under the GNU/GPL license 
http://www.gnu.org
]

degli users/amm/root, qulcuno ha qualche parola di spiegazione da spendere?
non so se ho capito la domanda.. 
ma direi che si fa perchè è un emtodo per permettere l'autenticazione
senza permeter di risalire a quelle informazioni in caso di
compromissione.
Cioè, se la password la salvi in chiaro chiunque abbia accesso al file
di pass se la legge allegramente.
Se ne hai salvato un hash non può (o non dovrebbe) potervi risalire
facilmente, e per l'autenticazione basta prendere la  pass immessa e
verificare se l'hash corrisponde a quello salvato.
Cmq MD5 per le pass mi pare sia leggermente differente dal vero MD5
per l'aggiunta di un salt in qualche modo...

 per l'aggiunta di un salt in qualche modo...
TY Gabriele. Mi chiedevo allora se fosse equivalente l'usare una 
qualsiasi crittazione di un msg fisso o addirittura meglio.


 qualsiasi crittazione di un msg fisso o addirittura meglio.
in teoria dall'hash non si doverebbe poter recuperare la pasword
puoi usare anche sha1 che e' un hash
anche il crc32 e' un hash
serve solo a verificare che la password sia corretta
password  nel file md5 di pizza
l'urente inserisce pizza
e il sistema fara semplicemente
l'md5 di pizza e' ugule a quello che c'e nel file ?
se e' si hai accesso altrimenti cazzi
quello che ha "crakkato" la password ha fatto
un numeratore di password e ha calcolato l'md5e ha infilato tutti gli md5
in un db
tipo
password md5
p             45n4mtn5jk46nn5k65j78jm65kl8
pc            45n4mtn5jljljglgjklk46nn5k65j78
e quando crakka fa
esiste nel db l'hash 45n4mtn5jk46nn5k65j78jm65kl8 se si la pw e'
altrimenti fallisce in 134 secondi (deve farsi una tab di un gb di hash)
ovviamente su md5 c'e un indice


qualsiasi crittazione di un msg fisso o addirittura meglio.
emh.. non ho capito: intendi al posto dell'hash (che č irrevrsibile)
usare un algoritmo reversibile (cioč un sistema di cifratura non un
hash) ?
Beh, non sarebbe utile , dovresti avere la chiave per decifrare le
pass salvate ... salvata nel sistema :) e quindi tutto a monte.
Oppure forse intendi il funzionamento come quello delle vecchie pass
DES dei file passwd su unix:
Inserendo la chiave 'pippo' il sistema creava un hash cifrando la
stringa 'pippo' con la chiave 'pippo', ottenendo come risultato
comunque un hash.. 

 comunque un hash.. 
Anche questo č un metodo.
Comunque mi pare di aver capito che il sistema per l'hash adottato da 
win č invertibile in pochi secondi qualsiasi (o quasi) sia la parola 
chiave.
Facendo due conti di tutte le possibili pwd con 8 caratteri compresi tra 
le lettere e i numeri si hanno 35^8 cioč 10^12*8 byte che sono un po' di 
piů del gigabyte (10^9) di ram utilizzata dal ricercatore. Quindi ha 
utilizzato una tecnica sofisticata come tra l'altro si legge 
nell'articolo e non una di forza bruta.


messaggio e del msg crittografato non permette di risalire alla pwd.
si, ma come controllare che la pass che inserisco è corretta e
accedere dunque alla macchina?
Se inserisco 'pippo',  devo cifrarla con la la chiave giusta,
altrimenti login mi dirà sempre che è sbagliata. 
Ma per usare la chiave giusta devo averla salvata *per forza* sul
sistema, e quindi se uno ha accesso al sistema può leggersi messaggio
cifrato e chiave. Simmetrica o asimettrica non cambia , a parte per la
velocità.

 velocità.
Non capisco la tua osservazione, oppure non ho capito bene la funzione 
dell'hash.


dell'hash.
no ti preoccupare ho sempre difficoltà a spiegarmi :)
Il punto è: uso un hash perchè so che se un utente dovesse avere
accesso alle password cifrate (insomma, all'hash) potrebbe leggersele,
e con un hash è improbabile che riesca a capire da quale stringa viene
fuori.
Non posso usare un algoritmo di cifratura simmetrico come dicevi tu,
altrimenti dovrei salvare la chiave da qualche parte[1], e l'utente
malizioso potrebbe trovare il modo di avere accesso sia alla chiave
che alla password cifrata, e quindi risalire alla password in chiaro.
O forse non ho capito io quello che dicevi qualche messaggio fa ?
[1] il login sarebbe:
- inserisco la mia pass
- cifro la mia pass con la chiave di sistema
- confronto con quella salvata.
la chiave di sistema.. beh, deve essere nel sistema :)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
gabriele renzi wrote:
| no ti preoccupare ho sempre difficoltà a spiegarmi :)
Allora provo anch'io a essere più chiaro.
| [1] il login sarebbe:
| - inserisco la mia pass
| - cifro la mia pass con la chiave di sistema
| - confronto con quella salvata.
| la chiave di sistema.. beh, deve essere nel sistema :)
Forse anche come dici tu non c'è problema nel senso che la chiave di
sistema può esser fissa e nota a priori come ad esempio 123456789.
Comunque io dicevo che il msg sia noto e fisso, però per essere chiari
le capacità di resistenza della crittografia credo proprio possa essere
sfruttata per costruire un hash. Sul come fare basta usare la fantasia.
- --
Bye,     | Stolto e' colui che invece di guardare(gnuKEY ID 0xD5D28BA9)
Sandro.  | la luna guarda il dito che la indica. (Togli/Cut SpamNo)
- ---------*
[This message is released under the GNU/GPL license 
http://www.gnu.org
]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (Darwin)
Comment: Using GnuPG with Mozilla - 
http://enigmail.mozdev.org
iD8DBQE/JC8gyFMdFdXSi6kRArkwAKD16U30h8zc4G2ivGrZV5i9Z7ofSACg2qmz
g7YxPPI5FUZnWmfiOSI3E8w=
=VeBC
-----END PGP SIGNATURE-----

 sistema può esser fissa e nota a priori come ad esempio 123456789.
Se la chiave fosse nota a priori, chiunque intercettasse la pass
cifrata, potrebbe facilmente decifrarla, ottenendo la pass in chiaro.
In questo modo, avrebbe accesso alle password, semplicemente
intercettando le autenticazioni... tanto vale scambiarsi le pass in
chiaro.
Se, invece, si trasmettesse l'hash di "pass+salt", seguito dal salt
stesso (casuale e diverso ad ogni sessione), non sarebbe possibile
creare un db degli hash (mi sembra se ne sia già parlato qui).
Quindi, verrebbe trasmesso  hash(pass+salt)+salt
Es. per la pass "pippo", il salt "sale" e l'hash MD5, trasmetterei
"AA4623E912CAD84CC4E04C7D1EFC6C86sale"
In questo modo, chi debba verificarne l'autenticità, prenderebbe ciò che
sta dopo l'hash (a lunghezza fissa) e lo accoderebbe alla pass che ha
nel suo db. Ricalcolandone l'hash, verificherebbe la validità della
pass.
Ogni volta, pur essendo sempre la stessa pass ("pippo"), verrebbe
trasmessa un'autenticazione differente, ma sempre verificata.
Es.
29F458D2DE676D05F680CB6F7EE7DB70uno
4BA679511CFBC44F1E7ECB8E7739F0A2due
31BFD67D5CFC7CC5381BBFB4C520D4CAtre
...
L'inconveniente (non da poco) è legato al fatto che le pass, sul sistema
che effettua l'autenticazione, debbano essere memorizzate, se non in
chiaro, in modo "reversibile"... questo crea problemi di sicurezza, nel
caso in cui un attaccante prenda il controllo sul sistema che effettua
l'autenticazione (o entri in possesso del db delle pass).
Ciao,
un TJL73 che ha sonno e ha zero voglia di pensare allo storage...
-- 
"Mentre sali le scale, sii gentile con chi incontri:
 potresti incontrarlo nuovamente mentre le stai scendendo."
                                                     -- Proverbio cinese

 
Grazie molte anche se molte cose non le conosco mi hai dato delle idee 
su come funziona l'autenticazione.
-- 
Bye,     | Stolto e' colui che invece di guardare(gnuKEY ID 0xD5D28BA9)
Sandro.  | la luna guarda il dito che la indica. (Togli/Cut SpamNo)


 su come funziona l'autenticazione.
Oopsss... non č *come funziona*... ma, come vedrei io,
un'implementazione...
Poi, se realmente funzioni cosě, "nin zň"...
Ciao,
un TJL73 che non sa, ma, se c'ha preso, č solo per culo!...
-- 
"Vivere con semplicita` e pensare con grandezza."
                                                   -- William Wordsworth

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Sandro wrote:
| Facendo due conti di tutte le possibili pwd con 8 caratteri compresi tra
| le lettere e i numeri si hanno 35^8 cioč 10^12*8 byte che sono un po' di
| piů del gigabyte (10^9) di ram utilizzata dal ricercatore. Quindi ha
| utilizzato una tecnica sofisticata come tra l'altro si legge
| nell'articolo e non una di forza bruta.
Per un attacco a "forza bruta" su una password a 8 caratteri (ma chi ha
detto, poi, che windows usa solo 8 caratteri?) serve, come memoria, 8
caratteri.
Altrimenti sarebbe come dire che questo ciclo occupa 1Gb di RAM e non i
4 byte di un long...
for(long i=0; i<1000000000; i++)
~  ;
- --
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
http://www.megatokyo.it
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (Cygwin)
Comment: Using GnuPG with Mozilla - 
http://enigmail.mozdev.org
iEYEARECAAYFAj9JdGcACgkQaJiCLMjyUvubhwCgksY5912H2OUV89ujaQrtz5AE
mL0AniWUEMnalmdHt+NgvXr/7Xh0xbsL
=hH1E
-----END PGP SIGNATURE-----

 caratteri.
Certamente ma quello che dici te richiede di provare un numero di 
combinazioni enormi, l'MD5 da in uscita un numero di byte elevato e 
provare tutte le combinazioni occupa certamente poca memoria ma si 
finisce quando finirā il mondo. Io parlavo di una forza bruta con un 
minimo d'intelligenza e cioč provare l'uscita dell'MD5 con un ingresso 
compreso nei 35 caratteri di lettere pių numeri.
