Il phishing è una delle insidie che si sta sempre più diffondendo su Internet e che mina la fiducia tra gli utenti e i fornitori di servizi online. Come è noto si tratta di una tecnica fraudolenta che tende a sottrarre dati personali ed in particolare credenziali di accesso a servizi online come home banking, aste online e simili.
La spiegazione delle tecniche utilizzate è complessa per un utente medio ed altrettanto complesse o non del tutto efficaci appaiono, in genere, le soluzioni adottate dai fornitori di servizi online per contrastare questo fenomeno.
In questo articolo cercherò di illustrare una semplice strategia per combattere il phishing che può essere adottata dai siti Web che offrono servizi online. Non intendo proporre la soluzione definitiva, ma una soluzione più orientata all'essere umano che all'utilizzo di tecnologie avanzate.
La strategia classica
La strategia classica adottata da parte dei fornitori di servizi online prevede l'utilizzo del protocollo HTTPS e di un certificato digitale.
Da un punto di vista tecnico la soluzione sarebbe efficace: i dati vengono crittografati sfruttando il protocollo SSL e l'autenticità del sito è garantita dal certificato rilasciato da un'autorità di certificazione riconosciuta a livello internazionale.
Il classico suggerimento che viene dato agli utenti non tecnici è di assicurarsi di digitare correttamente l'indirizzo del sito Web, compresa l'indicazione del protocollo HTTPS (ad esempio https://www.nomesito.it) e di accertarsi che compaia la piccola icona del lucchetto nella finestra del proprio browser. Il suggerimento è senza dubbio valido, ma alla luce dell'utilizzo di tecniche sofisticate adottate da certi phisher, come ad esempio il pharming, questo suggerimento può risultare inutile.
L'utente digita correttamente il nome del sito (compreso https), ma in realtà viene dirottato su un sito clone, con tanto di (auto)certificato che attiva la visualizzazione del lucchetto sulla finestra del browser.
A questo punto l'utente esperto dovrebbe visualizzare il contenuto del certificato ed accorgersi che in realtà questo non è stato emesso da un'autorità di certificazione riconosciuta (come ad esempio Verisign, Thawte, GlobalTrust, PosteCom, ecc.) ma molto probabilmente è stato emesso dal phisher stesso. Naturalmente stiamo parlando di un utente esperto e pignolo. L'utente medio a malapena si accorge del lucchetto.
Dialogare per combattere il phishing
Ma è possibile mettere su una strategia anti-phishing senza richiedere avanzate competenze tecniche all'utente? La soluzione proposta da questo articolo si basa su uno scambio di informazioni tra l'utente ed il sistema e richiede una partecipazione attiva per il controllo delle informazioni da parte dell'utente.
Il principio di base è abbastanza semplice: prima di usufruire dei servizi online, utente e sistema si scambiano alcune informazioni che consentano a ciascuna parte di verificare l'autenticità dell'altra. In altre parole, si instaura un breve dialogo tra utente e sistema prima di accedere effettivamente ai servizi online.
Immaginiamo il seguente dialogo:
- Utente: Sono l'utente Pippo
- Sistema: Ciao Pippo, io sono il sistema Sys e te lo dimostro fornendoti un'informazione su di te che solo io possiedo
- Utente: L'informazione che mi hai fornito è corretta. Ora ti fornisco una prova della mia identità
- Sistema: La verifica della tua identità è andata a buon fine. Puoi accedere ai servizi online.
Questo breve e fantascientifico dialogo tra l'utente ed il sistema dovrebbe consentire il reciproco riconoscimento dell'identità senza richiedere particolari competenze tecniche.
Il dialogo in pratica
Nella pratica, l'implementazione del dialogo appena descritto consiste nello spezzare in fasi successive la richiesta delle credenziali di accesso da parte del sistema. Invece di richiedere nome utente e password in un'unica schermata, viene costruito un dialogo a passi successivi tra utente e sistema:
- L'utente fornisce il proprio username o codice identificativo.
- Il sistema risponde fornendo un'informazione sull'utente che solo il sistema può conoscere; ad esempio il nome per esteso, la data dell'ultimo accesso al sistema, il codice fiscale, la data di nascita, la città di nascita, ecc. Meglio se sono presenti più dati o se i dati presentati possono differire ad ogni accesso.
- L'utente verifica i dati forniti dal sistema, ne riconosce l'autenticità e fornisce la propria password come prova della propria identità
- Il sistema riconosce l'identità dell'utente e consente l'accesso ai servizi online
Conclusioni
Rispetto all'approccio classico, che è sempre opportuno affiancare per altri aspetti legati alla sicurezza, questo approccio dialogante costringe l'utente a verificare l'autenticità del sito senza richiede particolari competenze tecniche.
Per poter ingannare l'utente, un phisher dovrà essere in grado di riprodurre informazioni riservate che corrispondano a quelle effettivamente presenti sul sistema online. L'unico modo per ottenere queste informazioni consiste nel forzare il sistema originale o simulare un accesso conoscendo il solo nome utente. È pertanto di fondamentale importanza, perché questo approccio funzioni, che anche il nome utente sia considerato un'informazione riservata al pari della password.