La solución para el phishing es la más básica: usar una autenticación mutua fuerte. Las contraseñas de texto claro sobre SSL autenticado unilateralmente no proporcionan esto. Esencialmente, el phishing separa los dos pasos de autenticación, rompiendo así la autenticación mutua.
Una mejora simple puede ser la autenticación segura basada en contraseña utilizando los protocolos PAKE, como SRP.
Otra mejora que también aborda la mayoría de los ataques basados en la ingeniería social es el uso de la autenticación de múltiples factores: puede llamar a alguien y convencerlo de que les revele su secreto, pero intente decirle que también les envíe su token USB. Esto es mucho más difícil, no se escala bien y es más arriesgado debido a la interacción física con la víctima. También es más difícil para la ingeniería social, ya que no es una simple acción espontánea para la víctima y se siente muy mal quitar ese token de su llavero y enviarlo a algún lugar.
Lo que queda entonces es que las personas intentan robar datos personales e información de tarjetas de crédito. Lo que se necesita aquí son los identificadores de identidad adecuados en el lado del cliente ("Este sitio web es bank.com"), los sistemas de pago seguro y, lo que es más importante, el sentido común.
Entonces, ¿por qué nadie está haciendo eso? La gente dice que el costo y la facilidad de uso es el problema. Pero la mayoría de las instituciones financieras ya se dieron cuenta de que se necesita un factor múltiple, aunque tienden a implementar soluciones incompatibles y, a menudo, vulnerables. La multitud de la Web también finalmente notó que las contraseñas realmente no se escalan bien, por lo que ahora tenemos administradores de contraseñas e identificación federal. El primero tiene restricciones bastante similares a las soluciones basadas en tarjetas inteligentes adecuadas y el segundo sigue siendo vulnerable. El problema es que a la gente no le gusta PKI. Es demasiado complejo, demasiado desconocido, aunque IE y Firefox tienen un soporte bastante bueno a estas alturas. Necesitamos sistemas como Skype y Jabber, donde la PKI se reinicia silenciosamente en segundo plano y la autorización se realiza básicamente con la administración de continuidad de claves. Y reemplace X509 con SPKI, para reducir los errores de procedimiento e implementación.