it-swarm-es.com

CAPTCHA en dispositivos móviles: ¿cuáles son las alternativas?

Desde una perspectiva UX, los CAPTCHA son malos, malos, malos.

Pero digamos que tenemos esto como un requisito. Y es para una aplicación híbrida (aplicación compilada, pero construida sobre una plataforma HTML5).

Estoy tratando de averiguarlo:

  • ¿Es el tráfico de bot de un iPhone (o Android) realmente un problema? (o - mi teoría - ¿es este un requisito de retención obsoleto que ha sido cortado y pegado en la técnica documentos de requisitos desde 1998?)
  • Si es así, ¿hay mejores alternativas que se centren en los dispositivos móviles en lugar de otro CAPTCHA molesto?
111
DA01

Con respecto a su pregunta de si un bot realmente puede ir y enviar un formulario automáticamente, esto es lo que encontré en na respuesta en Stack Overflow .

Es relativamente más difícil automatizar el envío de datos dentro de las aplicaciones nativas. Esto se debe al hecho de que no puede simplemente escribir un script automatizado para descubrir elementos dentro del código fuente y luego imitar el envío del formulario. Además, deberá (comprar e) instalar la aplicación (en un dispositivo físico o en un simulador).

Dicho esto, uno de los comentarios sugiere que el envío de formularios es mucho más fácil en dispositivos móviles.

Es mucho más fácil hacerlo para una aplicación móvil, ya que generalmente hablan con una REST API (o alguna otra API bien definida), ni siquiera necesita un raspador.

Entonces, con respecto a su pregunta I todavía no tengo una respuesta definitiva sobre si se necesitan CAPTCHA.

Dicho esto, con respecto a los CAPTCHA para dispositivos móviles, se han sugerido varios enfoques interesantes.

  • El control deslizante CAPTCHA : Luke Wroblewski sugiere utilizar un control deslizante CAPTCHA para involucrar la interacción humana y evitar el envío automático de contenido. Para citar el artículo :

    En lugar de las cadenas de texto distorsionadas que caracterizan a los CAPTCHA más modernos (arriba), el formulario de registro en They Make Apps utiliza un control deslizante que le pide a la gente que: "nos muestre su lado humano; deslice el cursor hacia el final de la línea para crear su cuenta." Al mover el control deslizante hacia la derecha, se envía el formulario por completo y se activa la validación de errores, como lo haría un botón Enviar estándar.

The slider CAPTCHA

Si bien la opción anterior es una solución basada en la web, la interacción de deslizamiento fácil encajaría en el paradigma móvil y también encajaría en el diseño.

  • Otra opción es utilizar el reconocimiento de imágenes para vencer el envío automático de formularios . Esto se escalaría dentro del diseño de la aplicación y también sería amigable ya que el usuario puede hacer clic y seleccionar la opción correcta. Un ejemplo de esto se da en este enlace .

Image recognition CAPTCHA

  • MotionCAPTCHA: Otra opción que encontré requiere que el usuario rastree una ruta en la pantalla para completar el CAPTCHA. Para citar el artículo:

    MotionCAPTCHA es un complemento jQuery CAPTCHA basado en HTML5 Canvas. Se requiere que los usuarios dibujen la forma que ven en el lienzo para enviar un formulario. Podría ser una excelente alternativa a los captchas móviles. Los usuarios móviles seguramente apreciarán que no tienen que ingresar esos pequeños números.

MotionCAPTCHA

  • Ring CAPTCHA : Este es uno interesante que requiere que proporciones un número de teléfono para validar tu envío y envía un mensaje de texto o le llama para proporcionar un código PIN para la validación.

