Token hardware per autenticare l'applicazione Web

5

La mia azienda sta sviluppando un'applicazione web e mi è stato chiesto di cercare come eseguire l'autenticazione token basata su hardware per accedere alla nostra applicazione web . Permettetemi di ripetere: fondamentalmente ci sarà un'app web, e ci sarà un usb di sort per essere collegato al computer, potrebbe essere necessario inserire user name e amp; password da qualche parte e a condizione che il nome utente e amp; la password è corretta, l'utente deve essere autenticato per utilizzare la nostra applicazione web. Ovviamente non vogliamo che l'utente scarichi / installi nulla sulla macchina perché la macchina potrebbe non essere la loro o semplicemente non vogliono fare nulla di più. La mia azienda ha suggerito di avere un plugin per il browser, ma dal momento che il plugin ha i diritti di sistema del browser o meno, e un browser non dovrebbe essere in grado di accedere all'hardware sottostante (eccetto per telecamera e microfono poiché sono essenziali)

Un modo in cui vedo come farlo è probabilmente avere una versione modificata di un browser web che allo stesso tempo ha la capacità di verificare se il token di sicurezza (la usb) presenta, quindi avviare l'app web da lì. Se gli utenti non vogliono eseguire nulla o il computer di destinazione non consente di eseguire questo tipo di cose, penso che farlo sia impossibile. Voglio solo verificare con voi ragazzi se mi manca qualcosa.

    
posta wakandan 18.10.2014 - 20:19
fonte

4 risposte

3

Suggerirei quindi Yubikey ( link ). Yubikey è un token hardware OTP che fa finta di essere una tastiera (quindi non richiede un'installazione software extra), quindi invia un segreto crittografato a 128 bit al server. I token sono completamente programmabili dall'amministratore e è possibile utilizzare il token in vari modi. Puoi utilizzare i token senza password, ad esempio utilizzare i token come autenticazione "What you have" a un fattore.

Tuttavia, è possibile che l'utente digiti una password prima di premere il pulsante sul token.

È anche possibile configurare il token per utilizzare un'identità pubblica e quindi una chiave AES univoca per utente, OPPURE è possibile utilizzare un'identità segreta e quindi scorrere tutte le chiavi AES e decifrare (ad esempio, se si dispone di 10 utenti, quindi iterate attraverso le 10 diverse chiavi AES memorizzate sul server) ma il processo può consumare CPU, OPPURE potreste avere lo stesso codice AES per tutti gli utenti.

Se ne selezioni una sulle prime alternative, potresti utilizzare uno dei token Yubico. Se si sceglie l'ultima alternativa, suggerirei Yubikey NEO, che ha un chip crittografico crittografico resistente alle manomissioni, che rende impossibile per un utente canaglia, manomettere lo yubikey per estrarre il tasto AES (che lo renderebbe possibile per questo utente canaglia di identificarsi come un altro utente).

Il vantaggio di usare un'identità segreta è che se qualcuno trova il yubikey, non sarà in grado di scoprire a chi appartiene. Un altro vantaggio del NEO è che ha il supporto NFC e può generare i segnali di un "adesivo URL NFC", ma aggiungendo un OTP alla fine, come " link " in modo che l'utente possa utilizzare il suo Yubikey per accedere tramite un telefono cellulare compatibile con NFC.

    
risposta data 19.10.2014 - 01:12
fonte
2

Il CryptoStick utilizza API di crittografia Web per esporre le chiavi al browser. È probabile che il prodotto del token di sicurezza USB proposto utilizzi una tecnica simile. CryptoStick è open source , quindi è facile per le terze parti verificarne la sicurezza.

L'autenticazione a 2 fattori che utilizzo regolarmente è Google Authenticator , il che rende molto facile per il web applicazioni per supportare l'autenticazione a due fattori. Sembra che sempre più servizi supportino Google Authenticator, LastPass e Amazon AWS sono dei buoni esempi.

    
risposta data 18.10.2014 - 20:31
fonte
1

Oltre alla risposta di sebastian, potresti anche considerare di non utilizzare il server back-end di yubicos ma di eseguire il tuo sistema, in modo che la richiesta di autenticazione non venga inoltrata a yubico ma gestita sul tuo sistema o all'interno della sottorete (i tuoi clienti). Purtroppo, è necessario installare / eseguire un tale sistema di backend. Yubico stesso fornisce un server di autenticazione ma puoi anche dare un'occhiata al back-end di autenticazione open source privacyidea , che puoi usare per gestire yubikeys ma anche soft- Token OTP come Google Authenticator.

Potresti anche configurare uno di questi sistemi ed eseguirlo per diversi clienti.

    
risposta data 19.10.2014 - 18:04
fonte
1

Un token RSA potrebbe essere un'altra opzione. Ciò richiede all'utente di inserire un OTP che viene visualizzato sul token RSA. Funziona bene ma non è economico.

    
risposta data 19.10.2014 - 19:50
fonte

Leggi altre domande sui tag