La soluzione al phishing è la più basilare: usa una strong autenticazione reciproca. Le password in chiaro su SSL unilateralmente autenticato non forniscono questo. Essenzialmente, il phishing stacca i due passaggi di autenticazione, interrompendo così l'autenticazione reciproca.
Un semplice miglioramento può essere l'autenticazione basata su password sicura usando i protocolli PAKE, come SRP.
Un altro miglioramento che affronta anche la maggior parte degli attacchi basati sull'ingegneria sociale consiste nell'utilizzare l'autenticazione a più fattori: puoi chiamare qualcuno e convincerli a dare loro il segreto, ma prova a dire loro di inviare anche il loro token USB. Questo è molto più difficile, non si adatta bene ed è più rischioso a causa dell'interazione fisica con la vittima. È anche più difficile per l'ingegneria sociale dal momento che non è una semplice azione spontanea per la vittima e si sente molto sbagliato rimuovere quel token dalla catena di chiavi e inviarlo da qualche parte.
Ciò che rimane è che le persone cercano di rubare dati personali e informazioni sulla carta di credito. Ciò che è necessario qui sono i veri e propri identificatori di identità sul lato client ("Questo sito è bank.com"), sistemi di pagamento sicuri e, soprattutto, buon senso.
Quindi, perché nessuno lo sta facendo? Le persone dicono che il costo e l'usabilità sono il problema. Ma la maggior parte delle istituzioni finanziarie ha notato che è necessario disporre di più fattori, sebbene tendano a implementare soluzioni incompatibili e spesso vulnerabili. Il pubblico del Web ha finalmente notato che le password non si adattano molto bene, quindi ora abbiamo i gestori delle password e l'ID federale. Il primo ha restrizioni piuttosto simili come soluzioni basate su smart card e il secondo è ancora vulnerabile. Il problema è che alla gente non piace PKI. È troppo complesso, troppo poco familiare, anche se IE e Firefox hanno già un buon supporto. Abbiamo bisogno di sistemi come Skype e Jabber, in cui la PKI viene automaticamente inserita in background e l'autorizzazione viene fondamentalmente eseguita con la gestione della continuità delle chiavi. E sostituisci X509 con SPKI, per ridurre i bug procedurali e di implementazione.