Newsgroup: it.comp.www.php
Titolo: perchè è poco professionale permettere il recupero della password?

Ho notato che molto siti - compresi gli e-shopping (ad es. 
www.bow.it
) -
consentono di recuperare la password.
Ricordandomi che tempo fà in questo NG fu detto che è poco professionale
consentire  una operazione del genere: mi potete spiegare il perchè di 
questa affermazione?

 spiegare il perchh di questa affermazione?
Sei sicuro che permettano di recuperare le password e non che ne
generino una nuova ad ogni richiesta?
Si puo' ritenere poco professionale perche' significherebbe salvare le
password in modo che siano accessibili e leggibili, mentre e' buon uso
salvarne solo un hash.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

Nick ha scritto:

Perchè le password sono criptate ed è impossibile risalire alla stringa
originale che l'ha generata (vedi md5 o password mysql). Il fatto che le
recuperi, significa che: o le hai registrate in chiaro, oppure esiste un
modo (una procedura, un algoritmo) che permette di decriptare la
password (e questa non è una bella cosa).
Detto tutto ciò, c'è comunque da dire che ormai per algoritmi quali md5
e similari, su internet si trovano le rainbow table dalle quali, data la
stringa criptata, è possibile risalire alla stringa originale (dato che
su quei server c'è un database chiave md5 => valore ascii). Quindi
simili procedure non servono a nulla IMO.
Ciao
Gianni

 salvarne solo un hash.
Dipende cosa intendi con hash, diciamo che per gli algoritmi più
conosciuti esistono le rispettive rainbow table (LM hash, MD5, SHA1...).
Quindi usare certi algoritmi può essere del tutto inutile perchè
comunque in pochi secondi si risale alla chiave originale.
http://passcracking.ru/
Esempio 1:
Hashes for password: "giannigiusti", length=12
type	hash
md5_128bit	c08b6608c2fdf765c2685d59feb33e3f
md5_64bit	c08b6608c2fdf765
md5(md5_lcase)	1414981cba02d8e8afd442e996c266f5
md5(md5_Ucase)	17b0f40e9773810edfa670eda756548f
sha1_160bit	b8cb42d234c11a612154e56f18a4def217ce32bf
MySQL_64bit	047646d17b5c3868
MySQL_160bit	*53bb51e7552646b4b3c96dcd9e32ddb15d8ae726
Esempio 2 (32 caratteri!!):
Thanks for NEW pass! ;) Hashes for password:
"Anche_Frasi_Relativamente_Lunghe", length=32
type	hash
md5_128bit	c7c1d108d988af3c397106afa1dc7689
md5_64bit	c7c1d108d988af3c
md5(md5_lcase)	dc4de98f056f0f0bafc970d48203ae50
md5(md5_Ucase)	2eb651b99c53c0382090420f74f3a424
sha1_160bit	509f09c4ff2d7eca010a7a94f288097bc1271b71
MySQL_64bit	64751ca752caa02d
MySQL_160bit	*f498b51593de1d0070729d40bcd77bfa898de49a
Ciao
Gianni

 generino una nuova ad ogni richiesta?
si hai ragione, controllando bene ne genera una nuova. 

 
http://passcracking.ru/
Basta salvare nel DB un valore come questo:
define('HASH', '4b176a886b50e8d6711f3d128af41d9f');
$pwd = md5('password' . HASH);
Difficilmente siti come quello indicati sono in grado di risalire ad
una password valida e comunque quando l'utente la inserira' nel form
comunque non funzionera' perche' prima di confrontarla viene unita
all'hash definito.
-- 
I am what I am, I do what I can


 all'hash definito.
Ovviamente una soluzione è quella da te proposta, specificando
ovviamente che quanto più è lunga la stringa da aggiungere, quanto più
sarà difficile risalire alla password (non è tanto la complessità della
stringa da unire, che comunque sicuramente aiuta, quanto la sua
lunghezza)..... e che cavolo, anche le rainbow table hanno i suoi limiti :-)
Ciao e grazie
Gianni

 Gianni
stringhe lunghe generano hash di lunghezza x..
stringhe non lunghe generano hash di lunghezza x..
-- 
www.iuz-lab.info

 
Ok, e quindi come si può fare per proteggere l'accesso ad un pannello di 
controllo senza salvare la password? Io per ora mi salvavo le password 
in chiaro perchè non era necessario un elevato livello di sicurezza, 
anche perchè il server FTP non è protetto, e ci vuole poco a recuperare 
la password...
Però vorrei approfondire l'argomento per proteggere meglio i miei 
pannelli, sia per l'FTP che per le password criptate, avete link 
interessanti (pure in inglese)
Ciao
FF

 stringhe non lunghe generano hash di lunghezza x..
Certo, ma le rainbow table hanno hash precalcolati della combinazione di
n caratteri..... risultato: se fai md5 di una frase di 250 caratteri e
l'hash lo dai in pasto alle rainbow table, queste non saranno in grado
di restituirti la stringa di origine ;-)
Quindi la lughezza conta e come
Ciao
Gianni

 interessanti (pure in inglese)
http://www.lug-acros.org/?q=taxonomy/term/6
 (è un tutorial sulla
crittografia in generale, in particolare per email ma un buon inizio
comunque)
M.Carli (l'autore) è un vero esperto in materia (studia sicurezza). Lo
trovi sul forum del lug 
http://www.tivedotonico.com/forum/index.php
....non ti svelo il suo nick, ma se posti qualche domanda sulla
sicurezza ti risponderà sicuramente.
Ciao
Gianni

 comunque)
Ho riguardato la sua presentazione e purtroppo mancano molte
cosiderazioni sulla sicurezza degli hash di cui aveva invece parlato
durante il Linux-Day. Tuttavia, sempre su quel sito, c'è lo streammer
audio di quella giornata e del suo intervento.
Ciao
Gianni

Gianni Giusti wrote:

non sono molto d'accordo.. una rainbow table che cataloga tutti gli hash
generabili ha il potere di generare soluzioni equivalenti a quelle reali..
e questo puo' essere un problema dal quale prevenirsi..
un procedimento del genere non e' alla portata di tutti ma e' una
eventualita'..
come si dice spesso in ambiti di questo tipo.. e' solo questione di tempo..
-- 
www.iuz-lab.info

 come si dice spesso in ambiti di questo tipo.. e' solo questione di tempo..
Condivido al 100%, ma si deve considerare anche quanto tempo. E' ovvio
che col passare del tempo (IMO) sarà improponibile usare tecniche di
hash per memorizzare password (con la potenza di calcolo dei computer
del futuro, sarà un gioco da ragazzi risalire alla stringa originale).
Ma magari tra qualche anno ci saranno anche tecniche nuove per raggirare
il problema, magari non esisteranno proprio più le password.
Ciao
Gianni