it-swarm.dev

Qualcuno sta usando i certificati del browser client?

I certificati del browser client sembrano essere un modo piacevole per proteggere i siti dagli intrusi: è impossibile indovinarli e dovrebbe essere più difficile da rubare. Naturalmente, non risolvono tutti i problemi, ma aggiungono sicurezza.

Tuttavia, non ho riscontrato alcun sito pubblico che li utilizza. Ci sono siti che li usano? C'è qualche difetto in loro che ne impedisce l'uso anche quando la sicurezza è importante o qualche altro motivo per cui c'è così poco uso di loro?

43
StasM

Il lato client certificato non ha avuto un compromesso costi/benefici abbastanza buono. Sono molto confusi per gli utenti, quindi i costi di supporto aumentano. E sono ancora solo bit e quindi "qualcosa che conosci" e sono vulnerabili a una serie di attacchi software al browser, allo schema di distribuzione, al phishing ecc.

Gli schemi di token hardware (authn a due fattori) sono migliori per una buona authn. Gli schemi Single Sign-On (SSO), potenzialmente federati e potenzialmente supportati da token hardware, risolvono più problemi e sono più facili da distribuire.

La gestione di molti certificati sarebbe molto più complicata per un utente rispetto all'attuale spinoso problema con più password e i browser non offrono un buon supporto per la selezione del certificato giusto. E se un utente utilizza un singolo certificato per molti siti, allora ci sono problemi di privacy poiché l'uso del certificato identifica l'utente.

Nel corso dei decenni, molti di noi hanno pensato che l'età dell'utilizzatore finale PK-crypto fosse dietro l'angolo, specialmente quelli come me innamorati della bellezza di RSA. Si è appena scoperto che il modo in cui si è evoluto, l'help desk e i costi di sviluppo, le sottigliezze, le complessità e gli intrecci legali della PKI nel mondo reale continuano a consumare i benefici.

Le attrezzature sembrano più costose delle punte, ma non se le punte non fanno il lavoro, o un uso efficace di esse aumenta la produttività.

20
nealmcb

Uso i certificati del browser per una manciata di siti, ma come hai detto principalmente non siti pubblici.

La principale difficoltà nei certificati lato client è distribuzione loro. Cioè, come posso darti in sicurezza il certificato "onnipotente" che ti garantirà l'accesso al mio sistema, se non ti conosco?
I sistemi aziendali sono ovviamente più facili, così come i sistemi aperti a una piccola cerchia di partner. Ma la distribuzione delle chiavi è sempre un puzzle difficile da risolvere. È molto più difficile che condividere una password tra due parti, considerando gli aspetti della chiave privata e la protezione del certificato, ....

