Crear usuario · Acceder

Animal Captcha (PHP, bonito, seguro y software libre)

 

Español | Inglés

Animal Captcha

animal captcha 14
DEMO ONLINE

[Español e Inglés]


Introducción:

Animal Captcha es un pequeño programa en lenguaje PHP, orientado para su uso en páginas web, que permite adjuntar a un formulario una imagen aleatoria de un animal que cualquier humano conoce, y sin embargo un robot es incapaz de identificar.


Ventajas:

  1. Seguridad: esta es la razón principal, en Internet hay desarrollos que consiguen resolver algunos captchas de códigos alfanuméricos, con creciente éxito. Sin embargo, ojalá pudiese una máquina identificar a un animal! Es imposible teóricamente.
  2. Belleza: es más agradable ver una foto de un animal que un código alfanumérico.
  3. Rapidez: los usuarios ahorran tiempo, ya que se tarda menos en identificar y escribir un animal que introducir un código aleatorio.
  4. Efectividad: los usuarios aciertan con más probabilidad en comparación con los últimos captchas seguros.


Descargar:

Publicado bajo licencia Creative Commons, siendo esta página la fuente original. Cedo al interés común todos los derechos de utilización y modificación, como mejor se considere. El único derecho que quiero preservar es el de autoría y citación.


Versiones y cambios:
  (changelog):

  • 1.6.0 - Grandes cambios, Animal Captcha Make fusion del proyecto Animal Captcha (core) y Animal Captcha plugin
  • 1.5 - 2010/03 - Sin ataque demostrado
    NachE encontró una vulnerabilidad considerable mediante un avanzado ataque que consiste en posterizar un repertorio y comparar estadísticamente los pixeles para averiguar qué animal es. El exito de esta tecnica fue sorprendente (80% de eficacia). Se ha asegurado esta debilidad, sin embargo el ataque siempre tendrá cierta eficacia si se tiene el repertorio original. Por ello es aconsejable crear imagenes inéditas y no publicas para alcanzar la seguridad razonable.
  • 1.4 - 2009/11 - Debilidad encontrada por NachE
    Caduca la sesion en cada intento obligando a pedir el captcha. Configuracion opcional del numero de animales por prueba, esto aumenta exponencialmente el numero de respuestas posibles migitando drásticamente la eficacia del ataque por fuerza bruta.
  • 1.3 - 2009/10 - Débil a fuerza bruta por erlang
    Permite añadir varias imágenes para un mismo animal añadiendo _2.jpg en la imagen. La imagen de fondo se orienta incorrectamente para mitigar la confusión con la imagen principal que es la corecta. Desactivado por defecto los polígonos y giros aleatorios ya que no hace falta tanta seguridad. Mejorada la calidad de la imagen. Refresca otro animal al hacer clic en la imagen.
  • 1.2 - 2008/12 - Débil a fuerza bruta por erlang
    Avance importante en la aleatorización de imágenes mediante una tecnica de fusión de dos imagenes transparentes aleatorias. Corrección de pequeños bugs. Optimización mejorada, genera imágenes más rápido.
  • 1.1 - 2008/06 - Vulnerado por movzx
    Avance en la aleatorización para dificultar la obtención de patrones que identifiquen la foto original del animal. Invulnerable al test de bits y test de histograma.
  • 1.0 - 2008/04 - Vulnerado por NachE
    Versión inicial. Vulnerable a los test de bits y test de histogramas.

(Invulnerable quiere decir que es seguro y hasta el momento nadie ha logrado crackeado, ánimo hackers!)

 


Implementación:

Animal Captcha está compuesto de 2 archivos PHP y 1 carpeta con imágenes de animales.

  • animal-captcha.php - Devuelve una imagen aleatoria de un animal, y guarda en una sesión PHP el nombre del animal para comprobarlo posteriormente.
  • animal-captcha-check.php - Define esta función PHP animal_captcha_check() que devuelve true si se ha acertado y false si es errónea, respecto a la sesión previamente creada al imprimir la imagen captcha.
  • Imágenes: las fotos deben estar en formato .jpg, medir 120px y representar un animal común, fácil de identificar (de nivel de preescolar). El nombre está formado por una serie de palabras sin espacios, una palabra por intento, separadas por guiones "-". Todas las estas palabras son las respuestas correctas. Ejemplo, cerdo-gorrino-pig.jpg Admite las respuestas: cerdo, gorrino o pig. Cada imagen ocupa 4kb tan solo. Está optimizado su consumo al mínimo, listo para usarse en sitios web con alto tráfico.

