Ho bisogno di un buon modo per implementare il certificato o il blocco della chiave pubblica in un'applicazione Windows 10 Universal. Tutto il codice è in C# e tutte le connessioni sono HTTPS, quindi qualcosa per la classe Windows.Web.Http.HttpClient
sarebbe fantastico. C'è una semplice classe/libreria, o almeno una guida passo-passo, su come implementare questa roba che può essere fatta in sicurezza da qualcuno che non conosce i dettagli arcani dei certificati X.509 e così via?Blocco del certificato in Windows 10 Applicazione universale
Alcune cose che ho trovato parlano dell'utilizzo del codice nativo o di librerie di terze parti come OpenSSL (molto complicato!). La cosa migliore che ho trovato è il this question sul pinning in WP8.0, che include un esempio di codice che dovrebbe funzionare su WP8.1 e si spera anche su Win10, ma è un po 'brutto e confuso, e non sono sicuro di come richiedere che il certificato del server è uno di quelli appuntati quando si invia la richiesta con le informazioni sensibili. Controllare in anticipo non sembra sicuro a causa degli attacchi del tempo di controllo/tempo di utilizzo (TOCTOU) (a meno che la funzione HttpRequestMessage
. TransportInformation
apra la connessione e quindi la tenga aperta, quindi non c'è possibilità che un attaccante ottenga un uomo -in-the-middle position su una nuova connessione). Idealmente ci sarebbe un modo per filtrare HttpClient in modo che si connetta solo ai server con certificati appuntati, ma la cosa più vicina che riesco a fare fa esattamente il contrario (ignora alcuni errori di cert, come parlato su here) tramite la proprietà HttpBaseProtocolFilter.IgnorableServerCertificateErrors
, che non sembra avere alcuna opzione per limitare i certificati validi.
Qualcuno ha una buona soluzione qui? Se l'approccio HttpRequestMessage.TransportInformation
(con codice di convalida del certificato personalizzato) è l'unica opzione, è sicuro contro gli attacchi TOCTOU verificare la proprietà prima di inviare la richiesta?
Ciao, sto avendo gli stessi problemi come te, hai avuto fortuna su come farlo? – toroveneno