Liberando Software: captcha para IRC, para comprobar humanos con mIRC
En Marzo de 2005, en mi época de IRC. Enredando en este tipo de chat (hoy en declive) perdía el tiempo aprendiendo a programar un lenguaje de puertas cerradas llamado scripting de mIRC (es similar a C, sin compilación, solo ejecutable en mIRC, que por cierto es emulable en Linux con Wine).
Una de tantas aventuras fue la idea de crear un captcha en IRC, obviamente en texto plano. Entonces los captchas eran algo desconocido, empezaban a usarse en las webs, en cambio hoy te los puedes encontrar hasta para comentar.
Un captcha es una prueba que hace el servidor a un usuario para determinar si es un humano o no. Esto es fundamental en IRC por ejemplo para frenar y defender una red de ataques de clones (tan frecuente como el spam).
Mi captcha conseguía renderizar un numero aleatorio a una especie de gráfico con caracteres. Ademas lo ofusca con diversas tecnicas como fuentes de numeros distintos que varían aleatoriamente.
Aquí una muestra:
Hola, si eres humano teclea este número por favor. ############################# ############################# ############################# ############################# ############################# ############################# #############################Esta tecnica es muy segura, en mi opinion es casi imposible que se consiga hacer un anti-captcha que se salte esta tecnica... porque con un minimo esfuerzo se pueden añadir nuevas fuentes de numeros (se podrían hacer infinitos numeros distintos, para entender esto ver fuentes.ini). Simplemente añadiendo una nueva fuente obligaria al que intente cazar este sistema a analizar de 0 los captchas para detectar todos los nuevos numeros y reprogramarlo. Un infierno...
Además se puede complicar más añadiendo cuadrados aleatorios en medio del numero, lo cual dificultaria su lectura un poco pero aumentaría exponencialmente su seguridad.
Me habría encantado implementarlo en el IRC-Hispano, pero pasaron de mi idea. La verdad es que hubiese sido divertido asegurar una red entera liberandola de bots de spam y clones de ataque, pero me di cuenta de que a esta gente le interesa que hayan clones, porque inflan sus estadísticas y así sus anunciantes les pagan más.
Como ando muy agradecido e involucrado con el Software Libre, voy a liberar este programa a todo el mundo que quiera echarle un vistazo, probarlo, utilizarlo, mejorarlo, rehacerlo... lo que queráis siempre que se respete razonablemente mi autoría.
Archivos (3):
- captcha-IRC.mrc 1.0 [3kb] - El código fuente, crea un evento y el alias /validar.
- fuentes.ini [2kb] - Las fuentes de números con distinto tamaño y forma, se pueden añadir cuanto se quiera.
- validaciones.ini [0kb] - Log (vacio) para guardar quien consigue pasar el captcha y quien no, a partir de esto se pueden crear muchas aplicaciones.
- Descargar los 3 archivos de arriba (abriendo uno a uno haciendo: Guardar como...)
- Guardarlos en el raíz de tu mIRC (ejemplo: c:/mIRC/)
- Ejecutar en mIRC: /load -rs captcha-IRC.mrc
- Ya está. Lo puedes probar con el comando /validar NICK esto enviará a ese nick una consulta captcha, notificará su acierto o error y lo registrará en validaciones.ini.