Ring CAPTCHA

  • NuCaptcha : NuCaptcha es otra opción que utiliza el modelo tradicional CAPTCHA pero está optimizado para dispositivos móviles. Para citar esto TechCrunch artículo:

    La versión móvil de NuCaptcha incluye la misma simplicidad que la versión web. Pero el nuevo Captchas móvil optimizado proporciona una experiencia de usuario consistente en múltiples dispositivos. Por ejemplo, cuando un usuario hace clic en una pantalla táctil móvil para resolver un Captcha, se ajustará perfectamente en el espacio dejado por el teclado para que el Captcha pueda completarse rápida y fácilmente. NuCaptcha no requiere Flash ni JavaScript; y la compañía espera lanzar la versión móvil HTML5 de su tecnología Captcha a principios del cuarto trimestre de 2011.

NuCaptcha

Dicho esto, ninguna de estas opciones evitaría que un ser humano a quien se le paga por romper el CAPTCHA.

98
Mervin Johnsingh

Snapchat recientemente agregó reconocimiento de imagen:
( http://venturebeat.com/2014/01/22/snapchat-find-the-ghost/ )

enter image description here


Nota:
Como la mayoría de los captchas, esto también es rompible.
Pero hasta que su aplicación se convierta en un objetivo popular, esta es una buena alternativa ;-)

32

En lugar de pedirle al usuario que responda una pregunta o elija una imagen correcta o ingrese algo, otra opción es simplemente eliminar algo de un campo de texto normal.

enter image description here

Desde una perspectiva de implementación al menos, ¡no podría ser más fácil!

19
Roger Attrill

NO use la mayoría de los ejemplos en la respuesta votada, excluyen completamente a las personas con una amplia gama de impedimentos (el reconocimiento de imágenes es inútil si es ciego, la asociación metafórica es inútil si es autista, las preguntas de matemáticas son inútiles si usted son discalculados, etc., etc.) y tampoco hacen nada para eliminar el problema de los humanos que trabajan en granjas de captcha.

Básicamente, si su verificación requiere un tipo diferente de habilidad que su contenido, está excluyendo innecesariamente a las personas.

Hay otros métodos disponibles que no tienen esta desventaja, como askismet, Honey pot, o si tiene algo por lo que la gente realmente está dispuesta a saltar por los aros, SMS verificación.

Si está absolutamente decidido a descargar la responsabilidad de corregir los problemas de seguridad de su sitio a sus usuarios, al menos ofrézcales una opción, y por elección no me refiero a las abismales versiones de 'audio' como se ve en reCAPTCHA (reCAPTCHA parece haber pasado por alto) el hecho de que la razón más común de discapacidad visual, la vejez, a menudo también resulta en discapacidad auditiva). Por lo tanto, proporcione múltiples CAPTCHA y deje que las personas elijan si prefieren responder una pregunta simple, reconocer una imagen, etc.

O, alternativamente, podría, como lo hacen algunas compañías, simplemente aceptar los problemas de seguridad como su propio problema, prescindir de los intentos de protección del lado del usuario y simplemente aceptar las implicaciones.

15
Ian Hamilton

¿El tráfico de bots desde un iPhone (o Android) es realmente un problema?

El problema no es tanto 'desde un iPhone', sino más bien que la API de la que estás hablando también necesita protección. En el nivel de IP subyacente, no hay mucho que pueda hacer para demostrar qué es un dispositivo remoto, para HTTP, en realidad, son solo los encabezados o los datos de formulario, que un Bot puede generar fácilmente. Es decir, no me importa cuál sea tu UX, atacaré tu API directamente.

Dado que está preguntando específicamente sobre aplicaciones nativas, un enfoque más parecido a un programador para su problema no involucraría al usuario, sino que cifraría su carga útil utilizando un esquema de clave pública/privada antes de la transmisión. Como solo su aplicación tiene la clave, los bots que atacan su API directamente se ven frustrados. Tenga en cuenta que realmente me refiero a cifrar su carga útil antes de enviarla, no solo usando SSL (que no es realmente autenticar la aplicación, sino proteger los datos en vuelo).

