HTTPS con autenticazione
Mentre HTTPS si basa sull'infrastruttura PKI, rendendolo potenzialmente vulnerabile alle CA canaglia, è perfettamente adeguato per il materiale "riservato ma non estremamente sensibile". L'utilizzo dell'autenticazione di base HTTP invia la password al server e, quando viene utilizzato TLS, viene ulteriormente crittografato. Questo ti fornirà alcune garanzie di cui avrai bisogno quando gestirai informazioni riservate:
- L'entità che richiede l'accesso ha il permesso di accedere a questo materiale?
- Può un'entità autorizzata assicurarsi che il materiale inviato non sia stato manomesso sul filo?
- Può un intercettatore attivo / passivo visualizzare il materiale mentre viene inviato a un'entità autorizzata?
Qualsiasi buona forma di autenticazione risolve la prima domanda e TLS risolve i secondi due. Non è necessario utilizzare in modo specifico l'autenticazione di base (in quanto ha i suoi limiti, essendo piuttosto semplice e non ideale per archiviare password sensibili create dall'utente e potenzialmente riutilizzate), purché sia presente un semplice sistema di autenticazione per garantire che solo quelli che dovrebbero scaricarlo possono farlo.
Certificati client
A seconda di quanto sia importante la riservatezza di questo materiale e in parte esattamente sulla scarsa conoscenza di "zero conoscenze IT", è possibile utilizzare anche certificati client crittografati. Questi sono certificati generati dall'utente o dal cliente e memorizzati nel browser del cliente. Non è difficile per un utente finale configurarli e usarli, ma richiede uno sforzo leggermente maggiore rispetto a quello a cui il normale utente di Internet è abituato. Richiede l'apertura delle impostazioni per il browser e l'importazione del file del certificato client, che aprirà un prompt per la creazione di una nuova password per crittografarlo. Quando successivamente accedono al tuo sito tramite HTTPS, il browser chiederà loro la password del certificato e, se è corretto, userà il certificato per autenticarlo sul tuo sito web. Questo è di gran lunga il metodo di autenticazione più sicuro basato su browser, poiché il client si autentica da solo sul server e il server si autentica da sé sul client.
Protezione di una connessione TLS
Se si finisce con l'utilizzo di HTTPS, è necessario seguire le le migliori pratiche di sicurezza per la distribuzione di TLS:
- Utilizza una chiave privata strong (2048 bit o più grande RSA), firmata da una CA affidabile (ad esempio LetsEncrypt).
- Disabilita le suite di crittografia non protette (come quelle delle modalità SSLv2-3 e non PFS).
- Evita di utilizzare moduli piccoli o predefiniti se utilizzi DHE, o semplicemente usa ECDHE.
- Attacca lo stato HTTPS utilizzando HSTS, idealmente con il preloading HSTS.
- Usa HPKP per appuntare l'esatta chiave pubblica che usi. Questo è sicuro finché usi una chiave di backup.
- Utilizzare la pinzatura OSCP per verificare la presenza di certificati revocati.
- Apporta una politica CSP rigida e altre misure anti-XSS per ridurre il rischio di attacchi XSS.
- Se pratico e fattibile, chiedi agli utenti del sito di utilizzare un browser aggiornato.
- Verifica regolarmente il tuo sito con Test SSL di Qualys . Sul serio. È un servizio straordinario.
Sebbene ciò non sia assolutamente necessario, migliora significativamente la sicurezza dell'intera situazione più vicino a quella di SSH, pur mantenendo l'accessibilità per gli handicappati tecnologicamente. Ad un minimo assoluto , devono essere seguiti i primi quattro punti elenco e l'ultimo punto elenco.