¿Existe una verdadera alternativa al uso de imágenes CAPTCHA?

18

La seguridad se trata de equilibrar costos y riesgos, nada es imposible de superar, especialmente las implementaciones típicas de CAPTCHA, pero agregan algo que ningún otro sistema parece ofrecer.

He estado leyendo acerca de estos CAPTCHA por un tiempo y posibles alternativas ... (así que no me remita a otros sitios / respuestas a menos que realmente respondan la siguiente pregunta).

No tengo experiencia alguna, por lo que para mí es difícil estimar los costos y los riesgos asociados con esta decisión: ¿debo emplear CAPTCHAs (estoy pensando en JCaptcha o reCaptcha), o es suficiente una combinación de otras técnicas?

Tengo que completar un formulario de registro, pero no quiero que mi tabla de usuarios se llene de basura. El campo Honeypot es fácil de implementar, pero es muy fácil de evitar, un simple control de seguridad (¿de qué color es el cielo?) Funciona bien contra los ataques automáticos, pero cualquier jugador de 15 años puede crear un ataque específico que destruya mi tabla de usuarios ... javascript para verificar el tiempo que se tarda en llenar el formulario es inseguro y con una simple publicación en mi servidor interrumpida. Básicamente, no he encontrado nada que funcione contra un ataque dirigido ligeramente inteligente, excepto un CAPTCHA típico, por lo que no me arrastran ... Entonces, la verdadera pregunta es, ¿estoy en un riesgo significativo de ser atacado con un ataque dirigido? Prefiero perder el 10% de mis usuarios a estos CAPTCHA o ¿hay alguna alternativa que no le cobre tanto al usuario?