In realtà ci sono soluzioni are, ovviamente, e ne uso persino una per un sito Web "pubblico". (Capita di essere nel settore dell'identità, quindi vale la pena per loro ...). Tale soluzione si basa sull'autenticazione primaria tramite password e, dopo essere stata completamente autenticata, ho la possibilità di scaricare il mio certificato, supponendo che io sappia cosa farne.
Non molto meglio, poiché il canale della password è ancora aperto ... ma questo mi dà almeno la possibilità di cambiare la password in qualcosa di impossibile e inutilizzabile, e avere solo il CSC. ...

Ma questo non è banale e un po 'complesso da implementare correttamente. La distribuzione avrebbe comunque disturbato la maggior parte degli utenti.

18
AviD

A quanto ho capito, ci sono numerosi problemi nell'uso pratico dei certificati client. Ecco alcuni dei problemi che ho sentito:

  1. Ottenere i certificati dei clienti. Inizialmente è un problema per gli utenti ottenere un certificato client. Ovviamente, i siti non vogliono creare ostacoli superflui che gli utenti devono superare prima ancora di poter iniziare a utilizzare il proprio sito. (Anche fare in modo che il sito generi il certificato client e fornirlo al client non è un'operazione familiare per un utente - per non parlare del fatto che ha problemi di sicurezza, poiché idealmente solo il client dovrebbe conoscere la chiave privata del client.) Browser moderni fornire modi per creare o importare chiavi private e certificati client, ma l'esperienza dell'utente è orribile.

  2. Ho sentito che alcuni server apparentemente non supportano bene i client client (ad es. http://osdir.com/ml/encryption.cryptlib/2005-09/msg00000.html).

  3. La mobilità è un problema. Nonostante tutti i loro problemi, le password sono molto portatili; i client non lo sono. Anche se il client riesce a generare una chiave privata e ottenere un certificato client per essa, se vogliono iniziare a utilizzare un secondo computer, dovranno fare una danza complicata e confusa per trasferire la chiave privata e passare al secondo computer. Se il loro primo computer muore (o subisce un errore del disco rigido) e devono reinstallare il loro sistema operativo o acquistare un nuovo computer e se il client non ha eseguito il backup della chiave privata, non avranno modo di mettere il loro privato chiave e certificato sul loro nuovo computer; sono abbastanza fregati. Un sito può creare un metodo di backup di autenticazione in modo che gli utenti che hanno perso la chiave privata possano generare e inviare una nuova chiave privata, ma questo metodo di backup di autenticazione può facilmente diventare l'anello più debole della catena. Non importa quanto sia forte il tuo metodo di autenticazione principale, se il tuo metodo di backup è facilmente sconfitto.

  4. Non è chiaro se vi sia supporto sufficiente dai browser per i certificati client. Non so se tutti i vari browser (compresi i browser per dispositivi mobili) supportino adeguatamente i certificati dei client.

  5. Il modello PKI è comunque abbastanza rotto. Il presupposto era che la CA verificasse l'identità dell'utente (ad esempio, il suo vero nome) prima di dare loro un certificato client e che il protocollo fosse progettato attorno a tale presupposto. Tuttavia, le CA di oggi non verificano realmente l'identità. Ciò crea una discrepanza tra i presupposti di progettazione e la realtà.

  6. I certificati dei clienti creano rischi per la privacy per gli utenti. In alcuni browser, consentono il tracciamento degli utenti tra domini. (Tutti i browser assicurano che i cookie difendano con cura da questa minaccia: solo il dominio che imposta il cookie può leggerlo. Tuttavia, i browser non incorporano protezioni simili per i certificati client SSL.) Non so se i browser moderni hanno effettivamente affrontato questo problema problema, ma è un'area in cui i certificati dei clienti sono relativamente immaturi, per quanto ne so.

  7. Ci sono fastidiosi problemi tecnici, se il client genera e firma il proprio certificato client. Secondo il protocollo TLS, il server dovrebbe prima chiedere un elenco di CA che è disposto ad accettare; il client risponde successivamente con un certificato client emesso da tale CA, se ne ha uno. (Si noti che ciò accade prima che il client abbia inviato una richiesta HTTP, eventuali cookie HTTP, un nome utente o qualsiasi altra informazione identificativa.) Ciò significa che, se si desidera utilizzare certificati client emessi dal client (autofirmati), allora il il server deve conoscere il nome della CA che il client utilizza prima ancora che il client si autentichi o si identifichi. È difficile.

  8. Infine, la ciliegina sulla torta: i client client non risolvono il problema del phishing. Impediscono il furto della chiave privata del cliente, ma non altre informazioni personali. I cattivi possono comunque creare un sito di banca falso (che scarta qualsiasi certificato client inviato ad esso). Il sito di phishing non apprenderà la chiave privata dell'utente, ma se l'utente pensa di essersi collegato al sito reale della banca, può digitare il proprio numero di conto bancario, SSN, PIN, ecc., Rivelando tali informazioni all'attaccante.

Tutto ciò si traduce in scarsa fruibilità e aumento dei costi di supporto (ad es. Chiamate di helpdesk). In breve, tu puoi usare i client client, almeno in linea di principio; è solo che, in pratica, farlo è scomodo per tutti e l'usabilità fa schifo.

Più fondamentalmente, c'è un problema a base di galline e uova: fino a quando molti siti non inizieranno a utilizzare certificati client, i produttori di browser non daranno la massima priorità alla fruibilità dei certificati client; e fino a quando i browser non renderanno utilizzabili i certificati client, i siti non li adotteranno. Per dirla in altro modo, se vogliamo utilizzare i certificati client per risolvere il problema di autenticazione generale, dobbiamo entrambi convincere tutti i produttori di browser a apportare modifiche importanti ai browser, e convincono i siti ad adottare nuove tecnologie. Nessun beneficio viene concesso a nessuno fino a quando tutte queste parti non apportano modifiche coordinate. Questo è un grosso ostacolo all'adozione.

Esistono soluzioni migliori per l'autenticazione sicura sul Web, che coinvolgono HTTPS, cookie persistenti sicuri e recupero basato su e-mail. Tuttavia, questo va oltre lo scopo della tua domanda.

Ultimo commento: la sfida fondamentale nell'autenticazione Web sicura è usabilità, usabilità, usabilità. Rendere i sistemi che funzionano bene per gli utenti - e sono sicuri, se usati come normali utenti probabilmente li useranno - è molto impegnativo, ed è tutto ciò che conta. Crypto è solo una piccola parte di questo problema.

15
D.W.

Penso che principalmente non vengano utilizzati perché la persona media (cioè, non tu da quando stai ponendo questa domanda) non riesci a capire il loro uso. Ci sono alcuni siti commerciali che li usano, ma di solito sono uno scopo molto speciale o per l'automazione. Ad esempio, Oracle utilizza i certificati client per convalidare gli utenti finali con contratti di supporto validi per gli aggiornamenti dei pacchetti. Ma anche con utenti altamente tecnici ottenere il corretto scambio di chiavi può essere una sfida.

Detto questo, utilizzo i certificati client per proteggere parti dei miei siti Web che lascio aperte al pubblico e penso che siano fantastici.

7
bahamat

Estonian National Identity Card è una smart card che contiene un certificato client incorporato. È possibile ottenere lettori di smart card e utilizzarlo a casa per richiedere servizi pubblici o autenticarsi presso le principali banche estoni. Tutto ciò che l'utente vede è un prompt carta/pin e la prossima cosa che sa di essere autenticato.

6
blowdart

Uno dei nostri clienti utilizza i certificati client per autenticare i sistemi di chioschi touch-screen. I sistemi sono distribuiti ai rivenditori e ognuno ottiene il proprio certificato radice CA installato nonché un certificato client unico.

Il client cert viene utilizzato per autenticare il sistema kiosk sul server web, senza richiedere al rivenditore di eseguire l'autenticazione manuale all'avvio del dispositivo. Se un singolo sistema deve essere chiuso, è facile per il nostro cliente revocare il certificato.

5
Martijn Heemels

Il ministro dell'Economia francese ha pubblicato un sito Web pubblico per la gestione fiscale (pagamento delle imposte online, informazioni sulle scadenze, download dei moduli ...) che utilizza il certificato SSL per l'autenticazione dell'utente. La registrazione dell'utente (questo ruolo è attribuito a Registration Authority in PKI) che è stata indicata da AviD ♦ come la principale difficoltà in un tale progetto, è stata risolta poiché questa amministrazione ha già abbastanza informazioni per identificare i contribuenti.

4
Jcs

Una variazione dei certificati del browser viene utilizzata nel protocollo ActiveSync basato su HTTP/S.

Diversi amministratori di posta elettronica utilizzano i certificati per autenticare i dispositivi mobili in modo che la posta elettronica mobile non smetta improvvisamente di funzionare quando l'utente cambia la password.

1

I certificati client hanno la migliore qualità per l'autenticazione. Ma a causa di un problema di pollo e uova, gli utenti non hanno motivo di acquisire un certificato serio (costa tempo e denaro perché la consegna dovrebbe essere un'operazione faccia a faccia) perché pochi siti li usano e gli amministratori del sito non hanno motivo di supportarli attivamente poiché i loro utenti generalmente non hanno un certificato.

I sistemi aziendali sono diversi perché se i requisiti di sicurezza sono sufficientemente elevati, il costo globale di un'infrastruttura PKI è perfettamente accessibile.

Ma quando ricordi qual è il costo e la procedura totali effettivi per una carta d'identità nazionale (senza parlare di passaporto), l'aggiunta di un certificato stabilito da un'amministrazione nazionale non aggiungerebbe molto e risolverebbe tutte le domande di autenticazione con siti istituzionali come le amministrazioni, banche, ... Naturalmente non lo userei per siti commerciali o forum controllati

1
Serge Ballesta

Lavoro sviluppando un sito che offre l'autenticazione con smart card. L'utente collega un lettore di schede USB, accede al sito e, quando desidera accedere, inserisce la scheda e fornisce un PIN. Il problema è che il sistema utilizza un Java Applet e queste applet non sono più supportate da Chrome o da MS Edge. È in fase di sviluppo un nuovo middleware che not use Java Applets, ed è una corsa contro il tempo in quanto possiamo vedere tutti i principali browser che si fermano Java Applets dall'interazione con l'hardware sul PC in futuro.

0
Totoro53

Se espandiamo l'ambito OP per andare oltre il browser. I certificati client possono essere utilizzati anche nel contesto non browser. Ad esempio Docker utilizza TLS e certificati client per proteggere le connessioni tra un client docker remoto e i loro demoni.

Questo dovrebbe comunque essere gestito, ma non deve passare attraverso una CA a tutti gli effetti, può essere una CA aziendale interna per gestire tutti i certificati utilizzati dalle macchine.

0