1. Gli utenti sono stupidi
Una password è qualcosa che entra nella memoria di un utente e l'utente la sceglie. Poiché l'autenticazione riguarda la verifica dell'identità fisica dell'utente in remoto (dal punto di vista del verificatore), il comportamento dell'utente è necessariamente coinvolto nel processo, tuttavia, le password dipendono dalla parte dell'utente che è notoriamente mediocre nel gestire la sicurezza, vale a dire il suo cervello. Gli utenti semplicemente non capiscono cosa sia l'entropia delle password. Non li biasimo per questo: questa è una materia tecnica, una specializzazione, che non può diventare realisticamente "buon senso" tanto presto. D'altra parte, la sicurezza di un token fisico è molto più "tangibile" e gli utenti medi possono diventare abbastanza bravi. Gli evoluzionisti direbbero che gli umani sono stati selezionati positivamente per questo negli ultimi milioni di anni, perché coloro che non sono riusciti a tenere i loro strumenti di selce non sono sopravvissuti abbastanza da avere una prole.
I film di Hollywood possono essere usati come modello di come gli utenti pensano alle password, se non altro perché anche quegli utenti guardano i film. Invariabilmente, l'Arch Enemy ha una password breve e adora vantarsene e distribuire indizi ogni volta che può. E, invariabilmente, un agente segreto britannico indovina la password in tempo per disattivare la bomba a fusione che è stata piantata sotto l'aiuola preferita della regina. I film proiettano una realtà distorta ed esagerata, ma rappresentano comunque la linea di base mentale su cui operano gli utenti medi: immaginano che le password forniscano sicurezza essendo più "argute" dell'attaccante. E, invariabilmente, la maggior parte fallisce.
La "robustezza della password" può essere leggermente migliorata da regole obbligatorie (almeno otto caratteri, almeno due cifre, almeno una lettera maiuscola e una minuscola ...) ma queste regole sono viste come un peso dagli utenti e a volte come un insopportabile vincolo alla loro innata libertà - così gli utenti iniziano a combattere le regole, con grande creatività, a cominciare dalla tradizionale scrittura della password su una nota adesiva. Il più delle volte, le regole di rafforzamento della password si ritorcono contro in questo modo.
D'altra parte, i certificati utente implicano un sistema di archiviazione e se quel sistema è un dispositivo fisico che l'utente porta con sé con le chiavi di casa o dell'auto , quindi la sicurezza si basa (in parte) su quanto bene l'utente medio gestisce la sicurezza di un oggetto fisico e di solito fa un buon lavoro. Almeno meglio di quando si tratta di scegliere una buona password. Quindi questo è un grande vantaggio dei certificati.
2. I certificati utilizzano la crittografia asimmetrica
L '"asimmetria" riguarda la separazione dei ruoli. Con una password, chiunque la verifichi conosce a un certo punto la password o un dato equivalente a una password (beh, non è del tutto vero nel caso dei protocolli PAKE). Con i certificati utente, il certificato viene emesso da un'autorità di certificazione, che garantisce il collegamento tra un'identità fisica e una chiave pubblica crittografica. Il verificatore può essere un'entità distinta e può verificare tale collegamento e utilizzarlo per autenticare l'utente, senza avere la possibilità di impersonare l'utente.
In poche parole, questo è il punto dei certificati: separare coloro che definiscono l'identità digitale dell'utente (cioè l'entità che fa la mappatura dall'identità fisica al mondo dei computer) da coloro che em> autentica gli utenti.
Questo apre la strada alle firme digitali che portano al non ripudio. Ciò interessa particolarmente le banche che accettano ordini finanziari da clienti online: hanno bisogno di autenticare i clienti (si tratta di denaro, una questione molto seria) ma vorrebbero avere una traccia convincente degli ordini - nel senso di: a il giudice sarebbe convinto. Con la semplice autenticazione, la banca ottiene una certa sicurezza di parlare con il cliente giusto, ma non può dimostrarlo a terzi; la banca potrebbe costruire una falsa trascrizione di connessione, quindi è senza armi contro un cliente che afferma di essere incastrato dalla banca stessa. Le firme digitali non sono immediatamente disponibili anche se l'utente dispone di un certificato; ma se l'utente può utilizzare un certificato per l'autenticazione, la maggior parte del lavoro è stato svolto.
Inoltre, le password sono intrinsecamente vulnerabili agli attacchi di phishing, mentre i certificati utente non lo sono. Proprio a causa dell'asimmetria: l'utilizzo del certificato non implica mai la rivelazione di dati segreti al peer, quindi un utente malintenzionato che si spaccia per il server non può apprendere nulla di valore in questo modo.
3. I certificati sono complessi
La distribuzione dei certificati utente è complessa, quindi costosa:
-
L'emissione e la gestione dei certificati è un pieno di worm, come qualsiasi PKI il venditore può dirtelo (e, in effetti, te lo dico). Soprattutto la gestione della revoca. PKI è circa il 5% di crittografia e il 95% di procedure. può essere fatto, ma non a buon mercato.
-
I certificati utente implicano che gli utenti memorizzino la loro chiave privata in qualche modo, sotto il loro "accesso esclusivo". Questa operazione viene eseguita nel software (i sistemi operativi esistenti e / o i browser Web possono farlo) o utilizzando hardware dedicato, ma entrambe le soluzioni hanno la propria serie di problemi di usabilità. I due problemi principali che sorgeranno sono 1) l'utente perde la sua chiave e 2) un aggressore ottiene una copia della chiave. La memorizzazione del software rende la perdita della chiave un problema plausibile (in balia di un disco rigido guasto) e la condivisione della chiave tra diversi sistemi (ad esempio un computer desktop e un iPad) implica alcune operazioni manuali che difficilmente saranno ben protette dagli aggressori. I token hardware implicano l'intera disordinata attività dei driver di dispositivo, il che potrebbe essere anche peggio.
-
Un certificato utente implica operazioni matematiche relativamente complesse sul lato client; questo non è un problema nemmeno per un Pentium II anemico, ma non sarai in grado di utilizzare certificati da alcuni Javascript schiaffeggiati all'interno di un sito Web generico. Il certificato richiede una cooperazione attiva da parte del software lato client, e detto software tende ad essere, diciamo, ergonomicamente non ottimale in quella materia. Gli utenti medi possono normalmente imparare a utilizzare i certificati client per una connessione HTTPS a un sito Web, ma a costo di imparare a ignorare il popup di avviso occasionale, il che li rende molto più vulnerabili ad alcuni attacchi (ad es. Attacchi attivi in cui l'attaccante cerca di fornire loro il proprio falso certificato del server).
D'altra parte, l'autenticazione basata su password è davvero facile da integrare praticamente ovunque. È altrettanto facile sbagliare, ovviamente; ma almeno non comporta necessariamente costi aggiuntivi incomprimibili.
Riepilogo
I certificati utente consentono una separazione dei ruoli che le password non possono eseguire. Lo fanno a scapito di aggiungere un'orda di problemi di implementazione e distribuzione, che li rendono costosi. Tuttavia, le password rimangono a buon mercato adattandosi a una mente umana, il che implica intrinsecamente una bassa sicurezza. I problemi di sicurezza con le password possono essere in qualche modo mitigati da alcuni trucchi (fino a includere i protocolli PAKE) e, soprattutto, incolpando l'utente in caso di problema (sappiamo che l'utente medio non può scegliere una password sicura, ma qualsiasi contrattempo lo farà è ancora colpa sua: è così che le banche lo fanno).