Por supuesto, el problema con la incrustación de claves en las aplicaciones es que las aplicaciones también pueden tener ingeniería inversa.

En nuestras aplicaciones de menor seguridad tenemos una tabla de algunos cientos de palabras clave y se requieren aplicaciones (que a menudo son híbridos html) para transmitir varias de ellas con solicitudes de formulario http. Los que deben seleccionarse se basan en la fecha actual utilizando un algoritmo que tanto el cliente como el servidor conocen. Luego se transmite usando ssl. No es perfecto, abierto a la ingeniería inversa de la aplicación, pero lo suficientemente simple como para implementarlo.

Para aplicaciones de mayor seguridad, almacenamos claves específicas del dispositivo en cada dispositivo en lugar de una tabla común, y el servidor vigila/rastrea cuidadosamente cada uso de la clave. Por supuesto, esto no es práctico para aplicaciones entregadas en masa.

11
rlb

Podrías usar los campos Honey pot.

Proporcionan un campo dentro del formulario que está oculto para el usuario pero diseñado para ser notado y completado por cualquier bot dado.

Pueden ser tan simples como un campo llamado 'phone_number' oculto con css. El bot no procesa el CSS y ve el campo, pero el usuario no.

Esto funcionaría tanto en computadoras de escritorio como en dispositivos móviles y ha estado en circulación durante bastantes años.

Algunos detalles más, incluidos los comentarios que cubren las preocupaciones de accesibilidad: http://haacked.com/archive/2007/09/11/honeypot-captcha.aspx/

Aquí, Smashing Magazine describe esto con más detalle y trata otros métodos de Captcha:

http://coding.smashingmagazine.com/2011/03/04/in-search-of-the-perfect-captcha/

También citan el inicio de sesión social, el reconocimiento de imágenes y el reconocimiento de amigos como otros métodos más modernos, todos los cuales podrían implementarse muy bien en dispositivos móviles, y también muestran en su encuesta que los honeypots son la siguiente opción más popular para sus lectores después de Captchas de formularios web tradicionales

PD: un campo de Honey Pot es en realidad también un CAPTCHA, que significa 'Prueba de Turing pública completamente automatizada'. Aprender sobre este principio puede ayudar con una comprensión general de las ideas subyacentes.

http://en.wikipedia.org/wiki/CAPTCHA

8
Toni Leigh

Tarro de miel

Como mencionó HTML5, soy un gran admirador del enfoque honeypot. La mayoría de sus usuarios ni siquiera sabrán que está allí. Utilice los cuatro campos de entrada siguientes que debe validar en el lado del servidor al enviar:

  • Requerido, oculto por CSS
  • Debe ser nulo, oculto por CSS
  • Requerido, oculto por JavaScript
  • Debe ser nulo, oculto por JavaScript

Los campos obligatorios ya deben completarse. Los campos que deben ser nulos deben llamarse creativamente "Número de contacto" o algo que un bot probablemente suponga que es un campo genuino. ¡Solo recuerde no usar nombres de entrada que ya estén en uso!

Si el usuario tiene CSS o JavaScript deshabilitado, debe explicar qué se requiere para que el envío sea exitoso, como "Deje este campo solo" o "Deje este campo en blanco".

Nota: Estos deben estar fuera de la vista pero no ocultos del navegador por completo, de lo contrario, ni siquiera se registrarán. Prueba a fondo!

8
rybo111

Personalmente, soy un gran defensor de una ecuación matemática simple para un captcha. Por ejemplo, tener un conjunto de campos al final de su formulario:

What is 1+5?
[_____________]

Haz que los dos números se generen al azar. He visto una disminución significativa en el envío de formularios de spam/bot con este método. Parece que estos bots no tienen la programación para reconocer y resolver estas ecuaciones. Quizás porque están más acostumbrados/programados para resolver captchas basados ​​en Word.