De esta forma se puede internacionalizar fácilmente o se pueden solventar animales que pueden ser nombrados de varias formas.

Cada imagen es difuminada aleatoriamente, de forma que cada imagen presentada es única.


Problemas conocidos:

  • Si el lector no conoce alguno de los idiomas del captcha, no podrá resolverlo.

Español | Inglés

           

Artículos relacionados:

  1. Animal Captcha 1.5
  2. Animal Captcha 1.4
  3. Animal Captcha plugin para Wordpress
  4. Animal Captcha 1.4: captcha gráfico con animales, script PHP
  5. Animal Captcha 1.2, nueva versión mejorada la seguridad de aleatorización y pequeños bugs
  6. Descubren un raro animal con dientes de sable de hace 260 millones de años
29
+7 GONZO 06-10-2009
Categoría: Proyectos Recomendaciones
  1. +1 LUISEDUARDO 2009-10-12 02:27:01

    ME GUSTA

  2. +1 Provotector 2009-11-04 17:46:07

    Tu captcha sigue teniendo limitaciones. La más básica es el número de animales diferentes que puede llegar a conocer una persona normal y corriente, lo que limita muchísimo los resultados a introducir.

    Si haces que cada tres intentos fallidos aparezca una nueva imagen, es solo cuestión de tiempo que un programa que haga la función de introducir los cien nombres de animales que suele conocer una persona normal acertara por casualidad en uno de los tres intentos.

    Sigo sin ver qué tiene de mejor tu captcha comparado con cualquiera de los "normales". Espero que ya hayas visto que de infalible nada, además sería mucho más fácil de rebentar que un captcha alfanumérico.

  3. +2 Jorge 2009-11-05 20:54:35

    Que tal Gonzo.

    Muy buena idea lo de las imágenes para usarlo en el captcha en lugar de las clásicas cadenas.
    Pero no lo veo muy usable del todo por el hecho de que no todos sabemos como se escriben correctamente el nombre de la mayoría de los animales. Por ejemplo, en el demo que tienes, intente poner al hipopótamo sin la letra "h" y no pasa, también el caso de víbora cambiado la "v" por "b" y vesceversa dice que soy robot. Y este el punto mas fuerte en contra que le veo a tu sistema, porque la mayoría de los internautas tenemos una ortografía muy mala (sin contar que en diferentes países se le puede conocer de otro nombre a un animal) y eso puede ocasionar que cuando alguien escriba mal el nombre de un animal y no lo deje pasar no va a saber donde está el error y va a pensar que el problema es del sistema.

    Ahora, si yo hago un bot para poder romper el captcha, lo único que tengo que hacer es tener una lista donde vengan todos los nombres de los animales que existen sacados de una enciclopedia - en este caso todos van a estar correctamente escritos - para saltarme la protección. Y es que por esta misma razón es más fácil que un bot que puede ejecutas cientos de opereciones por segundo y sin problema a que escriba mal un nombre pueda pasar el captcha a un humano medio con mala ortografía.

    Eso si, tu sistema funcionaría perfectamente para que no posteen los típicos "hoygans" en los foros.

    Saludos.

  4. +1 barbituri 2009-11-06 18:21:31

    Hey Gonzo, después de los comentarios en meneame.net, el sistema ha quedado "vulnerado"... vas a reorientar este proyecto? Vas a matarlo? Tengo curiosidad.

  5. +2 GONZO 2009-11-06 21:41:46

    Hola Barbituri

    Hoy mismo he empezado a desarrollar una batería de mejoras para resolver el fallo reportado desde menéame.

    Tardaré más de lo que creía, pero probablemente en una semana estará listo.

    Básicamente voy a añadir la opción de poner 2 o más animales en cada prueba. De forma opcional y configurable.

    Lo que si, acabo de cambiar el estado actual de "invulnerable" a "débil a fuerza bruta".

    No considero que sea vulnerable al 100% porque hay que hacer 30 peticiones para lograr 1 éxito ahora mismo. No es descabellado que alguien lo explote, pero tampoco va a dar problemas normalmente.

  6. +1 GONZO 2009-11-06 21:53:34

    Hola Jorge,

    Sobre la eficacia "anti-hoygans" es ninguna. Consiguen superarlo de igual forma. Piensa que es muy facil pulsar en la imagen y obtener otro animal.

    Sobre las faltas otrográficas, se ha intentado mitigar esos fallos ignorando acentos y permitiendo varios nombres por cada animal. Por ejemplo en la "vaca" sirve decir "toro" también. Sin embargo me parece demasiado "bruto" añadir erratas tipo "baca". Aun así es extremadamente fácil añadirlo, solo hay que cambiar los nombres de los archivos jpg.

    Sobre la vulnerabilidad a fuerza bruta ya estoy trabajando en ello, supongo que lo habrás visto en menéame, es cierto. Intentaré resolverlo con una serie de medidas proximamente.

  7. -1 enWILLYado 2009-11-26 21:49:43

    Hola.
    En Tuentidad.es tenemos un captcha sencillo, pero estamos interesados en mejorar también la seguridad en nuestras transacciones.

    Te propongo, un híbrido:
    Muestras una imagen como la que hay ahora, y luego una serie de valores posibles abajo, generados con imagen captcha de las tradicionales y un "" que envíe diferentes hasheses.
    La a la función se le indica el hash del animal, y el hash de la respuesta seleccionada, que internamente están asociados a dos palabras... y si es igual, dice true; y si no, dice false.

    ¿Entiendes?
    Alguna duda, te ayudamos en nuestra web o este mail.

  8. +1 marlowe 2009-12-07 20:34:32

    Muy interesante la idea

  9. +1 Observer 2009-12-07 23:55:46

    La idea es muy buena, Gonzo. Pero debo partir por n-ésima vez una lanza por los ciegos (esclavizados en Windows por cierta organización que les cobra un disparate por el lector de pantalla Jaws). Todo lo que un lector de pantalla no lea un ciego no conseguirá ver. Creo que el mejor captcha es el lingüístico, el que formula algún tipo de pregunta que un humano puede contestar y una máquina no.

  10. +0 Rober 2009-12-08 01:39:10

    Yo tengo una duda, ¿porque no utilizar un modo mixto de imagen y texto? Me explico: si en una imagen aparece un coche con las dos barras encima y una mini-pregunta como: ¿Que tiene arriba? Se devuelve 'baca', nada que ver con la imagen ni con el texto de la pregunta.
    Otro ejemplo como un cuadro y perir 'color marco' u 'objeto en mano' de alguien pintado en el, etc...
    Creo que puede ser muy interesante y sobre todo seguro. Un usuario dudo que vea dificultad en preguntas simples y los mejores programas de reconocimiento dudo que interpreten la situación.

    Saludos.

  11. +0 Morgg 2009-12-09 16:57:56

    Este sistema tiene el mismo problema que muchos otros: la accesibilidad para usuarios con impedimentos visuales, que aún no ha sido resuelto de una forma satisfactoria.

  12. +1 GONZO 2009-12-09 18:13:20

    Es obvio que Animal Captcha no es para invidentes.

    El objetivo prioritario de este proyecto es lograr un captcha seguro al 100%.

    Pero la realidad es que actualmente los catpchas de audio son un punto debil, ya que se han hackeado en muchas ocasiones y con mayor facilidad que los alfanumericos.


    Los captchas en audio es un campo en el que se debe avanzar, en favor de los invidentes. Sin embargo no es mi especialidad y además representan un porcentaje muy pequeño de usuarios. Quizá deban invertir en este campo organizaciones como la ONCE, sugiero.


    Un saludo,

  13. +2 Taja 2010-01-02 03:17:27

    CRITICA CONSTRUCTIVA - POSIBLE ATAQUE
    - POSIBLE CONTRAMEDIDA-EVOLUCION ----

    Me acabo de percatar de un posible "fallo", que abre la puerta de posibilidad de saltarse este tipo de protección.

    Para exponerlo mejor, lo comparare con los alfanuméricos normales; supongamos que la seguridad se trata en decir un número de 0 a 9. Si ponemos siempre por ejemplo el 3, en 10 intentos hemos logrado entrar como máximo, habiendo un intento posible cada vez, ya que en cada refresco se ira recorriendo la lista de aleatorios hasta dar una ocasión conque el que se pida sea el 3.

    Un robot que siempre esté metiendo: "delfín", al cabo de X veces coincidirá con la petición; la unica forma de eliminar este mecanismo sería incluir una "burrada" de animales y/o superheroes: ironman, dragon, biblia,... de manera que las posibilidades sean intratables por este ataque...

    ¿Que pensais de esta critica?

  14. +1 GONZO 2010-01-02 16:04:34

    @Taja Bien visto, pero ya reportaron esa vulnerabilidad, que no afecta a la version 1.4.

    Toda la explicación del bug y su resolución está aquí:

    http://gonzo.teoriza.com/animal-captcha-14-invulnerable

    Un saludo y gracias por la critica.

  15. +0 Jesus 2010-01-07 10:59:04

    No entiendo el porqué de tanta crítica. A mí me parece muy buena idea usar dibujos.
    Todos los métodos criptográficos basan su seguridad en que el espacio de claves posibles sea tan grande que el ataque por fuerza bruta lleve cientos o miles de años. Si el problema de "Animal Captcha" es que la solución es un animal, ¿por qué no cambiamos el proyecto por "Dibujo Captcha"? Las posibilidades se amplían a cualquier palabra que aparezca en un diccionario: coche, moto, árbol, niño, perro, cometa, galaxia, minotauro, ...
    Además, el administrador de la página puede cambiar la librería de imágenes cada cierto tiempo y listo.
    Y la solución para invidentes la ha apuntado muy bien Observer. Hacer una pregunta lógica con ruido.
    Muy buen proyecto.

  16. +3 ter 2010-01-29 22:12:29

    Esta interesante y diferente

  17. +0 farra 2010-02-02 17:57:11

    tiene un problema, no funciona si tienes activado los errores en el php.ini

    sale esto:
    Notice: Undefined variable: ac_result in C:\wamp\www\pasion\animal-captcha\animal-captcha.php on line 49

  18. +0 farra 2010-02-02 18:08:20

    otro problema encontrado:

    Notice: Undefined offset: 1 in C:\wamp\www\test\captcha\captcha-check.php on line 31

  19. +3 farra 2010-02-02 18:30:32

    Te recomiendo que cuando hagas correciones nuevamente pongas en la raiz de tu captcha un arhivo .htaccess con esta linea:

    php_flag display_errors on

    y asi estas seguro que no tiene ningun error que pudiere afectar la performance del server... ya que por mas que no tenga errores fatales es importante tampoco tener warning ni notices...

    en esta linea corregi el error asi:
    foreach($animals as $one_animal) {
    $animals_resp = explode('-', $one_animal);
    if(isset($trys[$e])){
    if (!in_array($trys[$e], $animals_resp)) {
    $result = false;
    }
    }
    $e++;
    }

  20. +2 GONZO 2010-02-02 22:15:39

    Farra gracias, muy buen consejo.

    En la próxima versión lo tendré en cuenta.

    Un saludo,

  21. +1 Totobuvika 2011-03-13 13:04:51

    I like the idea with the animals. But your programme does not work if WordPress is installed in a subdirectory. There should be a config file where the user can save the path informations.

    Nevertheless, thanks for the nice captcha!

  22. +2 TheBear 2011-03-23 18:59:33

    Same situation with me. I appreciate the idea putting animals in captchas - especially for a blog about Travelling, this idea seems really cool.

    Unfortunately my Wordpress install is not in the root of my domain, so I can not use AC :(

    Maybe the support for subfolders will come some day. Thank you anyway for your work!

  23. +0 aguila 2011-03-28 07:36:08

    LA PERSONA QUE ME LO ENVIO ESTA TODAVIA ASOMBRADA DE LO OCURRIDO, YA QUE ELLA DICE QUE LO HIZO POR HACERLO Y QUE PIDIO ALGO QUE CREIA CASI IMPOSIBLE DE LOGRAR PROBEMOS.
    * Para ti mismo di el nombre de la unica persona del sexo opuesto con quien quieras estar (tres veces...)...
    * Piensa en algo que quieras lograr dentro de la proxima semana y repitelo para ti mismo(a) (seis veces)...
    * Piensa en algo que quieras que pase entre tu y la persona especial (que dijiste en el no. 1) y dilo a ti mismo/a (doce veces)...
    * Ahora haz un ultimo y final deseo acerca del deseo que escogiste.
    * Despues de leer esto tienes 1 hora para mandarlo a 15 temas y lo que pediste se te hara realidad en 1 semana.
    A la mayor cantidad de gente a quien lo mandes mas fuerte se hara tu deseo.
    Si tu escoges ignorar esta carta lo contrario del deseo te sucedera,
    o esto no sucedera jamas..............
    Que tus días estén llenos de logros y tus noches de sueños copia y pega esto en 15 o + temas

  24. +0 Gradiun 2011-09-13 11:06:41

    ofresco servicio de contraseñas Hotmail Gmail Yahoo el servicio que doy es confidencial porque el dueño (a) de la casilla no se dara cuenta que han obtenido su clave porque te doy la misma contraseña que el titular esta usando el trabajo es de inmediato no es un servicio gratuito si estas interesado en comprar un password escribeme, para la facilidad de mi trabrajo tienes que mandarme correo de la persona que desea hackear el trabajo es totalmente garantizado no usamos programa fraudulento como ingenieria social contactame te muestro total garantia enviandonte la captura de la bandeja de entrada y correos y enviados o enviandote un mail desde la casilla de la victima, asi sabras que no es un fraude o engaño si estas interesado en leer algunos E-Mails de tus amigos, familias, contactame te doy mayor discrecion en mi trabajo, no se cobra en adelantado te muestro las pruebas como lo mencionado en la parte superior pago por el servicio via Western U. este servicio esta hecho para gente interesados como tu en comprar una contraseña Gradiun te ofrece un servicio con total discrecion y seriedad hackeando desde los servidores hotmail yahoo gmail para poder adquirir unos de los productos contactanos y has tu pedido el trabajo es totalmente confidencial y anonimo tanto para el cliente como para este sitio contactos gradiun@gmail.com

  25. +0 gIaNZhItO 2011-11-24 07:25:08

    ola aki les dejo mi msn solo para chikas kalientes y con kamara mi msn es lacrema_325@hotmail.com

  26. +0 assd 2012-09-07 07:29:50

    Recibo llamadas telefonicas de gente que se hace pasar por personal de telefonica de argentina, ellos dicen que quieren otorgarme un descuento de un 40%, pero luego que les confirmo el nombre y apellido, me cortan automaticamente.

    Cada vez que hable en forma critica, de EEUU, en los chat de internet me llamaron al tel fijo de mi casa (como llamada anonima) y preguntaron mi nombre y cortaron. Se hacen pasar por personal de telefonica de argentina. Por las caracteristicas de la llamadas, musica, tono de vos, etc todo hace pensar que se trata de una organizacion sofisticada.

    Pareciera que quieren reunir pruebas encontra de mi persona constatando que alli vivo yo. Bien podria ser la SIDE de argentina, o un servicio de inteligencia de EEUU.

    Otra cosa mas, soy periodista, y como deduciran, soy de ideologia politica de izquierda, y suelo hablar de los atropellos de eeuu.

  27. +0 Roberto 2012-11-14 21:45:09

    Hola,
    Tengo una pregunta, ¿Cómo puedo colocar el Captcha antes del botón "Enviar"? Gracias!

  28. +0 Lizardo 2013-03-23 07:29:17

    Porque simplemente llamarse imagenCaptcha o algo asi y poner solo reconocimientos de cosas como electrodomesticos, juguetes, utensilios, en fin, eso creo lo usare con tu plugin, para evitar la limitancia.

  29. +0 jose 2014-02-11 12:50:01

    Hola, la pagina de descarga da error, ya no esta disponible? es una lastima que me parece mucho mas util que los tipicos captchas

Artículo escrito por GONZO para Blogs Teoriza.
Animal Captcha (PHP, bonito, seguro y software libre), animales ingles nombres nombre imagenes

 
Ocio Tecnología Mujer Informática Contactos Cultura Vacaciones Interesante Místico Personal English
Ocio Alarmas Intimidades Internet Chat Poesías Turismo Legalidad Tarot GONZO Leisure
Juegos Tecnología Salud Adsl Messenger Mundo Viajes Videncia Mia Woman
CineTV Inventos Mujer Música Tech
ComoHacer
Enlaces: MovilZona Eventos Sagas Loteria Navidad 2012 Test de velocidad Pedrea

Blogs Teoriza™ · Red de Blogs · · Aviso Legal · Creative Commons · 2003-2011