EDITAR: Muchas gracias por sus respuestas, ciertamente me ha ayudado a aclarar ideas, especialmente el enlace a OWASP sobre cómo evitar ataques de fuerza bruta (obtuve mi +1, pero no acepté No me pareció una solución, pero sí ayuda a encontrar una. Si cree que debería aceptarlo porque me parece que es la mejor respuesta hasta el momento, coméntelo, ya que es posible que esté malinterpretando el funcionamiento del sitio. .

Por otro lado, Asirra es bastante fácil y divertido, y mucho mejor que los CAPTCHA tradicionales, sin duda lo recomendaría sobre otros servicios. El rompecabezas es mucho más divertido, e incluso si fallas, solo fallarías una vez ... lástima:

  

Asirra todavía está en pruebas beta; el servicio y su API pueden ser inestables.

Edición final: En caso de que se encuentre útil, estos son los pasos que he tomado para garantizar que los CAPTCHA no molesten a los usuarios, pero me siento seguro ante los bots.

  • campo honeypot (tan fácil de implementar que no me costó nada, aunque no me siento muy seguro con él)
  • enlace de verificación de correo electrónico (o acceso OAuth) ya que siempre estaba en mis planes para agregarlo. solo los usuarios validados se migran a mi tabla de usuarios, el resto permanece como registrado.
  • control de tiempo: sello de tiempo del servidor con la firma cargada a través de ajax, el usuario debe tomar al menos 5 segundos para completar el formulario antes de enviarlo (la contraseña) o se lo descartará.
  • página de confirmación (con el token firmado por el servidor para garantizar que la solicitud haya pasado primero por el servidor) después del registro que advierte al usuario de que se necesita un correo electrónico de confirmación y que tiene un botón para enviar el correo electrónico de confirmación. (En cuyo caso los datos también están registrados en la base de datos)

Esto no detendrá a un atacante muy dedicado, pero espero que no quieran pasar horas y horas sintonizando su ataque para no ganar nada, simplemente molestándome.

    
pregunta Daren 23.01.2013 - 13:17
fuente

12 respuestas

7

Google ha desarrollado una nueva técnica llamada reCaptcha que es más simple y, al parecer, más confiable que la existente soluciones

Consiste en una única casilla de verificación, que cuando se hace clic, envía metadatos a los servidores de Google, que a su vez utiliza alguna AI patentada para determinar si el clic se originó dentro de un script o un humano.

Veaesto venture beat article para obtener información adicional.

    
respondido por el random65537 29.12.2014 - 17:48
fuente
17

Pensando fuera de la caja ...

En la mayoría de los casos, esto se aplica: el objetivo comercial de CAPTCHA es identificar que la persona que accede a una página es un ser humano. La razón subyacente para la necesidad de saber que es un ser humano es evitar el envío automático de formularios, y la razón principal para evitarlo es prevenir ataques de fuerza bruta.

Entonces, el propósito final de un CAPTCHA en la mayoría de los casos es como una herramienta para prevenir ataques de fuerza bruta.

If esta es la razón subyacente para querer usar un Captcha, sigue leyendo. Tenga en cuenta que existen otras razones para usar CAPTCHA, y estas sugerencias pueden ser aplicables o no.

Dicho esto, hay alternativas a CAPTCHA para prevenir ataques de fuerza bruta. El sitio web de OWASP enumera algunos con los pros y los contras de cada enfoque :

1. Bloqueo de cuentas

La forma más obvia de bloquear los ataques de fuerza bruta es simplemente bloquear las cuentas después de un número definido de intentos de contraseña incorrecta. Los bloqueos de cuenta pueden durar una duración específica, como una hora, o las cuentas podrían permanecer bloqueadas hasta que un administrador las desbloquee manualmente. Sin embargo, el bloqueo de la cuenta no siempre es la mejor solución, ya que alguien podría fácilmente abusar de la medida de seguridad y bloquear cientos de cuentas de usuario. De hecho, algunos sitios web experimentan tantos ataques que no pueden aplicar una política de bloqueo porque constantemente desbloquearían las cuentas de los clientes.

Los problemas con los bloqueos de cuenta son:

  • Un atacante puede provocar una denegación de servicio (DoS) al bloquear un gran número de cuentas.
  • Como no puede bloquear una cuenta que no existe, solo se bloquearán los nombres de cuenta válidos. Un atacante podría usar este hecho para recopilar nombres de usuario del sitio, dependiendo de las respuestas de error.
  • Un atacante puede causar un desvío al bloquear muchas cuentas e inundar la mesa de ayuda con llamadas de soporte.
  • Un atacante puede bloquear continuamente la misma cuenta, incluso segundos después de que un administrador la desbloquee, deshabilitando la cuenta de manera efectiva.
  • El bloqueo de la cuenta no es efectivo contra ataques lentos que intentan solo unas pocas contraseñas cada hora.
  • El bloqueo de la cuenta no es efectivo contra ataques que intentan una contraseña contra una gran lista de nombres de usuarios.
  • El bloqueo de la cuenta no es efectivo si el atacante está usando una lista combinada de nombre de usuario / contraseña y adivina correctamente en el primer par de intentos.
  • Las cuentas poderosas, como las cuentas de administrador, a menudo omiten la política de bloqueo, pero estas son las cuentas más deseables para atacar. Algunos sistemas bloquean las cuentas de administrador solo en los inicios de sesión basados en la red.
  • Incluso una vez que bloquee una cuenta, el ataque puede continuar, consumiendo valiosos recursos humanos y de computadora.

2. Inyecte pausas aleatorias al verificar una contraseña.

Agregar una pausa de unos pocos segundos puede ralentizar enormemente un ataque de fuerza bruta, pero no molestará a la mayoría de los usuarios legítimos cuando inicien sesión en sus cuentas.

3. Bloquee una dirección IP con múltiples inicios de sesión fallidos

4. Diseñe su sitio web para que no utilice un comportamiento predecible para contraseñas fallidas.

En cuanto a esto:

  

Tengo que completar un formulario de registro, pero no quiero que mi usuario   Mesa para rellenar con basura.

En su caso particular, me gustaría ir con un enfoque de dos niveles:

Primero, utilizaría la opción "Insertar pausa aleatoria" solo para limitar la cantidad de envíos falsos que se podrían ingresar en primer lugar.

Para lidiar con intentos de registro potencialmente falsos, use un mecanismo de verificación. Regístrelos pero no como activos, envíeles un correo electrónico con un enlace de "Activación". Para aquellos que se activan, al menos sabes que tienes una dirección de correo electrónico válida de alguien que realmente quiere registrarse. Luego, implemente una tarea programada que elimine automáticamente las cuentas no activadas después de las horas X o X .

    
respondido por el David Stratton 23.01.2013 - 15:35
fuente
8

Una alternativa a un captcha clásico es Microsoft Asirra (que considero bastante interesante). En lugar de leer texto revuelto, debe seleccionar los gatos de las imágenes que contienen gatos o perros. Tienen más de 3 millones de fotos, por lo que debe estar seguro contra los atacantes más decididos. No es muy probable que alguien indexe todas estas imágenes solo para llenar su base de datos con basura, y además, la posibilidad de no poder seleccionar a los gatos desde el primer intento es baja.

ACTUALIZACIÓN: Google puede resolver Cat Captchas.

    
respondido por el Dinu S 23.01.2013 - 15:15
fuente
8

Captcha no es una solución en absoluto!

¡Hay un asesino de captcha general que podría pasar todos los captchas existentes e incluso que aún no se han inventado!

Se basa en ingeniería social :

Simple y fácil, un estudiante spammer de 15 años podría construir esto:

  1. Cree un sitio trivial gratuito puzzle captcha game , que parezca inofensivo:
    1. Pequeño juego divertido, jugando con muchos captcha para acceder a más nivel de juego
    2. ... deja a los usuarios jugando con captchas ...
  2. Mediante un simple script de servidor, cuando se solicita un captcha, el servidor va al sitio target para obtener el captcha del objetivo, y luego los reenvía a los players de El sitio captcha game .
    1. Los jugadores intentarán responder a los captchas lo más rápido posible para alcanzar el segundo nivel de juego.
    2. El servidor simplemente debe reenviar la comprobación y las respuestas de captcha entre el sitio objetivo (la víctima real) y los gammers (complicidad no deseada: víctima colateral)
  3. Con cada captcha pasado con éxito, el servidor podría crear una cuenta de spammer para apuntar ...

Una red de asistencia humana ... para bots.

Donde los robots podrían utilizar la ayuda de las personas para hacer su (mal) trabajo.

Agradecimientos:

¡Muchas gracias a @ GennadyVanin - ГеннадийВанин por la idea de atractivo juego de rompecabezas gratuito captcha ! La primera idea fue crear un sitio de creador de porno o de monney apenas legal y usar captchas para validar nuevas cuentas.

Esta idea de captcha game puzzle add

  • sitio trivial (no es legal)
  • más de un captha será resuelto por un usuario.

Alternativas

Hay varias formas de evitar el spam, desde herramientas bayesianas hasta la confirmación de correo basada en PGP.

Solo una muestra: podría usar bogofilter con políticas progresivas:

  1. Al principio, todas las publicaciones en su blog se enviarán a su entorno bogofiltro ...

  2. La primera vez, todas las publicaciones deben validarse manualmente ( lista gris ), mientras se enseña bogofilter.

  3. Una vez revisados los suficientes spam y ham , su bogofilter podrá

    1. validar automáticamente una gran cantidad de mensajes
    2. rechazar automáticamente y eficientemente una gran cantidad de mensajes
    3. luego lista gris alguna nueva publicación no bien clasificada ... que se validará manualmente, enseñando bogofilter otra vez ... y otra vez ... (ver mi comentario ;)

Por supuesto, esto requerirá una supervisión activa, no perfecta en absoluto, en algún momento algunos ajustes de operación y recuperación posterior podrían ser útiles ...

Conclusión

En multa,

  • Captcha consume mucho tiempo,
  • siempre se convertirá en hackeable ,
  • puede estar confundido y
  • ¡no agregue ganancia a la belleza de una página de bienvenida!
respondido por el F. Hauri 24.01.2013 - 04:10
fuente
2

una alternativa a las imágenes son preguntas interpretables por humanos; pero esto podría incurrir en algún costo de desarrollo, estrategias que he visto:

  1. imágenes identificables por el usuario: probadas por un banco británico; pidieron a los usuarios que subieran fotos de personas que conocían e hicieron una elección múltiple con otras fotos al azar, "¿Quién es tu tía?". Funcionó bien hasta que fue totalmente abusado. :-) tenga en cuenta que esto es realmente solo una estrategia de "contraseña alternativa" y por lo tanto tiene los mismos problemas.
  2. preguntas aritméticas: "¿qué es 10 dividido por 2?" con algo de entropía sobre el formato y los mecanismos utilizados para formular la oración, p. ej. "¿Qué es diez dividido por 2?"
  3. rompecabezas. Preguntas de opción múltiple que describen una foto. p.ej. una casa azul en un campo verde.

