¿Un nuevo CAPTCHA usando oraciones?

8

Estaba pensando en cómo recaptcha se está volviendo más difícil cuando pensé en otra posible solución. Las imágenes no durarán para siempre, por lo que necesitaremos algo más algún día, como la lógica humana o la emoción. Google y otros están tratando de agrupar imágenes por categoría (encontrar la imagen que no pertenece) pero eso requiere una gran cantidad de imágenes y no funciona para los ciegos.

De todos modos, ¿qué pasaría si se reuniera una colección masiva de texto (libros de dominio público de cada idioma) y se le mostrara una oración al usuario con 1 (o 2) palabras que fueran un cuadro de selección? Solo las computadoras que sabían la gramática correcta del inglés / español / alemán podrían saber cuál de las palabras pertenecía a la oración.

¿Habría algún problema con este enfoque? Supongo que sería bastante fácil para cualquiera que conozca el idioma en que se muestra la sentencia para descubrir la respuesta más fácilmente que tratar de leer el texto reCAPTCHA. Además, almacenar una cantidad increíble de oraciones solo tomaría un par de gigabytes de espacio y no tomaría nada cerca del tiempo de CPU creando imágenes / tomas de audio. En otras palabras, cualquiera podría alojar su propio sistema de captcha con un impacto mínimo en el rendimiento del sistema.

¿Hay algún problema con este enfoque? Más específicamente, estoy buscando el principal problema con este enfoque.

migrado desde stackoverflow

Xeoncross
fuente
44
Intenté hacer uno de los que escuchaban el otro día porque estaba luchando con los visuales en algún momento. El sonido era completamente incomprensible. Todo se vuelve un poco tonto, ¿no?
Armand
2
O podría intentar administrar una prueba de Voight-Kampff como un captcha. Parece funcionar en replicantes ...
FrustratedWithFormsDesigner
44
Esto suena como un cómic de xkcd ... xkcd.com/810
Tyanna
1
Bueno, en primer lugar, no todo el mundo puede conocer un idioma perfectamente, y muchos usuarios pueden no ser hablantes nativos (por ejemplo, yo). Pero, lo más importante, no confiaría demasiado en la suposición de que todos los humanos están dotados de lógica . La experiencia me enseñó que, en ciertos casos, la lógica humana no es más que un mito ... Por lo tanto, es posible que termine filtrando a los humanos y dejando pasar a los robots ...
Lucius
2
No lo sé, pero he considerado seriamente comprar un software de captura de captcha solo para iniciar sesión legítimamente en algunos sitios. :)
davidhaskins

Respuestas:

7

Primero, te doy el Watson de IBM . Creo que la informática ha superado con creces el simple relleno de los problemas en blanco del lenguaje.

A continuación, le doy todos los correctores ortográficos / gramaticales implementados en el software. Determinar si una palabra es gramaticalmente correcta en una oración se resuelve en> 90% de los casos. Incluso me sacaré el cuello y diré que son mejores en alfabetización que la mayoría de los humanos que conozco.

No creo que su idea CAPTCHA funcione tan bien como espera ...

Dan McGrath
fuente
La ortografía y las gramáticas obedecen las reglas, que aunque sean oscuras, funcionan. Por otro lado, definitivamente también impulsaría la investigación en esa dirección ...
Matthieu M.
Suponiendo la alta tasa de uso correcto por parte de muchos correctores ortográficos y la probabilidad de adivinar las palabras restantes como Jeff mencionó, creo que esto reduciría en gran medida la efectividad del CAPTCHA. Creo que funcionaría bien para muchos sitios más pequeños, pero no a uno que a los spammers les importaría pasar un poco de tiempo intentando romper. Las computadoras ya hablan mejor lenguaje que los humanos, los correctores ortográficos lo demuestran.
Xeoncross
6

Veamos, ¿cuánto tiempo llevaría seleccionar siempre la primera opción y, finalmente, hacerlo bien?

