La información sobre la eficacia del SignIn Seal de Yahoo es escasa, lo mejor que pude encontrar fue esta sección en la entrada de Wikipedia sobre Phishing, afirmando que "pocos usuarios se abstienen de ingresar su contraseña cuando las imágenes están ausentes" y "esta característica [... ] es susceptible a otros ataques "(¿cuál?). Pero incluso si los usuarios estuvieran atentos a ello, estoy teniendo problemas para entender el concepto.
¿Cómo se garantiza que el sello solo se mostrará cuando el usuario esté realmente en ese sitio en particular? Al mirar el código fuente de la página de inicio de sesión de Yahoo, veo que se están utilizando una gran cantidad de técnicas, pero me resulta difícil comprender cuáles son sus propósitos y cómo trabajan juntos para lograr su objetivo:
- JavaScript se usa para verificar si la página está o no en
iframe
(no muestra la imagen si lo está, o si JavaScript está deshabilitado); - La imagen insertada tiene un token largo de apariencia aleatoria en su
src
, que supongo es mantenerlo en secreto; - La URL de la imagen caduca con bastante rapidez, por lo que no puede ser robada ni utilizada en ningún otro lugar.
Lo que podría inferir de lo anterior:
- La solicitud de la página de inicio de sesión debe se inició desde el navegador del usuario, de lo contrario, no se enviaría la cookie que contiene el sello;
- Si el atacante coloca la página en un
iframe
, no puede acceder a su contenido debido a la política del mismo origen. - Del mismo modo, el atacante no puede solicitarlo a través de Ajax, por el mismo motivo.
- Si el atacante coloca la página en un
- A petición de la página de inicio de sesión, el servidor prepara una URL única para servir esa imagen (utilizando el contenido de la cookie, la imagen no se almacena permanentemente en el servidor), con un token no presumible al que el atacante no podría tener acceso ;
- La imagen solo se mostrará si la página determina correctamente que no está en un
iframe
; por lo tanto, si el usuario ve la imagen, puede estar seguro de que el sitio es legítimo.
¿Mi razonamiento es correcto? ¿Hay algún ataque conocido a este esquema? (tal vez algo relacionado con MitM, etc.)