Scelta dell'autenticazione quando sono supportati sia HTTP che HTTPS

3

Sto guardando un sistema in cui è possibile scegliere se connettersi all'applicazione Web tramite HTTP e / o HTTPS. Devi autenticarti su uno dei due. So che l'opzione migliore è quella di utilizzare l'autenticazione di base con HTTPS, dal momento che puoi scegliere qualsiasi algoritmo di hashing che ti piace.

Ma dal momento che entrambi saranno supportati, ci sono altre opzioni oltre a usare l'autenticazione digest come "adatto per entrambi" tipo di soluzione?

    
posta kung 08.07.2016 - 11:15
fonte

2 risposte

3

Se hai davvero bisogno di usare l'autenticazione con testo normale (HTTP), dovresti assicurarti che sniffare le credenziali non le comprometta. Mentre l'sniffing è facile con l'autenticazione di base, è molto meglio l'autenticazione digest fatta correttamente (vale a dire con nonce per difendersi dagli attacchi di replay). Sfortunatamente con l'autenticazione digest è necessario salvare le password sul server in testo chiaro o equivalente.

Ma l'opzione migliore è ovviamente non trasferire alcun dato sensibile con HTTP semplice e questo include le credenziali di autenticazione.

    
risposta data 08.07.2016 - 12:47
fonte
1

In teoria è possibile utilizzare AJAX con un'implementazione JavaScript della crittografia RSA, ricreando essenzialmente ciò che la connessione HTTPS / TLS normalmente farebbe per te da un punto di vista della crittografia e della chiave di scambio.

Ti offre un'alternativa alla memorizzazione della password in server di testo semplice come Autenticazione del digest HTTP (utilizzando nonce ) richiederebbe. Inoltre, un'implementazione di JavaScript ti offre la flessibilità di crittografare altre informazioni oltre alla password.

Nell'implementazione RSA di JavaScript, assicurati di utilizzare Web Cryptography nativo ove disponibile, in quanto ciò ti consentirà di utilizzare un più veloce & dimensioni della chiave più forti.

Una volta sviluppato, l'implementazione della RSA potrebbe essere protetta dagli attacchi di replay e proteggere efficacemente tutti i dati crittografati. Tuttavia su una connessione HTTP sei sempre vulnerabile al MITM che potrebbe servire un file JavaScript alterato per bypassare la crittografia.

    
risposta data 08.07.2016 - 16:30
fonte

Leggi altre domande sui tag