July 30, 2022

Alternativa a CAPTCHA

Proteja sus formularios de forma fácil para el usuario

Es probable que te hayas encontrado con un CAPTCHA: protegen los formularios web pidiéndote que escribas caracteres con una representación extraña o que selecciones fotos que contengan un elemento en particular. ¿Por qué se utilizan y existe una alternativa fácil de usar?

¿Qué es CAPTCHA?

Diseñado para diferenciar entre computadoras y humanos, los CAPTCHA a menudo requieren que hagas algo que las computadoras no pueden hacer fácilmente. De ahí que el acrónimo signifique: Prueba de Turing Pública Completamente Automatizada para diferenciar Computadoras y Humanos. Los creadores web utilizan CAPTCHA para proteger sus formularios web contra el spam automatizado y el abuso.

CAPTCHA típicos que puede encontrar en la web (crédito de la imagen: Wikipedia y Google)
CAPTCHA típicos que puede encontrar en la web (crédito de la imagen: Wikipedia y Google)

¿Por qué necesitas protección de formularios?

Un formulario web típico utiliza dos pasos:

Un formulario web típico: el servidor procesa la información de una persona, enviándola a otras personas, como usted. Los actores maliciosos pueden falsificar fácilmente a la persona que envía, lo que permite el abuso automatizado de su servidor de procesamiento.
Un formulario web típico: el servidor procesa la información de una persona, enviándola a otras personas, como usted. Los actores maliciosos pueden falsificar fácilmente a la persona que envía, lo que permite el abuso automatizado de su servidor de procesamiento.

El problema con este enfoque típico es que el primer paso puede ser fácilmente automatizado por actores maliciosos. Utilizan otra computadora para enviar repetidamente información al servidor, obligándolo a procesar mucha información, que a menudo contiene mensajes de spam. Los hackers están especialmente interesados en encontrar formularios web donde puedan manipular la dirección "PARA", porque entonces pueden usar tu servidor para enviar mensajes de spam a cualquier persona en el mundo.

Un CAPTCHA protege tu formulario al impedir que una computadora envíe automáticamente información a tu servidor.

Problemas con CAPTCHA

Francamente, creo que son feos y engorrosos, y no estoy solo. Introducen un umbral para las personas: reduciendo las tasas de conversión, las tasas de clics, etc. Además, a menudo son muy poco amigables para las personas con problemas de visión.

Los críticos también se quejan de que Google es uno de los proveedores más populares de pruebas CAPTCHA gratuitas. Uno puede preguntarse ¿por qué ofrecen tal servicio de forma gratuita? Es una excelente manera para ellos de entrar en el bucle de muchos viajes de clientes (comerciales), alimentando sus algoritmos con más datos para perfilar a las personas. Es algo a considerar si valoras la privacidad y las leyes de GPDR/cookies.

Alternativa

Es por eso que me propuse crear una alternativa efectiva para los CAPTCHA que se utilizarán en los formularios web que construyo para mis clientes. Mi enfoque es doble:

Firma criptográfica previa al envío: el sello postal

Debes comprender que los actores maliciosos piensan económicamente: solo harán un esfuerzo si la ganancia potencial lo vale. Si les dificultas el abuso de tu formulario web, es probable que sigan adelante y lo dejen. Antes de explicar lo que hice, debo advertirte:

Descargo de responsabilidad: Debes considerar el objetivo de la protección de tu formulario, en mi caso es (en gran medida) reducir la cantidad de mensajes de spam preservando la facilidad de uso. Esto me permite pensar en un sistema que no necesariamente proporciona una protección "a prueba de bombas", sin embargo, si estás tratando de proteger secretos nucleares, entonces este enfoque podría no ser adecuado para ti. ¡Siempre considera tu modelo de amenaza!

Para proteger los formularios web, introduzco un paso adicional que denominé "obtener un sello postal". Los pasos del formulario web protegido se convierten en:

Al introducir un token único, de un solo uso, para cada mensaje, se hace mucho más difícil para los actores maliciosos automatizar el proceso de envío de mensajes, protegiendo su formulario contra los spammers.
Al introducir un token único, de un solo uso, para cada mensaje, se hace mucho más difícil para los actores maliciosos automatizar el proceso de envío de mensajes, protegiendo su formulario contra los spammers.

Desde 2016 he estado ejecutando este enfoque y los servidores de posprocesamiento han manejado literalmente millones de mensajes, con muy pocos mensajes (<100) siendo spam. Tras una inspección más detallada, la mayor parte del spam que pasa es "trabajo manual": posiblemente indica que los actores maliciosos están investigando el mecanismo. Como parece ser demasiado esfuerzo romper el sistema, es muy efectivo para lograr mi objetivo de proteger los formularios web.

Conclusión

Si bien los CAPTCHA son comprensiblemente muy populares, no siempre es necesario tenerlos en tus formularios web si consideras alternativas. ¡Mi consejo es dificultarles las cosas a los actores maliciosos y facilitarlas a tu audiencia!