Attualmente sto implementando un piccolo server web su una piattaforma embedded che è piuttosto vincolata alle risorse. Sto pianificando di utilizzare la comunicazione non protetta perché TLS potrebbe non essere possibile nel mio ambiente embedded, ma tuttavia non voglio che coppie di username / password vengano trasmesse in chiaro.
Ho esaminato Autenticazione di base che non è la soluzione migliore in termini di sicurezza poiché trasmettiamo tutte le informazioni, inclusi nome utente e password in testo non crittografato.
Rispetto all'autenticazione di base, Autenticazione del digest sembra più sicuro, ma il grosso problema qui è che la somma HA1 memorizzata nel database deve essere trattata come vera password (perché in realtà è ciò che sono). Non appena riesci a dare un'occhiata alla somma HA1 di un utente, puoi accedere a tutte le aree a cui l'utente può accedere in quanto potresti calcolare una somma HA1 valida per ogni nonce che il server invia.
Esiste un altro metodo di autenticazione stabilito che può essere utilizzato nel contesto di HTTP evitando al contempo le vulnerabilità sopra descritte? Si noti che ho solo bisogno di autenticazione sicura e non di comunicazione sicura. In caso contrario, potrei davvero dover riconsiderare l'utilizzo di TLS, nel qual caso l'autenticazione di base sarebbe sufficiente.