Ditemi un po cosa ne pensate:

Autentificatore HTTPS per virtual hosts su HTTP

Questo documento descrive un sistema per effettuare login sicuri (https) su virtualhosts completamente differenti e con database differenti.
I vantaggi stanno nel non dover creare un servizio https per ogni virtual host che deve avere un login sicuro.

Funzionamento del sistema
1.Quando viene richiesto un login, il virtual host HTTP rimanda l'utente al sito HTTPS, inviando come parametro GET anche l'url del sito su cui si vuole identificare (oppure un identificativo univoco del sito)
2.Il sito HTTPS creerà un form di login
3.il sito HTTPS verificherà la validità del login su un database (sarà necessario che il sito HTTPS possa accedere ad un database contenente le informazioni sui database legati ai vari virtual hosts da autentificare)
4.se il login non va a buon fine non succede nulla (ERRORE)
5.se il login va a buon fine il sito HTTPS manda un messaggio al virtual host (anche tramite semplice richiesta GET) con il quale conferma la validità dell'utente.
Come si può notare il punto 5 è quello che contiene la vulnerabilità di questo processo, infatti un utente malintenzionato potrebbe tentare di indovinare tale protocollo inviando lui stesso delle richieste GET “fasulle”.

Protezione del sistema
La soluzione che propongo è quella di condividere dare un certificato al virtual host http, il virtual host avrà la chiave pubblica, il sito HTTPS la chiave privata.
Il messaggio di validità del login sarà una cosa del tipo:

....?sessid=432423&id_user=432423&digest=324234523 534
dove digest è la stringa sessid+id_user firmata con la chiave privata.
Il virtual host non dovrà fare altro che decriptare la stringa digest con la chiave pubblica, a questo punto sarà sicuro che quel messaggio proviene dal sito HTTPS.