Come può funzionare l'identificazione online con "chiavetta USB"?

70

La mia banca ha recentemente rinnovato il suo sito web, e per quanto mi riguarda è cambiato per il meglio. Soprattutto, la sicurezza sembra essere stata notevolmente migliorata.

Soprattutto, hanno introdotto un metodo di identificazione piuttosto insolito (non l'ho mai visto prima), che chiamano il "certificato elettronico". Fondamentalmente, devi andare in banca di persona e il ragazzo ti dà una piccola chiavetta USB economica con una capacità molto bassa. Da questo momento, ti verrà richiesto di collegare la chiavetta al tuo computer ogni volta che vorrai effettuare l'accesso. Il solo stick non è sufficiente, devi anche digitare la tua password - fondamentalmente, l'autenticazione a 2 fattori con un dispositivo USB essendo il secondo fattore.

Com'è possibile che funzioni? Naturalmente, credo che la chiavetta USB contenga certificati / chiavi di crittografia di qualche tipo, utilizzati nel processo di login, ma non richiedono l'utente per installare qualsiasi software sulla macchina. Trovo piuttosto inquietante che un sito web a cui si accede da un browser web sandboxed, senza plug-in / module / app / toolbar installato, possa vedere la chiavetta USB appena collegata. E non solo vedere questo bastone, ma leggilo e usa il suo contenuto abbastanza profondamente per accedere al livello più delicato della tua app di banking online.

Non sono un grande fan di collegare dispositivi sconosciuti al mio computer per cominciare, e la mia spia si è illuminata quando mi è stato spiegato, così ho optato per un altro metodo di identificazione (puoi scegliere). Sono solo curioso.

PS: la misura ovviamente non si applica alle loro app mobili, dal momento che gli smartphone non hanno porte USB, ma non è un grosso problema perché non puoi fare molto con la loro app del telefono (è principalmente un'app di consultazione, non qualcosa tu può effettivamente effettuare grossi pagamenti / trasferimenti con).

Modifica: non viene utilizzata alcuna finestra di dialogo aperta, il che renderebbe la spiegazione abbastanza chiara.

    
posta Zozor 06.01.2017 - 09:11
fonte

9 risposte

63

Ciò che la tua banca ti ha dato è un token di sicurezza USB con un certificato digitale (come questi ). Si tratta di dispositivi hardware standardizzati che quasi tutti i sistemi operativi supportano plug & play out of the box. Sono molto comuni per l'implementazione dell'autenticazione a più fattori per i sistemi ad alta sicurezza nell'IT aziendale.

Il tuo browser web utilizza HTTPS con certificati basati su client per accedere al sito web della tua banca. Utilizza l'archivio dei certificati dei sistemi operativi per trovare un certificato installato che corrisponda all'identità richiesta dal server web. Quando si installa un token di sicurezza USB standard, il sistema operativo cerca anche eventuali certificati sul token.

Il sistema operativo non può eseguire il processo di verifica con il server web da solo, poiché il token non consente di leggere direttamente la chiave privata dei certificati memorizzati su di esso. Il token include l'hardware per effettuare la verifica. Quindi la chiave privata non lascia mai la chiavetta USB. Ciò significa che anche se il tuo PC è compromesso da malware, la chiave privata del certificato non rischia di essere rubata (ma tieni presente che questo metodo non fornisce alcuna protezione dopo che l'autenticazione ha avuto successo. il tuo browser web.

A proposito: che banca è? Se anche la mia banca supportasse questo metodo di autenticazione, potrei persino iniziare a fare operazioni bancarie online.

    
risposta data 06.01.2017 - 15:50
fonte
30

Un modo in cui potrebbe funzionare è che Chrome supporta FIDO U2F senza plug-in. Dato che ora Chrome è il browser più popolare e che Chrome funziona su Windows, Mac e Linux, non è del tutto scorretto affermare che "funziona su qualsiasi dispositivo che abbia una porta USB, Windows, Mac, Linux e altro, e lavorare fuori dagli schemi ".

Hanno affermato che funziona su qualsiasi browser o su qualsiasi sistema operativo?

    
risposta data 06.01.2017 - 12:08
fonte
27

....they don’t require the user to install any software on the machine.... I thought that the ability for a webpage to browse the file system freely without user action is too commonly restricted by default

Sì, questo non dovrebbe assolutamente essere possibile senza i driver smartcard. Questo è un meccanismo di sicurezza fondamentale di qualsiasi browser. Che cosa dà al clou che il certificato viene letto senza fare clic su una finestra di dialogo "Apri file", una finestra di dialogo Java o driver pre-installazione? Hai detto che hai scelto un'altra opzione di verifica.

Sembra la chiave USB utilizzata, ad esempio, dalla Bank Of China. Tale tecnologia è descritta qui.

was said to be compatible with "any device that has a USB port"

Avere un certificato PKCS # 11 o un # 12 da combinare con una passphrase funzionerà su tutti i sistemi operativi. Questo è lo stesso modo in cui i gestori di password come keepass lavorano, combinando qualcosa che conosci con qualcosa devi ottenere 2 fattori di autenticazione.

    
risposta data 06.01.2017 - 09:56
fonte
13

Probabilmente è solo un lettore di smart card USB, con una smartcard di dimensioni SIM inserita.

L'installazione manuale dei driver non è necessaria poiché almeno i driver generici per lettore e scheda sono già installati nella maggior parte dei sistemi operativi moderni.

Guarda l'immagine seguente per esempio di tale dispositivo:

Esiste un certificato con chiave privata memorizzata su quella smart card SIM all'interno del lettore. Quando lo colleghi al computer, quel certificato dalla smartcard viene caricato nell'archivio certificati del SO. Da lì in poi si comporta fondamentalmente come qualsiasi altro certificato che viene salvato sul computer e può essere utilizzato per accedere a risorse sicure, firmare documenti / mail, crittografare cose, ecc.

Questo in particolare è emesso dall'autorità Cert che è considerata attendibile dalla mia banca (web banking) e dallo stato (per lo più utilizzato da me per materiale correlato all'IRS e richiedendo documenti reali).

    
risposta data 06.01.2017 - 16:56
fonte
11

Molto probabilmente è un dispositivo che finge di essere una tastiera ed è quindi riconosciuto da qualsiasi sistema operativo senza richiedere driver speciali. Internamente, probabilmente usa HOTP (o TOTP, se ha un chip RTC e una batteria) e semplicemente "digita" l'OTP ogni volta che si preme il pulsante, come un Yubikey o dispositivo U2F simile.

Il browser non parla e non sa che l'USB è lì; richiede semplicemente all'utente di premere un pulsante fisico sul dispositivo (per dire al dispositivo di "digitare" il codice, poiché il browser stesso non può parlarci) e quindi interpreta le sequenze di tasti (fino alla lunghezza del codice) riceve come proveniente dal dispositivo.

    
risposta data 06.01.2017 - 10:42
fonte
9

Sembra un'idea teorica che avevo circa dieci anni fa.

Praticamente tutti i sistemi operativi supportano i dispositivi di rete USB. La tua chiavetta USB può fingere di essere una scheda di rete, connessa a una rete locale, con un server web su quella rete. Anche quel server web può avere certificati HTTPS.

Il tuo browser web può fare richieste HTTPS a quel server web e scoprire che la chiavetta USB e il sito web della banca si fidano a vicenda. Questo non è considerato un escape sandbox, perché né il browser né il sistema operativo sanno che il server web si trova effettivamente sulla chiavetta USB.

Avviso IP: per quanto ne so, il mio ex datore di lavoro detiene un brevetto su questa idea nella maggior parte delle giurisdizioni. Contatta un avvocato specializzato in brevetti prima di copiare questa idea.

    
risposta data 06.01.2017 - 14:08
fonte
6

Prima di tutto, lasciatemi affermare che sono piuttosto scettico sull'affermazione di un dipendente non tecnico di funzionare su "qualsiasi dispositivo dotato di porta USB", indipendentemente dal browser o dal sistema operativo. Non sarei sorpreso se il sistema operativo supportato risultasse essere solo un paio di versioni di Windows (e, forse, MacOS). Tuttavia, è interessante pensare a come un dispositivo del genere possa funzionare.

La maggior parte delle soluzioni che non richiedono driver, come la proposta di André Borie di una tastiera usb, richiederebbe comunque un'interfaccia aggiuntiva (come un pulsante hardware).

Tuttavia, il post di user2720406 mi ha dato un'idea per un dispositivo che funzionerebbe effettivamente [in determinati luoghi] per qualsiasi dispositivo [acceso] dotato di una porta USB:

Il dispositivo USB sarebbe semplicemente un contenere un , usando che per accedere a Internet sul proprio tramite GPRS / 3G. Quindi il dispositivo invierà semplicemente messaggi con firma digitale di «Cliente con token 12312121 che utilizza il servizio bancario online». La sessione online non è consentita a meno che uno non sia stato ricevuto negli ultimi 5 minuti (più forse altri fattori, come l'IP del cliente che ha una geolocalizzazione simile all'IP del dispositivo). Pertanto, la porta USB verrà utilizzata solo per l'alimentazione e il dispositivo sarà completamente indipendente su ciò che è installato sul computer.

    
risposta data 06.01.2017 - 18:52
fonte
6

Come alcune delle altre risposte menzionate, questo è molto probabilmente un token di sicurezza USB. Pensala come un lettore di smart card + smart card incorporata (ea volte vengono implementate in questo modo). Pensa scheda CAC utilizzata dalle organizzazioni di difesa statunitensi. Pensa alla carta PGP. Alcuni modelli di Yubikey supportano anche la funzione di smart card.

Questo tipo di dispositivi è ampiamente utilizzato dalle banche in Cina per proteggere il loro sito web di banking online / software client desktop, e la mia risposta si basa principalmente sulla mia esperienza personale usando questi token in Cina.

Come lo usi?

Quando ti registri per l'online banking e opti per un token USB, la banca ti dà il token, crea una coppia di chiavi pubblica / privata e il tuo certificato personale, e carica quelli nel token. Imposta una password sul token, che è separata dalla tua password di accesso al banking online.

Installa il driver fornito dalla banca sul tuo personal computer, collega il token e naviga sul sito web della banca. Ogni volta che si accede o si esegue un'operazione sensibile (trasferimento di fondi, modifica delle informazioni di contatto, autorizzazione dell'acquisto online, ecc.), Il browser / sistema operativo richiede la password del token, la spia sul token lampeggia per alcuni secondi e la transazione passa attraverso.

