MD5

hee136
Creo una form web.
Applico ad ogni campo di questa form l'MD5 via JS.
I campi dal client al server viaggiano in chiaro?

Lo chiedo perchè nel corso di Programmazione Web l'anno scorso ci era stato accennato che l'MD5 fosse un algoritmo di cifratura. Il progetto del corso aveva tra i requisiti la sicurezza ma non ci era stato spiegato l'https. Quindi utilizzavamo il metodo di cui sopra pensando che in tale modo i campi non viaggiassero in chiaro.
Però quest'anno nel corso di Sicurezza c'è stato spiegato che l'MD5 è in realtà una funzione di hash crittografico (ovvero non risolve il problema della confidenzialità ma quello dell'integrità del messaggio).

Grazie

Risposte
Rggb1
"hee136":
I campi dal client al server viaggiano in chiaro?

C'è un po' di confusione, infatti i "campi" sono valori di input; inoltre "viaggiano" sempre "in chiaro"... credo tu intenda dire che (esemplifico):
- ho una web form con un campo chiamato 'A', tipo edit-text;
- il browser non invia al server il dato che l'utente mette in 'A' (la funzione JavaScript interviene prima);
- prima inviare la richiesta, JS crea il message digest del valore di 'A' con md5, e lo sostituisce al valore originario.

Ho capito bene? Se sì, ho una domanda: che te ne fai? Se $A'=md5(A)$ e l'unico dato che arriva al server è $A'$, è (quasi) inutilizzabile. Poniamo nel campo vada inserito un nome, diciamo 'Pippo'; cosa se ne fa il server del valore md5 di 'Pippo'?

"hee136":
Lo chiedo perchè nel corso di Programmazione Web l'anno scorso ci era stato accennato che l'MD5 fosse un algoritmo di cifratura.

"Ni"; vedi anche
http://en.wikipedia.org/wiki/MD5

"hee136":
Quindi utilizzavamo il metodo di cui sopra pensando che in tale modo i campi non viaggiassero in chiaro.

Vedi sopra: non è così. Tu - credo - intendi una sessione cifrata. Ma ancora non ho capito come facevi a cifrare i valori che un utente poteva inserire in un edit-text, inviando al server solo il valore cifrato e recuperando il valore originale; invertire md5 non è impossibile, ma è oltremodo scomodo; inoltre, potresti avere delle spiacevoli conseguenze dovute alle - pur poche - collisioni.

hee136
"Rggb":
[quote="hee136"]I campi dal client al server viaggiano in chiaro?

C'è un po' di confusione, infatti i "campi" sono valori di input; inoltre "viaggiano" sempre "in chiaro"... credo tu intenda dire che (esemplifico):
- ho una web form con un campo chiamato 'A', tipo edit-text;
- il browser non invia al server il dato che l'utente mette in 'A' (la funzione JavaScript interviene prima);
- prima inviare la richiesta, JS crea il message digest del valore di 'A' con md5, e lo sostituisce al valore originario.

Ho capito bene? Se sì, ho una domanda: che te ne fai? Se $A'=md5(A)$ e l'unico dato che arriva al server è $A'$, è (quasi) inutilizzabile. Poniamo nel campo vada inserito un nome, diciamo 'Pippo'; cosa se ne fa il server del valore md5 di 'Pippo'?

"hee136":
Lo chiedo perchè nel corso di Programmazione Web l'anno scorso ci era stato accennato che l'MD5 fosse un algoritmo di cifratura.

"Ni"; vedi anche
http://en.wikipedia.org/wiki/MD5

"hee136":
Quindi utilizzavamo il metodo di cui sopra pensando che in tale modo i campi non viaggiassero in chiaro.

Vedi sopra: non è così. Tu - credo - intendi una sessione cifrata. Ma ancora non ho capito come facevi a cifrare i valori che un utente poteva inserire in un edit-text, inviando al server solo il valore cifrato e recuperando il valore originale; invertire md5 non è impossibile, ma è oltremodo scomodo; inoltre, potresti avere delle spiacevoli conseguenze dovute alle - pur poche - collisioni.[/quote]

Da come ci era stato spiegato l'anno scorso avevo capito che l'MD5 fosse un algoritmo di cifratura e quindi si potesse invertire a patto di conoscere la chiave.
Il fatto che non mi sia posto la domanda 'che me ne faccio' è derivante da questa confusione.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.