Perché le firme digitali non sono il modo standard per autenticare i client Web?

17

Il web è un casino di schemi di cookie incompatibili, requisiti asinini ("la tua password deve contenere lettere, numeri e almeno un simbolo da! () -_., e deve iniziare con una lettera, e una volta cambiata non è possibile riutilizzarlo ") e inaffidabili (per non dire centralizzati) protocolli di autenticazione di terze parti.

Mi sembra che il web sarebbe più sicuro e standardizzato se le chiavi pubbliche fossero universalmente trattate come identità online come lo sono attualmente gli indirizzi email. Autenticare un pezzo di informazione sarebbe semplice come firmarlo crittograficamente. Potrebbe persino accadere sul livello dell'applicazione, ad es. con un'intestazione HTTP Signature: algorithm=sha256;encoding=base64;signed-digest=...;public-key=...

La crittografia a chiave pubblica è davvero inadatta a servire l'identificazione e l'autenticazione universali su tutti i livelli Internet? Oppure l'autenticazione non crittografica è un fallimento del mercato?

    
posta Jordan 02.08.2012 - 01:19
fonte

4 risposte

7

Sei pronto a sottolineare i difetti delle password - e hai ragione. Ma nessun altro metodo ha tutti i vantaggi delle password, quindi qualsiasi metodo di sostituzione ha vantaggi e costi.

Su questo argomento, raccomando il lavoro del gruppo di sicurezza a Cambridge . Potresti essere interessato al tag sul tuo blog . Un recente articolo sull'argomento è La ricerca per sostituire le password: un quadro per la valutazione comparativa di schemi di autenticazione Web ) riepilogati in questo post del blog .

Purtroppo, il documento non analizza lo schema da te proposto, con le chiavi private memorizzate sul PC dell'utente e le chiavi pubbliche fornite dall'utente al momento dell'iscrizione come parte della loro identità. Ma possiamo esaminare i criteri usati nella carta e vedere quali falliscono.

  • Scalabile per gli utenti : dipende se ti aspetti che gli utenti abbiano un'unica identità o una per servizio.
  • Nothing-to-Carry : finché accetti che le chiavi private verranno memorizzate in un telefono cellulare, lo schema ha la proprietà Quasi-Nothing-to-Carry .
  • Easy-Recovery-from-Loss : ok fintanto che la chiave privata viene utilizzata esclusivamente per l'autenticazione - la modifica della chiave privata è facile come la reimpostazione della password. (Gli autori non considerano le reimpostazioni di password nell'ambito del loro studio.)
  • Compatibile con il server : no, come qualsiasi altra alternativa alle password, i server devono essere modificati. Questo è sicuramente più un marketing che un problema tecnico.
  • Compatibile con il browser : ciò dipende da come viene utilizzata la chiave privata sul client (questo ha implicazioni sulla sicurezza).
  • Resilient-to-Theft : le password non sono molto resilienti, ma le password memorizzate sono resistenti al furto, a differenza di una chiave memorizzata su un dispositivo.

I due ostacoli principali che vedo sono il rischio di furto di dispositivi e gestione di identità multiple. Il furto del dispositivo può essere in parte neutralizzato proteggendo la chiave privata con una password, ma il file chiave è soggetto alla ricerca illimitata di forza bruta ad alta velocità da parte dell'utente malintenzionato, diversamente dalle password utilizzate per l'autenticazione online che possono essere limitate.

La gestione di più identità è un problema più grande: significa che l'utente deve decidere se utilizzare la stessa identità su più siti o meno. Riutilizzare la stessa chiave è conveniente ma banalmente rilevabile, quindi è una preoccupazione importante per la privacy. Anche se è una cattiva idea per la sicurezza, gli utenti possono (e lo fanno) riutilizzare le password senza implicazioni sulla privacy. L'utilizzo di identità diverse su siti diversi richiede una gestione ingombrante di più chiavi, il che è più oneroso di quanto lo desiderino gli utenti tipici. Uno schema migliore combinerebbe le chiavi private con alcuni repository di segreti, che condividono tutte le difficoltà con i gestori di password.

    
risposta data 03.08.2012 - 20:13
fonte
9

La risposta più semplice è che la distribuzione di chiavi / certificati è un problema difficile e costoso.

Affinché i certificati funzionino in modo sicuro, in genere è necessario disporre di alcune autorità attendibili (in genere CA) per firmare i certificati. Chi lo farebbe? Non ci si può aspettare che qualche entità fidata vada in giro e approvi ogni certificato di utente di Internet. Potresti usare una rete di fiducia, ma questo ha la sua complicazioni (di quali firme ci fidiamo? gli utenti si preoccupano di approvare i certificati di altre persone? È addirittura sicuro lasciarli fare così?). Che dire della revoca dei certificati? Come puoi gestirlo bene con milioni di clienti?

    
risposta data 02.08.2012 - 01:23
fonte
3

Federated Identity è il nome del problema che descrivi.

A federated identity in information technology is the means of linking a person's electronic identity and attributes, stored across multiple distinct identity management systems.

Il motivo per cui non è accaduto sul web è che il web non è stato progettato per questo da zero, ed è un problema davvero difficile da risolvere. Il percorso di minore resistenza per la maggior parte dei siti Web è stato quello di gestire il proprio DB delle password.

Per comprendere i problemi, considera che

  1. Gli utenti vogliono essere in grado di spostarsi da un dispositivo all'altro, ma non ci sono soluzioni hardware semplici per spostare in modo sicuro i keystore da un dispositivo all'altro.
  2. Una singola identità non è ovviamente più robusta contro il malware - potrebbe solo diventare un singolo punto di errore. Se il malware entra in una macchina e ruba una singola chiave privata per l'intero web (o una grande porzione di essa), allora sei nei guai. Il malware può rubare le password tramite la registrazione delle chiavi, ma solo per quei siti che visiti mentre persiste.
risposta data 02.08.2012 - 03:22
fonte
2

Si riduce all'economia.

La sicurezza della password non è perfetta. Ma è abbastanza buono per la maggior parte dei problemi nel mondo online. Capita anche che sia abbastanza semplice da comprendere per la maggior parte delle persone, anche se spesso dimentica la password stessa. La sicurezza delle password è anche implementabile praticamente su qualsiasi piattaforma e interfaccia utente a cui si possa pensare. Spesso è così comune da essere già inserito nel tuo toolkit.

La sicurezza in stile certificato è terribilmente costosa da alzarsi, come sottolinea Oleksi . E avresti anche delle difficoltà nel convincere la gente a poterlo usare. Soprattutto in un mondo multi-dispositivo come oggi. Immagina il divertimento di aiutare tua madre a installare il suo certificato sulla sua auto intelligente.

    
risposta data 02.08.2012 - 03:38
fonte

Leggi altre domande sui tag