Además de una experiencia de usuario prospectiva, estas son las formas más fáciles de captchas que he encontrado. Simple y no difícil. Y son fáciles de codificar/escalar (diseños receptivos) en HTML/CSS.

3
Fillip Peyton

No soy un desarrollador, así que no estoy seguro de las preocupaciones de seguridad (si las hay), pero ¿qué pasa si el usuario responde a través de la entrada táctil? Por ejemplo, puede hacer que el usuario toque un cuadro tres veces, o tal vez simplemente deslice el dedo. Incluso podría hacer que el usuario dibuje una forma: http://www.josscrowcroft.com/projects/motioncaptcha-jquery-plugin/

2
Brian

¿Necesario?

Para su primer punto, no puedo creer que haya mucho tráfico 'bot' a una URL que solo se declara dentro del código HTML incrustado en una aplicación. El objetivo principal de los spambots es plantar enlaces a otros sitios, y no tiene mucho sentido hacerlo en páginas que no están indexadas, y no tiene ningún sentido en los formularios que no afectan el contenido.

Si bien es posible desmontar la aplicación o rastrear las solicitudes, sería necesario que un bot creado a partir de la información. Si el objetivo fuera simplemente saturar su servidor con tráfico, enviar datos CAPTCHA incorrectos con la suficiente frecuencia sería suficiente. Sin saber lo que busca proteger, no puedo decir si es necesario un CAPTCHA.

Alternativa centrada en el móvil

Como el único propósito conocido del CAPTCHA es cumplir con una solicitud robótica de los redactores de especificaciones, un CAPTCHA suficientemente infalible sería la siguiente instrucción de texto:

Please hold your device in your left hand.

Como todos sabemos, las computadoras no tienen manos y siempre siguen las instrucciones, por lo que, cuando se enfrenten a esto, probablemente les gustará la autodestrucción o algo así. Es lógico.

(Esto se centra en los dispositivos móviles, ya que los equipos de escritorio suelen ser demasiado pesados ​​para sostenerlos en una mano).

Este texto realmente marca todos los cuadros clave para un CAPTCHA alternativo:

  • Retrasa la finalización del formulario por todos los humanos
  • Aliena a los discapacitados
  • No hace ninguna diferencia en los campos de formulario enviados, por lo que no requiere programación del lado del servidor
  • Es fácilmente burlado por cualquier persona con intenciones maliciosas genuinas

al igual que otras respuestas aquí, como aquella en la que tienes problemas porque las computadoras no tienen dedos.

Una versión mejorada de esto sería colocar la Palabra left en una imagen borrosa de una fuente particularmente difícil de leer en una combinación de colores que hará que la vista sea increíble, lo que logrará:

  • Arruina el diseño
2
Paul Gregory

Puede probar NoMoreCaptchas.com para autenticar al usuario. Está hecho con un nuevo tipo de tecnología llamada BioChronometrics. Todo esto es pasivo para el usuario en función del comportamiento del usuario.

1
jmar42

Un muy enfoque simple que funcionó para mí en producción fue agregar una casilla de verificación campo que estaba oculto a través de la definición de estilo (CSS) y no a través del atributo type = "hidden".

Si el campo se marca al enviar, la probabilidad de que un robot lo revise es alta, si no un usuario envió el formulario.

Esta solución no es 100% segura, pero es muy fácil de implementar, efectiva y más importante: ¡fácil de usar!

1
Spidi

¿Qué tal generar dos números aleatorios entre 0 y 10 y preguntarle al usuario cuál es la suma de esos números?.

0
Prasanth

En primer lugar, para asegurar su API, agregue una nueva regla de entrada a su firewall que solo permita conexiones a la dirección IP y al puerto de su API desde la dirección IP de su servidor web/rango de IP de la red local (si los desarrolladores u otras máquinas necesitan acceso), incluso si están alojados en la misma máquina. Por supuesto, esto significa que debe asignar un puerto único a su API, pero no debería ser un problema si su API no es pública. Esto evitará que cualquier bot realice solicitudes directamente a su API.

