Background: abbiamo un sito che funziona su HTTPS (HTTP non supportato, usiamo HSTS). È distribuito in cloud di terze parti, che limita le nostre capacità di controllo e di registro sull'hardware del server. Non possiamo forzare l'utilizzo dell'autenticazione del certificato client. Quindi, in pratica, quello che abbiamo è un sito HTTPS pubblico con autenticazione standard a 2 fattori (login / passaggio + SMS), accessibile dal browser desktop o mobile, e API aggiuntiva sullo stesso sito all'interno di app mobili native. Il software del server è basato su .Net / IIS.
Stiamo prendendo in considerazione il seguente scenario: in qualche modo il computer / smartphone dell'utente ha fatto affidamento sul certificato dell'attaccante, consentendo così il classico attacco MiM (quindi l'utente è connesso al proxy con certificato attendibile e il proxy è connesso al nostro server). Uno degli scenari comuni (in alcuni paesi) per questo è che il provider Internet richiede che l'utente abbia fiducia nel proprio certificato autofirmato.
Lasciando da parte la sicurezza sul lato client (controlla l'identificazione del certificato ecc.) - esiste un modo per il server (ad es. per la nostra applicazione) per capire che l'attacco MiM è a posto?
Questa è una domanda come questa HTTPS - Can il server visualizza i dettagli del certificato lato client? , ma non cerco solo i modi per rilevare immediatamente tale attacco (il che sarebbe ovviamente buono se possibile), ma anche per i modi che possono aiutarci a rilevare tale attacco a lungo termine , con ad esempio alcuni record storici.