JeffO
fuente
3
Ja, el caso base para mi propia respuesta de ingeniería excesiva. Pero sí, esta es la razón por la cual los CAPTCHA de opción múltiple son tontos.
Meredith L. Patterson
Ciertamente, un problema que debe abordarse. Sin embargo, por ahora, mis sitios emplean limitación de velocidad de IP y registro de fallas. A menos que el spammer tenga una red grande no relacionada (igual que un DoS distribuido), lo atraparía.
Xeoncross
¿Ni siquiera le darías a alguien 3 oportunidades?
JeffO
3? Estoy pensando más como 40 golpes en 30 minutos antes de prohibirlos.
Xeoncross
2
Suponga que una respuesta incorrecta le otorga una penalización de 10 minutos y una buena respuesta reduce la penalización en 5 minutos. Si su penalización es mayor que cero, ingresa al modo de penalización. El modo de penalización significa que la aplicación requiere que pases captcha antes de alcanzar cualquier funcionalidad. Un robot de fuerza bruta alcanzará unos pocos años de penalización en muy poco tiempo, mientras que el humano puede (con instrucciones claras) recuperarse del error inicial en dos pasos.
Jacek Prucia
4

Si está sacando oraciones de libros de dominio público, un bot no necesitaría saber nada sobre gramática. Simplemente necesitaría indexar esas mismas oraciones y hacer una búsqueda para encontrar qué palabra usa la oración real. Y eso supone que usted resuelve razonablemente el problema que Jeff O sugirió donde puede eludir el problema adivinando la primera opción cada vez.

Además, muchas de las oraciones en el universo de los libros de dominio público serían inapropiadas para este tipo de esfuerzo. Muchos serían ambiguos sin contexto. Muchos contendrían contenido objetable (imagine presentar una oración aleatoria de Huckleberry Finn). Por lo tanto, habría que invertir un esfuerzo decente para llegar a un conjunto de oraciones que no sean ofensivas y no sean ambiguas. Si acepta que algunas oraciones serán ambiguas, perderá gran parte de la capacidad de castigar a los robots por adivinar incorrectamente.

Justin Cave
fuente
3

Un problema más desafiante para los bots sería eliminar una palabra de una oración, luego presentar una elección entre cuatro palabras diferentes de la misma parte del discurso. (Por ejemplo, eliminar un sustantivo; ¿cuál de estos cuatro sustantivos encaja mejor aquí?)

Los algoritmos de etiquetado y análisis no son perfectos, pero los enfoques basados ​​en corpus han llegado al punto en el que puede entrenar un analizador lo suficientemente bien como para ayudarlo a superar las probabilidades en un CAPTCHA con software básico o de código abierto. (Cuando está enviando correo no deseado en volumen, está bien si algunos mensajes no llegan, siempre que lo hagan para aumentar su tasa de éxito general).

Sin embargo, las computadoras aún no son tan buenas con la semántica.

Meredith L. Patterson
fuente
Sí, estaba pensando en que la palabra era una cierta parte del discurso con reemplazos de PoS coincidentes, ya que he trabajado en el análisis automático de texto y puedo ver un cómputo superando este sistema si la elección de las palabras correctas es obvia. Por otra parte, cuanto menos obvio, más difícil de responder para quienes no hablan [idioma].
Xeoncross
Por supuesto, hay momentos en que la gente no es tan buena con la semántica ...
FrustratedWithFormsDesigner
3

La mayor parte del spam que recibo en estos días en realidad no es generado por bots. Recibo mucho spam proveniente de países del tercer mundo donde se contrata a personas por unos centavos por hora para publicar mensajes en foros y blogs, etc.

Ningún sistema que diferencie entre humanos y computadoras detendrá esto.

Por esa razón, he eliminado totalmente CAPTCHA en mis sitios. En cambio, tengo una solución bastante simple basada en JavaScript (básicamente, Javascript ejecutándose en el cliente reorganiza los campos para que si publica con Javascript desactivado, falle). Esto detiene el 95% del spam bot, pero obviamente no tiene ningún efecto sobre el spam humano, pero tampoco lo haría un CAPTCHA.

Dean Harding
fuente
Estoy empezando a ver más y más sitios que simplemente requieren que se haga clic en una casilla de verificación con una identificación aleatoria; de lo contrario, no se agrega una publicación o se ingresa un texto impreso en algún lugar de la página en un campo de entrada con nombre aleatorio. Funciona mucho mejor que captcha, y es más fácil de usar.
Jwent
2

Solo las computadoras que sabían la gramática correcta del inglés / español / alemán podrían saber cuál de las palabras pertenecía a la oración.

La respuesta podría ser subjetiva (en realidad no es subjetiva, pero la falta de conceptos lingüísticos abarca todas las sociedades) y difícil para quienes no hablan el idioma de forma nativa.

