Le informazioni sull'efficacia di SignIn Seal di Yahoo sono scarse, il meglio che ho trovato è stato questa sezione sulla voce di Wikipedia su Phishing, sostenendo che "pochi utenti si astengono dall'inserire la propria password quando le immagini sono assenti" e "questa caratteristica [... ] è suscettibile ad altri attacchi "(quale?). Ma anche se gli utenti sono stati attenti, ho dei problemi a capovolgere il concetto.
Come si fa a garantire che il sigillo venga visualizzato solo quando l'utente si trova effettivamente in quel particolare sito? Guardando il codice sorgente dalla pagina di login di Yahoo vedo una miriade di tecniche utilizzate, ma trovo difficile comprendere quali sono i loro scopi e come lavorano insieme per raggiungere il suo obiettivo:
- JavaScript è usato per verificare se la pagina è o meno in
iframe
(non mostrare l'immagine se lo è - o se JavaScript è disabilitato); - L'immagine inserita ha un token dall'aspetto casuale lungo nella sua
src
, che presumo sia quella di mantenerlo segreto; - L'URL dell'immagine scade molto rapidamente, quindi non può essere rubato e utilizzato altrove.
Cosa potrei dedurre da quanto sopra:
- La richiesta della pagina di accesso deve essere stata avviata dal browser dell'utente, altrimenti il cookie che contiene il sigillo non verrebbe inviato;
- Se l'autore dell'attacco inserisce la pagina in
iframe
, non può accedere ai suoi contenuti a causa della politica della stessa origine. - Allo stesso modo, l'attaccante non può richiederlo tramite Ajax, per lo stesso motivo.
- Se l'autore dell'attacco inserisce la pagina in
- Su richiesta della pagina di accesso, il server prepara un URL univoco per servire quell'immagine (utilizzando il contenuto del cookie - l'immagine non è memorizzata in modo permanente nel server), con un token non accessibile che l'utente malintenzionato non può avere accesso ;
- L'immagine verrà visualizzata solo se la pagina determina correttamente che non è in
iframe
; quindi, se l'utente vede l'immagine, può essere sicuro che il sito è legittimo.
Il mio ragionamento è corretto? Ci sono attacchi noti a questo schema? (forse qualcosa che coinvolge MitM, ecc.)