En segundo lugar, agregue la verificación de Facebook o Google a su proceso de registro. Esto significa que se beneficiará automáticamente de las nuevas soluciones de Captcha que implementen en el futuro. Y es genial para los usuarios porque no tendrán que recordar otra contraseña.

Las captchas son realmente dolorosas y difíciles de leer a veces, y a juzgar por los comentarios anteriores, definitivamente no vale la pena el esfuerzo.

0
Tinus Neethling

Una de las opciones puede ser pedirle al usuario que ingrese el número móvil actual, enviando un OTP al número mencionado y leyéndolo automáticamente ( el usuario no debería poder ingresar el mismo manualmente ).

0
  1. Intenta tener OTP. Solicite al usuario que ingrese su número de teléfono móvil.
  2. Pregunta matemática simple.
  3. Tener una casilla de verificación que indique que soy humano
  4. Encuentra uno extraño
  5. The Trivia Puzzle - Por ejemplo: ¿de qué color es el cielo?
0
NB4

Cuando la tecnología involucrada en el reconocimiento de voz ha evolucionado a un nivel aceptable, sería una alternativa real a la entrada táctil CAPTCHA. Lamentablemente, todavía no estamos allí, si leemos los resultados de Kapil Chalil Madathils et. Alabama. artículo Evaluación de la usabilidad de CAPTCHA en un dispositivo móvil con entrada de voz y táctil . Concluyen que ...

Los resultados indican que los usuarios pueden no estar satisfechos completando CAPTCHA por voz, al menos cuando usan el software de reconocimiento de voz Dragon Mobile SDK actual. Por cierto, Siri - la aplicación de reconocimiento de voz y asistente personal desarrollada para el iPhone - no estaba disponible para su uso en el momento de este estudio. Nuestros resultados también sugieren que Confident Touch es un CAPTCHA efectivo y utilizable para dispositivos móviles. Un beneficio adicional de este CAPTCHA es su versión de ahorro de espacio que ocupa menos espacio en una página web y pantalla móvil. En general, nuestros resultados generalmente respaldan el uso de CAPTCHA basados ​​en imágenes cuando esto es factible. Algunos participantes en nuestro estudio parecía frustrado al intentar reconocer los caracteres distorsionados en CAPTCHA de Google, y algunos incluso mencionaron su frustración con CAPTCHA similares basados ​​en texto encontrados en línea. Sin embargo, los puntajes en nuestras medidas de usabilidad para CAPTCHA de Google fueron razonablemente buenos.

Pero las cosas se mueven rápidamente en este mundo, y el hecho de que Siri no fue probado) trae esperanza para el futuro del reconocimiento de voz CAPTCHA. Hasta entonces, CAPTCHA basado en imágenes es la mejor opción.

0
Benny Skogberg

¿Es el tráfico de bot desde un iPhone (o Android) realmente un problema?

Sí, y de todos modos sus servidores no pueden disociar el tráfico de una PC y el tráfico de un teléfono inteligente si el spammer ha hecho las cosas correctamente.

Si es así, ¿hay mejores alternativas que se centren en los dispositivos móviles en lugar de otro CAPTCHA molesto?

No hay alternativa al captcha.

Cosas como el concepto que estaba vinculado en otra respuesta son totalmente incomparables a un captcha. Captcha es para ese tipo de solución, ya que el hash de contraseña fuerte es para la ofuscación. Cualquier persona con algunas habilidades de ingeniería inversa podrá romperlo.

Captcha (visual o de audio) depende de la potencia limitada de las computadoras hoy en día y, por lo tanto, de sus capacidades limitadas en reconocimiento de imagen o sonido. Otras soluciones simplemente se basan en el hecho de que el spammer puede ser demasiado estúpido para hacer un spam correcto.

0
Marin