Aspetta, devo installare i driver?

Sì. Il sistema operativo Windows ha un'interfaccia standard per smart card, ma ogni modello di token USB richiede ancora un driver. Molto raramente, Windows Update installerà i driver corretti per te, ma nella maggior parte dei casi dovrai scaricare un pacchetto dal sito web della banca.

Spesso l'unico sistema operativo supportato è Windows e l'unico browser supportato è IE. (A loro piacciono alcuni ActiveX.) In generale è certamente possibile utilizzare smart card / token USB per supportare altri SO / browser, vedere la scheda CAC sopra; devi verificare la compatibilità con la tua banca.

Quindi come ti autentica?

Il browser chiede al sistema operativo di chiedere al token di firmare una piccola porzione di dati (forse i dettagli della transazione). Il token lo firma, utilizzando la chiave privata e il certificato. Il browser invia la firma alla banca. La banca verifica la firma ed è convinta che solo il token che ti hanno fornito abbia la chiave privata per produrre questa firma.

La chiave privata non lascia mai il token. Se progettato correttamente, il token non deve mai divulgare la chiave privata.

    
risposta data 07.01.2017 - 10:04
fonte
1

Sembra un Yubikey. Sono famosi e lavorano alla grande. link

  • Per non aver bisogno di driver: Yubikey si identifica come una tastiera, quindi ogni macchina con un driver di tastiera può leggere il testo in uscita da esso.
  • Come funziona: premi il pulsante e Yubikey emette una chiave pubblica (da una chiave privata protetta inclusa nel dispositivo). La banca può quindi autenticarti e confermare che hai la cosa che conosci (la tua password) e la cosa che hai (il tuo protetto fisicamente privato chiave).
  • Perché è sicuro: non è possibile per il software sul tuo computer per accedere alla tua chiave privata in modo che il malware non possa copiare il file chiave e fingi di essere te. Dovrebbe essere fisicamente rubato da te. (che è possibile, ma è per questo che lo accoppi con qualcosa che conosci)

  • Chi li utilizza e perché: Google ha aiutato a progettare lo yubikey in modo che potessero risolvere il problema del malware su un computer che acquisisce le credenziali locali mentre l'utente non era presente. Ogni ingegnere di Google ne ha uno. Io ho li usò per anni e implementò numerose soluzioni 2fa intorno a loro.

risposta data 06.01.2017 - 23:44
fonte

Leggi altre domande sui tag