Sicurezza di PhpBB
Inviato: lunedì 16 luglio 2012, 9:00
Salve, era da un po' che non tornavo sul forum, ed ho notato la migrazione da SMF 1 a PhpBB.
Vorrei far notare un problema: come funziona il login.
Non vi sembra un problema l'inviare la password dell'utente in chiaro? Mettiamo che io stia usando una wifi pubblica... mi andrebbe bene che un utente ostile possa vedere quanto faccio sul forum, ma mi piacerebbe decisamente di meno che esso possa scoprire la mia password, che potrei usare anche su altri servizi.
Il team di PhpBB afferma che, anche se si inviasse la password passandola prima da una funzione di hash, essa non sarebbe più sicura:
Penso si riferiscano al fatto che, intercettato l'hash, sia possibile riutilizzarlo come se fosse una password. Ora, se c'è un campo in cui non vado bene esso è quello della matematica e della crittografia, ma penso stia scritto in qualsiasi libro sull'argomento che, per difendersi da un replay attack, basti inserire un timestamp o, visto che l'orario difficilmente sarà sincronizzato, un id di sessione.
esempio:
il server del forum mi assegna un id di sessione, mettiamo 12345678910 (cosa che già avviene), più il salt assegnatoci alla registrazione. Quando carico la pagina di login, lascia tali valori nella pagina.
A questo punto, del codice javascript, quando premo "login" (onSubmit), calcola hash(hash(password, salt), 1234567890), il che ha la doppia funzione di prevenire un replay attack e di fungere da salt.
La parte lato server calcola se l'hash salvato come password corrisponde a quanto ricevuto dal client, ovvero se hash(hashSalvatoNelDatabase, 1234567890) è uguale a hash(hash(password, salt), 1234567890), come calcolato dal client
Si potrebbe trovare una soluzione?
So che i certificati costano, e lasciano comunque nelle mani di terzi. Si potrebbe segnalare la cosa come problema di sicurezza agli sviluppatori, o modificare questo forum, ma immagino vi costerebbe fatica... il mio è solo un suggerimento volto a migliorare la sicurezza del forum, non voglio lamentarmi.
PS: non prendete necessariamente per buono quanto ho scritto, sono sveglio da ieri alle 6 di mattina...
Vorrei far notare un problema: come funziona il login.
Codice: Seleziona tutto
POST /ucp.php?mode=login HTTP/1.1
[ommiss]
username=kimj&password=miaPasswordInChiaro&autologin=on&redirect=.%2Fucp.php%3Fmode%3Dlogin&sid=mioSessionID&redirect=index.php&login=Accedi
Il team di PhpBB afferma che, anche se si inviasse la password passandola prima da una funzione di hash, essa non sarebbe più sicura:
e suggeriscono di usare https.A hashed password is no more secure than a plaintext one when in-transit.
Penso si riferiscano al fatto che, intercettato l'hash, sia possibile riutilizzarlo come se fosse una password. Ora, se c'è un campo in cui non vado bene esso è quello della matematica e della crittografia, ma penso stia scritto in qualsiasi libro sull'argomento che, per difendersi da un replay attack, basti inserire un timestamp o, visto che l'orario difficilmente sarà sincronizzato, un id di sessione.
esempio:
il server del forum mi assegna un id di sessione, mettiamo 12345678910 (cosa che già avviene), più il salt assegnatoci alla registrazione. Quando carico la pagina di login, lascia tali valori nella pagina.
A questo punto, del codice javascript, quando premo "login" (onSubmit), calcola hash(hash(password, salt), 1234567890), il che ha la doppia funzione di prevenire un replay attack e di fungere da salt.
La parte lato server calcola se l'hash salvato come password corrisponde a quanto ricevuto dal client, ovvero se hash(hashSalvatoNelDatabase, 1234567890) è uguale a hash(hash(password, salt), 1234567890), come calcolato dal client
Si potrebbe trovare una soluzione?
So che i certificati costano, e lasciano comunque nelle mani di terzi. Si potrebbe segnalare la cosa come problema di sicurezza agli sviluppatori, o modificare questo forum, ma immagino vi costerebbe fatica... il mio è solo un suggerimento volto a migliorare la sicurezza del forum, non voglio lamentarmi.
PS: non prendete necessariamente per buono quanto ho scritto, sono sveglio da ieri alle 6 di mattina...