Utenti, phishing e siti sicuri
Ormai
più di dieci anni fa, Netscape iniziava lo sviluppo del
protocollo SSL. Ovviamente il protocollo prevedeva la cifratura delle
connessioni, ma questo lo facevano già molti altri. La
novità di SSL era che si preoccupava principalmente
dell'autenticazione del server, tanto che il client poteva non essere
autenticato; inoltre, l'autenticazione faceva uso di certificati. Con
l'uso dei certificati, sarebbe stato molto più difficile
impersonare un generico sito web; senza questo meccanismo, la
manipolazione della connessione, o una manipolazione del DNS, avrebbero
permesso a un malintenzionato di presentare un proprio sito copia di
quello originale, con lo stesso indirizzo di quello originale; l'uso di
certificati avrebbe impedito di riconoscere come autentico un tale sito
pirata, dato che questo non sarebbe stato in grado di completare la
fase di autenticazione con la chiave privata associata al certificato.
Il protocollo veniva infatti sviluppato anche per favorire il commercio
elettronico, il che richiedeva che l'acquirente interagisse con siti
web di venditori con cui non aveva mai avuto contatti. Allora si sapeva
già che la "sicurezza" delle transazioni e la fiducia del
compratore nel meccanismo sarebbero state un fattore decisivo nella
diffusione del commercio elettronico.
Negli anni successivi, SSL è stato presentato come web sicuro,
connessione sicura, e con mille altri aggettivi, evidenziando
però principalmente la cifratura della connessione, rispetto al
riconoscimento e all'autenticazione del sito. Ad esempio, ho fatto un
giro su alcuni siti web di banche, sia grandi che piccole. La maggior
parte, al momento in cui l'utente chiede di accedere ai servizi online,
passano ad una pagina https. Alcune utilizzano dei frame https inseriti
in una pagina http per l'autenticazione, come fanno anche molti altri
siti di importanti aziende e istituzioni, passando a pagine https solo
ad autenticazione riuscita. Pochissime (ne ho vista una) usano un
certificato anche per l'utente. Almeno una usa frame https in pagine
http anche dopo l'autenticazione, e quindi l'utente non ha mai la
tranquillità del "lucchetto chiuso".
Quest'ultimo caso, insieme
ad altre indicazioni, suggerisce che la gestione della sicurezza,
anziché migliorare, stia peggiorando. Non tutti questi siti
forniscono un link "sicurezza" in cui spiegano i meccanismi di
sicurezza, ma quelli che lo fanno generalmente mettono l'accento
principalmente sull'alchimia della crittografia a 128 bit. Solo alcuni
parlano di "crittografia certificata", ad es. da Verisign, mentre in
nessuno ho trovato indicazioni chiare sul fatto che
l'autenticità del sito è certificata. Mentre anni fa era
normale che fosse messo in risalto il "lucchetto chiuso", ormai
è una cosa che si trova evidenziata in pochi siti.
Perché? Sui motivi dei limiti nell'uso di https ho sentito le
motivazioni più disparate, e devo dire che nessuna mi ha
convinto. Sarei curioso di sapere se chi ha seguito le indicazioni del
commerciale o del tecnico che ha suggerito di non avere una pagina
interamente https per il login, ha verificato oggettivamente un
effettivo vantaggio sui concorrenti, o una reale riduzione dei costi
complessivi.
A volte, credo che non ci sia stata una vera motivazione: il sito
è stato semplicemente tenuto "più leggero" per il server,
senza valutare realmente la differenza in termini di sicurezza fra una
pagina https ed un frame https. Forse è quindi meglio ripartire
dall'inizio.
Un requisito per molte forme di commercio elettronico è
l'autenticazione delle parti. Non è un requisito del commercio
elettronico in generale, dato che sarebbe possibile l'acquisto anonimo
con mezzi di pagamento anonimi, ma nella pratica attualmente le due
parti si devono riconoscere. Questo vuole dire che c'è una fase
iniziale in cui l'utente si registra sul sito, o direttamente presso
l'azienda (ad esempio una banca), e gli vengono rilasciate delle
credenziali. Tuttavia, anche il sito dell'azienda si deve in qualche
modo autenticare al cliente; se così non fosse, il cliente
potrebbe fornire a terzi le proprie credenziali o altri dati riservati.
L'uso di certificati anche per il cliente limita la possibilità
di sottrargli le credenziali, ma aggiunge una complessità di
gestione che sarebbe accettabile in pochi contesti (ad es. banche) e
che, anche in questi contesti, pochi hanno voluto affrontare. Per autenticarsi al cliente,
il sito può utilizzare una connessione https, ovvero http su
SSL/TLS: il browser del cliente riconosce come autentico il certificato
fornito dal sito, la sua corrispondenza al nome di dominio riportato
nel certificato stesso, ad esempio www.amzon.com, e garantisce al
cliente, cifrando la connessione, che effettivamente è in
contatto con quel sito; per manifestare la propria soddisfazione, il
browser mostra un'icona di lucchetto chiuso. La tentazione tuttavia,
è di fornire al cliente con https solo le informazioni critiche
o riservate: il frame con la richiesta delle credenziali, quello con
l'estratto conto eccetera, mentre il resto della pagina è in
http. Il problema è che così il browser non mostra
più l'icona di lucchetto chiuso, dato che non ci può
rassicurare sul contenuto dell'intera pagina. Poco male, sembra dire
qualcuno: tanto le informazioni critiche sono comunque in https. E qui
casca l'asino. Se la home page contenente il frame https viene
sostituita con una contenente un frame http diretto a tutt'altro sito,
l'utente non ha nessuna informazione visibile di questa manipolazione,
e quindi vi inserisce felicemente le proprie credenziali. In quali casi
si presenta questo pericolo? La risposta è semplice:
sostanzialmente in tutti quelli in cui ha senso usare l'https
(farebbero eccezioni le situazioni in cui è possibile osservare
ma non manipolare la connessione, che per il commercio elettronico sono
poco interessanti). Quindi, non usare l'https nella pagina intera rende
sostanzialmente inutile usarlo nei frame; viceversa, riconoscere la
necessità di usarlo nei frame vuole dire riconoscere la
necessità di usarlo in tutta la pagina. Bisogna dire che almeno
in un caso ho visto, nelle informazioni sulla sicurezza, un'indicazione
che sembra voler suggerire all'utente di verificare le proprietà
dei singoli frame (ogni volta, per ogni frame?); chi ha dato
un'indicazione di questo tipo, o non ha idea di quanti utenti sanno
anche solo cosa sono i frame, o non era realmente interessato a dare
un'indicazione utile.
Finora però, tutto è andato bene; fino ad alcuni mesi fa
per essere precisi, ovvero fino a quando non è diventato
macroscopico il fenomeno soprannominato phishing, ovvero il
furto di credenziali mediante pagine falsificate. Il problema che i
progettisti di SSL avevano previsto più di dieci anni fa, si sta
manifestando adesso in tutta la sua criticità: adesso, perché
rubare le credenziali on-line è diventato finalmente
interessante. Purtroppo, SSL è solo una soluzione tecnica, e come
tale non può rimediare ai problemi di contesto.
L'obiezione ovvia è che il phishing di solito non falsifica realmente
l'URL del sito web, e quindi l'https, anche sulla pagina intera, non
risolverebbe il problema. Naturalmente è vero, ma non è
questo il punto su cui volevo portare l'attenzione. Se in questi anni
l'utente si fosse abituato a vedere il lucchetto sulla pagina in cui
inserisce le proprie credenziali, e fosse stato abituato a poche altre
semplici procedure di cui parlerò in seguito, queste truffe
sarebbero molto meno efficaci. Invece, dopo un periodo iniziale di
relativa attenzione, molti siti hanno, ingenuamente o deliberatamente,
cancellato la parola "sicurezza" dalla testa dell'utente, se non come
termine di marketing per dire "il nostro sito è sicuro". E della
sicurezza si parla con termini che l'utente medio non apprezza
(cifratura a 128 bit) e che certo non migliorano la sua capacità
di valutare la situazione. Da una parte l'utente è considerato
un essere non senziente, a cui non richiedere ragionamenti troppo
complessi, dall'altra lo si pone in situazioni in cui per evitare le
frodi gli servirebbe una cultura di sicurezza da tecnico informatico. A
titolo esemplificativo, mentre il sito di una banca che utilizzo mi
dà almeno la possibilità, se io lo richiedo, di avere la
pagina delle credenziali in https, con un'altra non è possibile
neppure questo; l'utente, anche volesse essere attento, viene forzato a
non interessarsi della sicurezza di quello che sta facendo, viene
costretto a rinunciare anche alle più semplici cautele. Devo precisare
che non si tratta della tipica "anomalia italiana"; situazioni di
questo tipo se ne vedono un po' ovunque, e in tutti i settori.
Riguardo al phishing, l'atteggiamento generale sembra essere che si
tratta del solito problema di cattivo comportamento dell'utente, che
nella sua ingenuità si fa incastrare con vari trucchetti. Ad
esempio, l'Antiphishing Working Group fornisce indicazioni (utili, peraltro) ai soli utenti, e lo stesso fa la pagina sul phishing del sito Microsoft;
o almeno, così fanno le pagine che sono riuscito a trovare con
Google. Io credo invece che il problema sia principalmente di cattiva
cultura della sicurezza arrivata all'utente proprio da quelle aziende
che dovrebbero aiutarlo a tutelare la sicurezza dei propri rapporti, e
credo che le indicazioni andrebbero innanzitutto alle aziende, in modo
da permettere all'utente di seguire poche chiare procedure.
Quali sono quindi le procedure e le indicazioni da presentare all'utente per ridurre il fenomeno?
Io posso dare solo qualche indicazione, non ho certo la pretesa di
tirare fuori dal cappello una soluzione al problema, specialmente dopo
anni di cattiva gestione. Per
prima cosa, l'utente dovrebbe essere abituato ad avere sempre il
lucchetto in fondo alle pagine in cui inserisce dei dati; la pagina in
cui mette le credenziali dovrebbe essere tutta https, comprese le
immagini, che possono essere poche; se il marketing si agita, lo si
può
sempre invitare a vedere la pagina di login di Amazon, azienda che,
nonostante
usi una pagina https separata e molto spartana, ha un certo
successo. Su questa pagina dovrebbe essere ricordato sempre all'utente,
in modo molto evidente, di controllare il lucchetto chiuso in fondo
alla pagina (un'immagine di lucchetto chiuso di un paio di centimetri
con una frecciona rossa puntata verso il basso, messa in mezzo alla
pagina, penso che renda bene l'idea). L'utente deve insomma abituarsi
ad avere il lucchetto chiuso. Per tutte queste attività
critiche, dovrebbero sparire i popup con cornicetta priva di
informazioni.
Il secondo passaggio importante consiste nel gestire le comunicazioni
con l'utente. Devo dire che da questo punto di vista, molti siti
americani sono assai più carenti di quelli italiani. Chi ha
comprato servizi negli U.S.A. sa cosa intendo: quanto spesso succede
che, da indirizzi solo lontanamente assonanti con l'azienda con la
quale si ha il rapporto, venga richiesto di svolgere delle
attività (ad esempio, scaricare del software beta) da siti che
hanno ancora meno direttamente a che fare con il fornitore? È
chiaro che più l'utente ha a che fare con situazioni di
questo tipo, più è facile che cada nel tranello e
fornisca le proprie credenziali a siti terzi (ed è anche chiaro
che le
varie iniziative di contrasto all'e-mail spoofing servono a poco,
finché l'utente non è ricondotto necessariamente ad un
unico dominio di riferimento). Le comunicazioni con l'utente dovrebbero
arrivare da indirizzi quanto più possibile legati al dominio
principale, e dovrebbero rimandare a pagine dello stesso dominio; solo
dopo che l'utente ha verificato l'autenticità del link,
rimanderanno eventualmente ai siti terzi di partner, dopo averlo
comunicato all'utente. In questo modo l'utente si può abituare
ad avere dei riferimenti precisi ed affidabili, e può guardare
con sospetto tutto quello che se ne discosta.
Ma soprattutto, non dovrebbe mai essere richiesto a un cliente di agire
in conseguenza di una mail, e questa politica dovrebbe essere ben chiara all'utente. Le mail dovrebbero essere al massimo delle
notifiche o dei promemoria, ma l'utente dovrebbe trovare le stesse
informazioni disponibili sul sito una volta effettuata
l'autenticazione. L'indicazione al riguardo dovrebbe essere molto
forte, e nel contempo tranquillizzante: qualsiasi comunicazione vi
arrivi, accedete al vostro account con le vostre modalità
abituali, non seguendo link della mail, e agite solo in base alle
informazioni disponibili sul sito. Per togliere ogni ulteriore dubbio,
l'help desk (e la pagina con i contatti dovrebbe essere altrettanto
https) dovrebbe dare questa indicazione con altrettanta chiarezza.
Infine, si può prendere in considerazione l'idea di firmare le
mail, cosa che comunque ha senso sempre e solo se valgono i presupposti
di cui sopra, primo fra tutti che sia chiaro il dominio di riferimento.
Laddove si possa fare riferimento a un nome di dominio simile
all'originale, questo sistema serve solo ad aumentare ulteriormente la
fiducia del malcapitato (che comunque deve essere prima abituato a
vedere, capire e verificare una firma).
È chiaro, questo non può eliminare il phishing, ma un
comportamento di questo tipo può aiutare molto a ridurlo, anche
creando, tutto sommato con poco sforzo, una mentalità attenta
alla sicurezza nell'utente, senza ridurre la fruibilità di siti
e comunicazioni; molti comportamenti attuali invece, rendono il
phishing ancora più efficace.
|