Se hará una llamada a los servidores de recaptcha y se incrustará el desafío en el frontal, lo que vayamos a hacer con él ya es nuestra decisión. Ahora bien dependiendo del lenguaje de nuestra aplicación web deberemos acudir aquí para obtener los recursos que analicen y verifiquen el CAPTCHA, por ejemplo en ASP deberemos añadir una librería a nuestro proyecto que contiene una serie de llamadas para verificar el CAPTCHA, este proceso se realiza nuevamente contra servidores externos, para mayor claridad:
Es decir, en 1) el usuario carga la página web que tiene incrustado el CAPTCHA, en 2) el browser solicita a los servidores de reCAPTCHA el reto, esta petición la hace con la clave publica del servidor. Después en 3) el usuario soluciona el reto y esa solución es enviada al servidor de aplicaciones (o el frontal web dependiendo de la arquitectura), en 4) este servidor contacta con el API Server, aquí es cuando se utiliza la clave privada para verificar que efectivamente la petición no ha sido manipulada en su recorrido, el API server devuelve el resultado del desafio, esto lo recogerá el servidor de aplicaciones proporcionando una respuesta dependiendo de si se ha superado el desafió o no.
¿Sencillo? A mi me parece que sí, como detalle final añadir que el API Server detecta las IP de los clientes que solucionan “muchos” CAPTCHA en pocos minutos, evitando así que en caso de que el desafío se haya visto comprometido se realicen ataques por repetición bloqueando la IP origen temporalmente.
Bueno, bonito y barato, lo ideal para comenzar la semana :)
Salu2
PD: Entrada relacionada de Breaking CAPTCHAS.
3 comentarios:
Ademas tiene otro servicio mas desconocido. La segunda palabra que aparece pertenece a una bbdd de palabras que no han podido ser interpretadas por los softwares de digitalizacion de libros, con lo que cuando metes un captcha contribuyes a digitalizar un libro :)
Siiii, leí que utilizaba palabras que los OCR eran incapaces de analizar. Luego las tachaban y les hacían mil diabluras, lo que no me paré a leer era que aprovechaban ese proceso para digitalizar libros, al parecer tienen ahora un proyecto con el New York Times:
reCAPTCHA improves the process of digitizing books by sending words that cannot be read by computers to the Web in the form of CAPTCHAs for humans to decipher. More specifically, each word that cannot be read correctly by OCR is placed on an image and used as a CAPTCHA. This is possible because most OCR programs alert you when a word cannot be read correctly.
But if a computer can't read such a CAPTCHA, how does the system know the correct answer to the puzzle? Here's how: Each new word that cannot be read correctly by OCR is given to a user in conjunction with another word for which the answer is already known. The user is then asked to read both words. If they solve the one for which the answer is known, the system assumes their answer is correct for the new one. The system then gives the new image to a number of other people to determine, with higher confidence, whether the original answer was correct.
Currently, we are helping to digitize old editions of the New York Times.
Una muy buena idea :D
Buscar sobre 'reCaptcha pennis' esta interesante.
Publicar un comentario