Categoría Internet
DEBILIDAD A FUERZA BRUTA
Hace un par de semanas desde Menéame (erlang y compañía) me ayudaron a comprender que las versiones de Animal Captcha hasta la 1.3 son débiles frente a un ataque de fuerza bruta.
Es decir, a diferencia de los captchas alfanuméricos, Animal Captcha por su naturaleza tiene un numero reducido de "respuestas posibles". Tantas como animales. Hasta el momento 30 animales.
Esto significa que creando un bot de fuerza bruta que haga peticiones de forma automática, de cada 30 peticiones acertará una, de media. Esto es una debilidad que en algunos casos merecerá la pena explotar (no en todos).
LA SOLUCIÓN
Tras un momento de desconcierto, se pudo pensar que se había tumbado el concepto de Animal Captcha. Pero he desarrollado una batería de soluciones que mitigan el problema hasta su mínima expresión.
El problema de la fuerza bruta se ha resuelto con los siguientes cambios:
- En cada "intento" se elimina la variable de sesión. Esto significa que para hacer un intento válido haya que hacer 2 peticiones obligatoriamente: una a la imagen del animal (el captcha) y otro al script comprobador.
- Se permite configurar el numero de animales mostrados. Por defecto 2. Es flexible, cambiando un parámetro se puede cambiar a 1 animal o a 8, dependiendo del "industrial strength" que se necesite. Por ejemplo en Blogs Teoriza he configurado 1 solo animal, hasta que surja algún problema.
¿Qué hemos conseguido? Pues multiplicar exponencialmente el numero de respuestas posibles, mitigando drásticamente la eficacia de un ataque por fuerza bruta (el único ataque con eficacia demostrada hasta ahora).
Cálculos teniendo en cuenta que hay un repertorio de 30 animales (estoy preparando la próxima versión 2.0 que se ampliará a objetos).
- Versión antigua (hasta 1.3)
30 respuestas posibles = 30 peticiones por acierto.
- Animal Captcha 1.4
Mostrando 2 animales: (30^2)*2 = 1.800 peticiones por acierto.
Mostrando 3: (30^3)*2 = 54.000 peticiones por acierto.
Mostrando 4: (30^4)*2 = 1.620.000 peticiones por acierto.
Como se puede ver, se ha aumentado drásticamente el numero de peticiones con el mismo numero de imágenes. El numero de imágenes será elevado al menos a 60, incluyendo objetos y animales, en la próxima versión 2.0.
- Animal Captcha 2.0 (versión futura incluyendo objetos)
Mostrando 2: (60^2)*2 = 7.200 peticiones por acierto.
Mostrando 3: (60^3)*2 = 432.000 peticiones por acierto.
Mostrando 4: (60^4)*2 = 25.920.000 peticiones por acierto.
Con esto intento mostrar que el aumento de la seguridad frente a fuerza bruta es exponencial.
CONCLUSIÓN
Con esta versión 1.4 doy por resuelto el ataque de fuerza bruta simple (salvo que me corrijan, claro). Y por lo tanto en mi opinión es "invulnerable" hasta que se demuestre lo contrario.
Me temo que ahora el caballo de batalla de Animal Captcha es el ataque por identificación de animales analizando patrones del repertorio de imágenes (que es publico y abierto, aunque cada webmaster puede hacerse el suyo particular).
Aunque en este aspecto es extremadamente difícil de hacer, ya que desde la versión 1.2 se fusiona una imagen de fondo aleatoria, con transparencia aleatoria y orientación aleatoria. Todos los bytes y pixeles cambian aleatoriamente. Cada imagen es única.
Además continua activa la opción de añadir polígonos aleatorios (desactivada por defecto ya que sobra seguridad en este aspecto).
CONCLUSIÓN BREVE
Animal Captcha 1.4 es invulnerable y más seguro que cualquier captcha alfanumérico, hasta que se demuestre lo contrario (como de costumbre agradeceré que se ponga a prueba este sistema).
Español | Inglés
Animal Captcha
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:
- 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.
- Belleza: es más agradable ver una foto de un animal que un código alfanumérico.
- Rapidez: los usuarios ahorran tiempo, ya que se tarda mucho menos en identificar y escribir un animal que introducir un código aleatorio.
- Efectividad: los usuarios aciertan con más probabilidad en comparación con los últimos captchas seguros.
- Multi-lenguaje: permite responder en varios idiomas, incluso varios nombres para un mismo animal (ejemplo: halcón y águila son equivalentes).
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):
- 2.0 - Futura versión...
Ampliaré las imágenes tambien a objetos. Aumentando el repertorio al menos a 60 entre animales y objetos.
- 1.4 - 2009/11 - Invulnerable
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.
0
GONZO
20-11-2009
Internet da lugar a ciertas paradojas...
- Que la mejor forma de dar visibilidad a los anuncios relacionados sea integrándolo (falacia, en verdad es camuflar) en el diseño del site. (pero no confundir esta técnica con engaños para provocar clics equivocados).
- Las webs encontradas en los buscadores cuyo contenido es malo o no coincide con lo buscado, tienen más probabilidad de tener clics en los anuncios (y además les haces un favor mostrandoles anuncios sobre lo que busca realmente). WTF1!
- Que AdSense te pague por anunciar en tu web un site trampa que recibe dinero de los Referidos de Google para que el visitante se instale un programa que regala Google. WTF2!! Esquema para digerirlo: Listillo invierte en Google Adwords > Google te paga por anunciar al Listillo > el visitante instala el programa Referido que en realidad es gratis y de Google > Google paga al Listillo más de lo que invirtió. (Esto me lo comentó un colega flipando bastante)
0
GONZO
20-10-2006
He terminado la recopilación de los resultados que se desprenden de la encuesta ¿Cuantos euros pagarías? que inicié hace unos días.
Podeis ver aquí el resultado detallado. Se han encuestado a 77 usuarios de Internet hasta este momento, aunque lo he dejado abierto, por si alguien más quiere dar su opinión (ya que lo he programado, así se aprovecha más).
Sobre los resultados destaco lo siguiente (obviamente mi interpretación es subjetiva, que cada cual extraiga sus conclusiones de los datos):
- Más del 90% pagaría por una pelicula de calidad descargada por Internet (hubiendo podido elegir 0 Euros, gratis).
- Las películas en cartelera se venderían muy bien a 3 euros, las contemporáneas a 2 euros.
- Sobre las series de televisión más del 80% está de acuerdo en pagar por capítulos.
- Las serias podrían venderse bien a 1 euro, ya que la media es 0.8 euros.
- En el sector de la música hay un notable aumento del "todo gratis" del 55%, excepto si la canción es de un grupo favorito entonces el 80% si pagaría.
- Las canciones se podrían vender bien a 0.5 euros.
0
GONZO
08-07-2009
1
GONZO
09-07-2009
Spanish | English
Description:
Animal Captcha is a PHP program created for web developers who need a secure spam control for HTML forms. It displays a random image picked from a list of animals which only humans can recognize.
Advantages:
- Nice look: better than an ugly alphanumeric string.
- Fast: users can identify an animal faster than several mixed letters.
- Effective: less wrong answers.
- Secure: the main reason. Some alphanumeric captchas you can find on the Internet are really difficult to be recognized by a bot, but with an animal it's almost impossible!
- Multi-language: available in some languages, multiple valid names for each animal.
Documentation:
Animal Captcha is divided into two PHP files and one folder containing some images.
- animal-captcha.php - Returns a random image and saves the name of the animal in a session variable for being checked later.
- animal-captcha-check.php - It defines animal_captcha_check() function. It returns true if user answer is OK, and false if it's wrong.
- Folder images - They must be JPG format, a 120x120 px size, showing a very common animal which everybody knows. Names are composed with some words separated by dashes. Each word represents a valid answer for the same animal (eg: cerdo-pig-porc.jpg).
By this way you can easily adding new languages or solving problems about animals which have some different names.
Histograma test passed.
Download:
Published under Creative Commons 3.0 license. You can use or modify all you want, but you must attribute the work to the original author: GONZO (Javier González), of Blogs Teoriza.
Sorry about my bad English, i hope it will be useful!
0
GONZO
04-05-2008
Descubro esta noticia impactante.
Hackers descubren un bug de seguridad nuevo (0-day) que permite acceso root y lo aprovechan para eliminar el contenido de 100.000 paginas web y también sus sistemas de backup.
Que hackeen una web es algo que puede suceder, hay que asumirlo. Pero que tambien se destruya el backup es algo que yo siempre he tenido en cuenta.
Nunca me he fiado de los backups automáticos ni lo más minimo. No podria dormir tranquilo sin un archivo de multiples backups custodiadas fisicamente y sin acceso a internet.
2
GONZO
10-06-2009
Tenemos al alcance la mayor revolución en la enseñanza que podamos imaginar.
Imaginad un ordenador portátil para cada alumno, desde el colegio hasta el Instituto, en perfecta armonía con un software 2.0 que permita desarrollar un aprendizaje avanzado, motivador, actualizado y participativo.
Esta innovación ya está al alcance, no mañana, si no hoy. El mundo de la información avanza muy deprisa, pero creo que ya es hora de comenzar este importante paso, el cual es inevitable tarde o temprano en mi opinión.
El hardware:
Asus acaba de lanzar el aclamado Eee PC, que es un ordenador de la categoría ultraportátil. Este es el dispositivo perfecto para las aulas. Cada una de sus cualidades lo son en una magnitud extrema: ligero, pequeño, silencioso, simple y sobre todo económico. El Eee PC solo es el primero en comercializarse, pero los modelos aumentan cada mes. Son el futuro.
El coste de estos ordenadores actualmente está entre los 200 y 150 euros, pero fabricados masivamente no debería superar los 100 euros. Cualquiera que tenga niños sabe que el coste de los libros escolares superan los 300 euros, anualmente.
No hace falta ser Steve Jobs para darse cuenta de la oportunidad que tenemos delante. No hay razón para que este cambio no suceda ya. Se ahorraría muchísimo dinero, por no hablar del ahorro ecológico en árboles.
Las características técnicas de los ultraportátiles actuales tienen potencia suficiente para mover con soltura un programa de edición de fotos o Google Earth. No hace falta más potencia, la principal herramienta será el navegador web.
El último Eee PC tiene una resolución de 1024x600 en color, 1GB de RAM DDR II, 12GB de memoria SSD, WiFi, USB, sonido... en 1kgr de peso. De sobra!
El software:
El software tiene como mínimo el 50% de importancia. Probablemente más que el hardware. Esto lo entienden muy bien empresas como Google y Yahoo! por eso están donde están y hacen lo que hacen.
Internet será el recurso principal de información. El diccionario de la RAE instantáneamente disponible, la Wikipedia que es la enciclopedia más completa y revolucionaria de la historia, Google Earth por ejemplo para información geográfica, fotografías, vídeos instructivos... Toda la información de Internet a disposición (por supuesto aquí deberá entrar en juego un implacable filtro para evitar accidentes y perdidas de tiempo del alumnado).
También será necesario un autentico desarrollo web 2.0 adaptado para su uso masivo en todos los centros de enseñanza del país. La mejor opción es basarse en páginas web y por supuesto apoyándose y apoyando el Software Libre.
Esto significa que el profesor podrá lanzar ejercicios, tests, exámenes, encuestas, textos, vídeos, fotos o esquemas digitalmente en todos los ordenadores del aula, usando el formato web, que es muy fácil de desarrollar y escalar.
Se empezaría con pocos programas, pero si se hace de forma abierta estoy convencido de que se aliarían cientos de programadores que harían ejercicios, ayudas, textos, formulas, cálculos y gráficos de todo tipo en enorme abundancia. Poderosos recursos en manos de un hábil profesor 2.0.
La red WiFi en cada centro será como las venas para el cuerpo humano. Esto permitirá compartir información, estar al día de los planes de estudio, descargar los libros necesarios o complementarios, la posibilidad de realizar ejercicios en cualquier momento para un aprendizaje más eficiente, información ultra-detallada para los padres... En definitiva, comunicación absoluta entre alumnos, profesores y padres en cualquier dirección, incluso inter-centro.
Me dejo muchas ventajas en el tintero, así que intentaré sacarles brillo en otro artículo.
Imaginar es gratis, y temerse lo peor también. Así que lamento decir que vivo en el país del pelotazo y los chollos (España), donde la Administración del Estado gestiona de forma lamentable nuestro dinero en lo que a Internet se refiere. Muchas veces de forma fraudulenta en concursos amañados o saqueados por empresas a las que solo les interesa eso, el dinero fácil. Siento terminar así, pero es la triste realidad.
0
GONZO
26-05-2008
Google está consiguiendo desbancar a Microsoft Office y similares. La clave de su éxito es con Google Docs, una suite de aplicaciones online y offline que son gratuitas, no necesitan instalacion y funcionan cada vez mejor.
No solo supera a a su competencia, si no que está revolucionando el mundo de las aplicaciones de oficina con potentísimas posibilidades. Una de ellas acaba de publicarse hace muy poco, los formularios web.
Con formularios web puedes configurar fácilmente un formulario web público, que al rellenarse añade en una fila en un excel hoja de calculo. Esta característica está en sus inicios, ya que tendrá casi infinitas posibilidades.
Un ejemplo de su uso, que desde ayer estamos usando formalmente en Blogs Teoriza, es el formulario para ser aspirantes a bloggers (el cual hemos reabierto temporalmente). Puedes verlo aquí:
Inscripción de aspirantes a blogger
Ventajas:
- Fácil: rapido de configurar, solo con clicks de raton, me ha ahorrado unas cuantas horas de desarrollo de PHP+MySQL.
- Seguro: los datos quedan custodiados en los servidores de Google, que son de los más seguros del mundo. Esto me deja más tranquilo y seguro que a los aspirantes también, ya que el tratamiento de información personal me lo tomo muy en serio.
- Eficiente: el tratamiento de datos es completísimo, en una hoja de calculo fácilmente visible y organizable. Además se suman todas las potentes posibilidades que ofrece Google, permisos de lectura, publicación, gestión de usuarios, edición colaborativa, gráficos, puntos geográficos... casi todas las tecnologías de Google están disponibles.
Captura:

