pjfry ha scritto:se lasci in chiaro solo l'hash la password è rintracciabile ma con mooooolta + fatica, no?
purtroppo no.
per quanto complesso possa essere il procedimento di crittazione, se la pagina e' solo in html, la pag stessa conterra' la soluzione.
Mi spiego con un esempio
Metti che
- Codice: Seleziona tutto
decrittazione(valore);
sia una funzione che, dato un hash, ne restituisca il valore in chiaro dopo un numero n di permutazioni.
Il fatto che ci sia una funzione di decrittazione e non di crittazione e' determinato dalla nostra volonta' di far apparire sulla pagina web l'hash, e non la stringa in chiaro.
Citero', per rendere la comprensione piu' chiara, uno script simile (ma non troppo, onde evitare aiuti illegali
) ad un livello dell'hackme challange.
In buona sostanza si tratta dell'algoritmo di Cesare
listato 1- Codice: Seleziona tutto
<html>
<script language="Javascript">
var hash = "[%&cTffjbeW"
chiaro='';
for(i=0;i<hash.length;i++) {
n=hash.charCodeAt(i);
if (n>=8364) {
n = 128;
}
chiaro += String.fromCharCode( n + 13 );
}
</script>
</html>
Per poter far funzionare il mio controllo, dovro' creare un confronto del tipo
listato 2- Codice: Seleziona tutto
var input = window.prompt('inserisci password','');
if (input == chiaro)
{location.href="ok.htm";}
else
{location.href="bad.htm";}
Fin qui dovrebbe essere tutto chiaro (spero
)
Riepilogando: la pass vera e propria compare solo come hash e deve essere confrontata con quella inserita dall'utente.
Mediante il
"listato 2" riesco a rendere in chiaro la pass corretta (presente sotto forma di hash) per poterla confrontare, tutto cio' senza che l'utente che sta visualizzando la pagina possa accorgersi di niente.
Ma mettiamo il caso che l'utente sia smaliziato e
leggermente abile...
cosa fara'?
salvera' la pagina sul suo hd e inserira' un comando del tipo
- Codice: Seleziona tutto
document.write(chiaro);
e, come per magia, otterra' la password in chiaro usata per il confronto (che nella pagina originale, naturalmente, non compariva!)
il codice, come al solito, l'ho scritto al volo, ma dovrebbe funzionare.
Se qualcuno ne ha voglia, lo testi e mi faccia sapere.
IMPORTANTE!!!
@ Damianomx
Paroloni a parte, non ti confondere le idee.
Questa e' stato solo una disquisizione teorica con Pj sull'affidabilita' di alcuni tipi di crittazione che sembrano sicuri ma non lo sono.
Magari tra qualche tempo, quando ti sarai impratichito con l'html e il js, torna su queste pagine cosi' potrai capire quello di cui stavamo parlando.
Resta il fatto che, per l'uso che ne devi fare, gli esempi postati da Dylan e me dovrebbero andare piu' che bene