Ho recentemente installato Chap Secure Login, un plugin molto utile per WordPress che risolve un problema da non sottovalutare: l’autenticazione su un canale non cifrato quale HTTP (è buona norma usare HTTPS quando si effettua uno scambio di informazioni riservate, quali password, numeri di carta di credito, etc. per evitare che eventuali eavesdropper possano carpire le informazioni scambiate ed utilizzarle a vostro svantaggio).
Essendo il problema molto interessante, e risolto dal plugin in modo brillante, ho deciso di interessarmi al suo funzionamento. Partiamo dal presupposto: dovete fare un login tramite HTTP e non volete che la vostra password passi in chiaro. Come procedere?
Il plugin modifica il processo di login, trasmettendo in chiaro (tra server e client) solo l’username, mentre per la password adotta un meccanismo CHAP per trasmettere in modo sicuro la password (in particolare: il processo di login andrà in errore la prima volta, mentre la seconda funzionerà correttamente). In particolare, la login si traduce prima in uno scambio di chiave di sessione al primo login, dopodiché il client userà la chiave segreta per cifrare la password e trasmettere il risultato al server. A questo punto il server confronta il valore ottenuto con la password dell’utente, e procederà all’autenticazione se la password è corretta.