Si se presenta una lista finita de reglas gramaticales (que tiene cada idioma), entonces simplemente se convierte en un algoritmo; accesible ahora por cualquier máquina dispuesta a implementar el algoritmo.

Aaron McIver
fuente
¿Y qué hay de las personas que no entienden completamente el idioma en que se encuentra la oración? ¿No podrán pasar el captcha?
FrustratedWithFormsDesigner
1
Buen punto, pero es la misma respuesta que ¿Qué pasa con las personas que no entienden completamente el texto en la imagen reCAPTCHA?
Xeoncross
2
@ Xeoncross Hay una diferencia. El texto en un CAPTCHA típico se abstrae. No es que un usuario no sepa que A == A; Es la presentación. El problema existe en el hecho de que, por desgracia, la abstracción elimina la legibilidad con la esperanza de crear una brecha entre lo que un humano y una máquina pueden entender. Es de naturaleza básica. Una A siempre será igual a una A. Cuando incorporas la gramática a la mezcla, cambias el enfoque. Ahora está asumiendo que todas y cada una de las personas se encuentran en un nivel de comprensión de grado con respecto al idioma que se está utilizando.
Aaron McIver
1
Debo admitir que sus análisis me entusiasmaron bastante. No solo detiene los bots de spam, sino que también debes tener un nivel de alfabetización parcial para dejar un comentario. ¡Eso sería genial! ; P
Xeoncross
1
@ Frustrado: Algunos de nosotros consideraríamos que es una característica, no un error. ;)
Mason Wheeler
2
  1. Todos los captchas son susceptibles a la cría de captcha.
  2. La opción múltiple es demasiado fácil de resolver mediante un intento aleatorio. (Como lo señalaron otros).

Pero ignorando estas serias trampas, está el problema de los idiomas.

Los idiomas de aglutinación como el húngaro o el finlandés se prestan fácilmente a este tipo de captchas, porque las palabras pueden tener muchos sufijos y cada uno tiene un propósito diferente en la oración (por ejemplo, el mismo nombre tiene un sufijo diferente cuando se usa como un objeto o un sujeto). las reglas solo son complicadas para los humanos, una máquina encontrará la correcta en unos pocos intentos.

Los idiomas de aislamiento (el inglés es un ejemplo aproximado, el chino mandarín es mucho más limpio) son aún peores, ya que la gramática está dictada principalmente por la posición en la oración y no por la forma de la palabra.

Los idiomas fusionales como el ruso o el griego probablemente plantean otro conjunto de problemas, etc.

En resumen, los acertijos lingüísticos que se traducen bien y son difíciles de adivinar al azar son notoriamente difíciles de encontrar. Probablemente sea mucho más fácil concentrarse en la semántica que en la sintaxis. Por ejemplo, "Continúa la siguiente secuencia: jueves, miércoles, martes ..." o "hornea, fríe, asa ..." y así sucesivamente.

biziclop
fuente
1

La idea habitual detrás de un captcha es que debería detener a los bots casi todo el tiempo. Una opción múltiple entre N respuestas detiene el bot solo (N - 1) / N del tiempo, por lo que el bot pasará en un promedio de N intentos.

Puede implementar tiempos de espera para respuestas incorrectas de captcha, pero no puede ser demasiado estricto al respecto sin molestar seriamente a las personas que no hablan bien inglés (o lo que sea) o tienen problemas con cuadros seleccionados (manos temblorosas, ratones malos, otros desventajas). Además, los tiempos de espera no detendrán una botnet, ya que las conjeturas pueden provenir de diferentes IP.

Además, ¿cómo se asegura de que solo haya una respuesta legítima? Una oración seleccionada al azar del Proyecto Gutenberg puede tener sentido con varios sustantivos seleccionados al azar, pero solo uno es la respuesta correcta.

David Thornley
fuente
0

Todo lo que estás haciendo es hacer que sea más difícil para los humanos usar tu sitio, mientras que para los bots no estás agregando ningún obstáculo.

En lo que debería centrarse es en crear un mecanismo que detecte automáticamente si algo que se publica es correo no deseado, y bloquea la publicación si lo es (diferiéndolo a la moderación humana, por ejemplo, y enviando un mensaje al afiche hasta ese punto).

Los CAPTCHA han llegado al punto en que son tan molestos que tiendo a evitar cada vez más sitios que los usan, y muchos conmigo. Esto especialmente porque son ampliamente conocidos por no tener ningún efecto sobre los robots de spam.

jwenting
fuente