Tenga en cuenta que NINGUNO de estos aprobará la legislación sobre discapacidad. Donde vivo (Reino Unido), el RNIB y su agencia de consultoría Foviance amenazarán a las grandes empresas por el uso de mecanismos que no cumplen con DDA. El gran problema al que siempre me he enfrentado es que la seguridad es tan fuerte como la más débil de las dos estrategias (si también proporciona un mecanismo compatible con DDA).

    
respondido por el Callum Wilson 23.01.2013 - 15:18
fuente
1

Los bots de spam ya son lo suficientemente inteligentes como para hacer búsquedas en Google, por lo que algo como preguntar el color del cielo es bastante ineficaz. Por lo general, cosas como problemas simples de matemáticas o imágenes con problemas de matemáticas pueden ser razonablemente efectivos. nuCaptcha es un captcha animado que es mucho más fácil de leer, aunque no estoy seguro de si se ha roto o no. Las listas negras de IP son bastante efectivas para reconocer a los spammers comunes y bloquearlos. También hay listas negras de dominio que buscan enlaces a sitios conocidos de spam por parte de los usuarios, así como también cuentas de correo electrónico no deseadas. Requerir que un usuario haga clic en un enlace que se le envía por correo electrónico también es útil, ya que obliga a que la dirección de correo electrónico sea legítima.

    
respondido por el AJ Henderson 23.01.2013 - 15:21
fuente
1