0
GONZO
21-05-2008
Voy a explicar un método para detectar intrusos en tu red WiFi, es decir, conexiones a tu router no deseadas como por ejemplo un vecino.
Pero antes quiero matizar dos puntos clave:
- Mi opinión: se recomienda pedir permiso antes de usar una red WiFi, pero pienso que si es ético usar la red de un vecino si está abierta (al fin y al cabo sus microondas están invadiendo tu hogar), siempre y cuando no se usen demasiados recursos. Es decir, si se utiliza un programa P2P o se hace alguna descarga pesada, aunque solo sean 20 minutos, en mi opinión se está abusando y personalmente tomaría medidas (encriptar el router por ejemplo).
- Por experiencia: normalmente las sospechas de robo de Internet son equivocadas. Se debe tener en cuenta que hay muchas causas que pueden empeorar nuestra conexión. Algunos ejemplos: routers y firewalls internos de nuestro ISP que filtran nuestro tráfico, malware que consume conexión, servidor web lento o caído... y así decenas!
Encontrar posibles intrusos conectados a tu router WiFi:
Nivel básico. Pasos para acceder al control de tu router y ahí ver el listado de IPs asignadas a conexiones.
- Acceder a http://192.168.1.1 con el navegador. (esta dirección IP suele ser la de tu router, en extraños casos puede ser distinta)
- Introducir usuario y contraseña. Está inscrito debajo de tu router, en caso contrario es una genérica como: admin:admin, admin:1234.
- Buscar las opciones DHCP. Este punto es subjetivo ya que cada router tiene su propio panel, pero no es muy dificil encontrarlo. No está de más ver todas las opciones y así conocer un poco más tu router. El DHCP es un servicio que asigna automáticamente IPs a cada equipo que se conecte, simplificando la configuración de una red local (LAN).
- Cuando hayas encontrado la lista de IPs DHCP verás algo similar a esto:

