View Full Version : [PHP] Protezione login
Salve,
Ho sentito che digitando username e password (anche se nel database é criptata), nel momento in cui invia da client a server i dati qualcuno potrebbe "intercettarla".
Esiste una criptazione a livello di client? Se si, é protetta?
Altri metodi di protezione esistono?
Grazie mille. :)
tomminno
11-06-2006, 12:27
Salve,
Ho sentito che digitando username e password (anche se nel database é criptata), nel momento in cui invia da client a server i dati qualcuno potrebbe "intercettarla".
Esiste una criptazione a livello di client? Se si, é protetta?
Altri metodi di protezione esistono?
Grazie mille. :)
Anche io mi sono posto il problema.
L'unica soluzione che conosca è utilizzare una connessione https.
Altrimenti anche se cripti la password lato client con MD5 o SHA1, chi è in ascolto è in grado comunque di legge la password criptata e a quel punto non fa nessuna differenza visto che lato server identifichi in base al valore criptato.
Ma con https non é che diventa poi troppo lento il tutto?
Girovagando ho sentito dell' "estensione mysqli"
Qui c'é la guida (http://www.phpnews.it/articoli/php/estensione-mysqli-iii/1/)
ma mi pare piuttosto complicato...no?
Anche perché vorrei fare una cosa il più leggero possibile e veloce
tomminno
11-06-2006, 13:11
Ma con https non é che diventa poi troppo lento il tutto?
Girovagando ho sentito dell' "estensione mysqli"
Qui c'é la guida (http://www.phpnews.it/articoli/php/estensione-mysqli-iii/1/)
ma mi pare piuttosto complicato...no?
Anche perché vorrei fare una cosa il più leggero possibile e veloce
Scusa, ma cosa c'entra la classe Mysqli e il binding dei parametri che questa consente con l'invio di password da client?
Se il client invia la password "prova" in chiaro se qualcuno è in ascolto sulla trasmissione si vedrà passare "prova". Lato server ne otterrai l' hash prima di passarla al binding dei parametri.
Se chi era in ascolto ti invia "prova" te effettui esattamente le stesse operazioni perciò autentichi lo sconosciuto.
Stesso discorso se sposti l'operazione di hash lato client.
Una possibile soluzione è usare l'ID di sessione per criptare i dati sensibili lato client, lato server decodifichi con l'ID di sessione e poi applichi l'hash prima del binding, ma se le comunicazioni sono in chiaro l'intruso è a conoscenza anche dell'ID di sessione (e soprattutto ha visto passare anche il javascript perciò sa anche che cifri la password con l'ID di sessione).
Quindi non centra niente? :asd:
Allora l'unica possibilità sarebbe https?
tomminno
11-06-2006, 13:45
Quindi non centra niente? :asd:
Allora l'unica possibilità sarebbe https?
O ti implementi un metodo a chiave asimmetrica in modo che il client cifra la password con la chiave pubblica del tuo server a quel punto sei a posto :D
Qualunque alternativa ai metodi consolidati di scambio sicuro di dati puoi stare certo che ha dei difetti.
La sicurezza informatica è una brutta rogna, l'unica soluzione al momento utilizzata è quella di impiegare metodi la cui complessità computazionale è intrattabile, per cui l'ascoltatore o è l'NSA oppure ci può anche rinunciare in partenza.
Resto al "vecchio" metodo e sto un po' meno protetto. Dopotutto non é una banca :D
PhantomX
11-06-2006, 15:03
ovvio che metodi di cifratura affidabili al 100% non me esistono, ma comunque esitono alcuni protocolli molto affidabili.
Se hai necessità di un utenticazione affidabile ma che che sarà onerosa nei tempi di esecuzione e realizzazione potresti provare ad utilizzare il protocollo RSA con chiave pubblica e chiave segreta.
Oppure IMHO più semplicemente potresti implementare un algoritmo per lo scambio di una chiave condivisa tra cliente e server come l algoritmo diffie-hellman.
questi metodi uniti anche all MD5, andranno anche oltre alle tue esigenze.
spero di esserti stato utile. bye
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.