Estoy bastante seguro de que el proyecto Assira de Microsoft está muerto, o al menos ya no es compatible de forma activa. Hay otro enfoque similar llamado Confident CAPTCHA que es prácticamente lo mismo: a los usuarios se les pide que hagan clic en un par de imágenes para demostrar que son humanos. También tiene una opción de audio para personas con discapacidad visual, que Assira no tiene.

    
respondido por el Leo 24.01.2013 - 19:51
fuente
1

Huh, no pude encontrar ninguna pregunta.

El CAPTCHA no es sinónimo de protección antispam y NO hay bots de spam sin spammers humanos detrás . Spam es creado por humanos , a veces bot asistido , y solicitado por humanos. No hay spam creados por bots y ordenados y pagados por las máquinas. Esos se llaman virus .

En la raíz, protección contra spam es protección contra spammers , es decir, humanos. Y CAPTCHA , por definición, no es ni protección ni de humanos , es Prueba de Turing pública completamente automatizada para diferenciar a las computadoras y los humanos . Se puede utilizar como prevención contra la publicación asistida por bot.

Además, publicación asistida por bots no es sinónimo de spam. La mayoría de las redes sociales se basan en el intercambio asistido por bots de artículos, noticias, re-publicaciones y retweets por programa .

No habrá una solución para las preguntas nunca formuladas, sino solo insinuadas con términos nunca formulados (qué es spam, spammer, etc.).

Y es bastante ingenuo buscar una bala de plata universal una vez, para todo y para siempre contra los creadores de spam humanos.

    
respondido por el Gennady Vanin Геннадий Ванин 25.01.2013 - 06:45
fuente
1

Tal vez los rompecabezas de los clientes son una solución. La idea es permitir que el cliente realice una operación de computación intensiva que sea fácil de verificar por el servidor. La idea es aumentar gradualmente la complejidad de la operación.

Un hash unidireccional es una operación de este tipo que se puede utilizar. En el primer envío de un formulario, puede hacer que el cliente encuentre una palabra en la que la suma de comprobación md5 finalice con un carácter específico. Esto se puede encontrar razonablemente rápido y es incluso más rápido para que lo verifique el servidor. Si alguien intenta forzar la fuerza bruta de su servicio, necesita más caracteres coincidentes de la suma de control, lo que hace que el rompecabezas sea más difícil para el cliente.

marque enlace y enlace

    
respondido por el JoG 26.01.2013 - 20:52
fuente
1

Creo que el día CAPTCHA ha terminado. No puede ser seguro cuando hay sitios web que ofrecen resolver 1000 por 3 dólares en todo Google si hace una búsqueda. Se sabe ampliamente que muchos de los mensajes de spam en estos días son realizados por personas en países con economías emergentes en lugar de máquinas. Personalmente odio el CAPTCHA y uso el software llamado RUMOLA para leerlos y completarlos por mí y, aunque solo uso este software para hacer que los blogs sean menos frustrantes, simplemente demuestra que por un poco de dinero puedes superar todos los CAPTCHA ... Ps . Si se siente igual que yo con respecto a CAPTCHA, puede probar RUMOLA en skipinput.com

    
respondido por el ally 01.02.2013 - 18:13
fuente
0

Tengo una sugerencia de que dar una imagen al usuario es similar a la imagen captcha. Pero esa imagen contiene una expresión matemática simple como 55 + 12. El usuario desea ingresar la respuesta de esa expresión que 67 en este caso.

Para mejorar la seguridad, puedes crear imágenes de forma dinámica o puedes usar un conjunto de imágenes predefinidas.

    
respondido por el sujeesh 24.01.2013 - 06:28
fuente
0

Es posible que desee revisar "eres un humano". Me recuerda a lo que Asirra está tratando de hacer.

enlace

    
respondido por el JackWink 25.01.2013 - 07:22
fuente

Lea otras preguntas en las etiquetas