- Ahora solo hay que identificar cada una de las IPs y por descarte sabrás si hay intrusos. Hay que tener en cuenta que las consolas actuales suelen conectarse al router. En este caso de ejemplo se pueden ver dos portátiles (gizm y gnzp) y Wii que es mi consola. Y sus respectivas direcciones IP, las MAC es un código similar a la IP más difícil de modificar.
- Comprobar si está en este momento conectado el posible intruso con un ping a su IP. Supongamos que no sé quien es "gnzp", para asegurarme de que está conectado ahora mismo debo acceder a la consola de MS-DOS (símbolo de sistema) y escribir simplemente ping 192.168.1.4 en este caso. Si responde, está conectado.
Mi consejo para estos casos es simplemente poner contraseña al router y así curarnos en salud. Pero también se debe tener en cuenta que el protocolo de encriptación WEP no es muy seguro, será fácil de
hackear crackear por un experimentado usuario.
En este caso extremo la situación puede ser muy hostil, ya que puede perjudicar notablemente a tu conexión. Dejar un comentario al respecto, intentaré echaros una mano.
Soluciones para proteger tu WiFi:
- Encriptar con WPA2. Dicen que es muy muy seguro.
- Encriptar mediante WEP, esto consiste en crear una clave aleatoria de 64 bits o más desde el panel de tu router. Se recomienda encriptar a 128 bits o más
- Excluir conexiones exceptuando una lista blanca de direcciones MAC. Muy seguro.
- Desactivar el WiFi y usar el cable de red RJ45 ;) 100% seguro, garantizado.
13
GONZO
18-05-2008
He programado en un rato, como pretexto para escribir este artículo, una gráfica de la evolución año tras año de la creación de Redes de Blogs.
La primera red de blogs en Español fue Weblogs SL en 2004 (ver matizaciones al final). Obviamente el año 2008 está incompleto (queda un 75% del año), pero queda en evidencia el tremendo crecimiento del año pasado, 2007.

Los matices, en primer lugar he de decir que he estudiado la fecha de creación de cada red. Una a una, las 75 que hasta hoy existen.
Para mostrar un dato fiel a la historia (si, en Internet lo ocurrido en el 2004 ya es historia) he tomado el año en el que se formó cada red como tal, y no la fecha en la que empezó el primer blog.
Por ejemplo en Blogs Teoriza comenzamos con este mismo blog allá por el 2004, pero no fue hasta el 2005 cuando tomamos la determinación de formar lo que hoy es.
De igual manera ocurre con Hipertextual, ALT1040 empezó en el 98 pero son red desde 2005. (hay algunos casos más)
6
GONZO
18-04-2008
◄ Página anterior