Esiste un'alternativa oltre all'invio di One-Time-Password via SMS?

11

Sto lavorando su un sistema più piccolo in cui sarà richiesto di inserire la password One-Time (OTP, da non confondere con un One-Time-Pad ) per scaricare file sensibili che sarà consegnato all'utente.

L'idea principale era, per inviare un OTP via SMS entro un limite di tempo preimpostato.

Ma dal momento che gli SMS non sono abbastanza sicuri, ho iniziato a pensare a qualsiasi altra alternativa per fornire un OTP ai miei utenti.

Posso suggerire ai miei utenti di usare Signal e poi fornire loro le informazioni, ma in tal caso temo che sarà troppo complicato per loro.

Qualche idea o dovrei seguire la mia idea principale?

    
posta Mirsad 17.06.2016 - 01:41
fonte

5 risposte

20

Perché non puoi usare TOTP o HOTP che è standard e supportato dalla maggior parte delle app di autenticazione?

Quando le persone si registrano al tuo servizio, devono registrare la loro app di autenticazione eseguendo la scansione di un codice QR che contiene il seme segreto utilizzato per generare i codici.

Nelle visite successive il sito richiede loro di immettere i codici generati dall'app, senza alcun accesso alla rete poiché i codici sono generati localmente sul dispositivo.

Come bonus, dal momento che stai utilizzando i protocolli standard, i tuoi utenti potrebbero già aver installato un'app autenticatore compatibile e, in caso contrario, potrebbero spingerli a utilizzare l'app per ulteriori servizi (il loro account Google, ecc.). Alla fine, gli utenti sono più sicuri e vincono tutti.

    
risposta data 17.06.2016 - 03:26
fonte
6

Poiché la domanda riguarda le idee:

Chiamata vocale automatizzata con verifica del codice PIN prima di compitare l'OTP.

  • Molto semplice per utenti inesperti - non richiede software aggiuntivo, istruzioni fornite in tempo reale, ad esempio:

    Hello this is mirsad's verification system. Please enter your PIN to hear the password for your download

    Thank you, your password is ....., please use it within five minutes. Remember, do not give this password to anyone else!

  • Richiede agli utenti di ricordare il codice PIN

  • Più sicuro di SMS - impedisce il recupero passivo della password (un utente malintenzionato non può leggere dallo schermo di un dispositivo non presidiato)

  • Richiede misure per prevenire lo snooping, ad esempio:

    • il lato di ascolto produce toni udibili casuali durante l'immissione del PIN e recupera il codice fornito dall'utente calcolando la differenza (la mia banca lo fa)

    • chiedi all'utente di digitare un diverso set di cifre casuali da un PIN più lungo, ad esempio "premi la sesta cifra del tuo PIN, premi la terza cifra del tuo PIN" (l'altra mia banca lo fa)

risposta data 17.06.2016 - 02:56
fonte
3

È improbabile che le vulnerabilità in A5 / 0 e A5 / 1 siano un problema importante per l'autenticazione di un piccolo sistema con poche centinaia di client.

Tuttavia, se si desidera evitare l'utilizzo del GSM come canale di consegna, è possibile disporre di un OTP basato sul tempo ( TOTP ) utilizzando Google Authenticator. Dovresti creare un segreto per ciascun utente sul tuo server, che è in grado di eseguire la scansione con l'app di autenticatore di Google. Un esempio di come funziona è qui

    
risposta data 17.06.2016 - 03:27
fonte
3

Come menzionato in precedenza, sia TOTP che HOTP sono entrambi standard che esistono come alternativa all'invio di codici unici su SMS.

  • I TOTP sono codici basati sul tempo e sono spesso disponibili utilizzando app come Google Authenticator , o come stile fob RSA SecurID o carte .

  • Gli HOTP sono basati su HMAC e sono spesso disponibili tramite software di generazione di token, incluso Google Authenticator e piattaforme simili.

  • C'è anche lo standard OTP implementato da Yubico nei primi Yubikeys, in cui il dongle hardware USB emulava una tastiera per inserire una password monouso estremamente lunga.

Infine, se vogliamo visualizzare opzioni che non sono strettamente OTP, ma possono fungere da secondo fattore:

  • U2F, uno standard aperto di secondo fattore (sta per U niverseal 2 nd F attore). Si basa su un meccanismo di risposta alle sfide con uno scambio di chiavi che si verifica al momento della registrazione dell'hardware. Gli Yubikeys sono probabilmente i più famosi fob U2F in circolazione adesso.

  • Poiché si basano anche su un meccanismo di scambio di chiavi e di risposta alle sfide, le chiavi SSH potrebbero essere utilizzate come un secondo fattore durante l'autenticazione. Tuttavia, questo metodo non vede un uso diffuso.

  • Le chiavi PGP, allo stesso modo, possono essere usate per questo scopo - e come le chiavi SSH, le applicazioni in cui PGP è usato come secondo fattore sono, per quanto ne so, attualmente limitate.

risposta data 17.06.2016 - 06:58
fonte
2

Sono d'accordo con @ André-borie. Ma nel caso in cui insisti a inviare un codice di autenticazione all'utente, potresti dare un'occhiata all'app pushover. Ho controllato con Telegram ma penso che Signal sia simile. L'API di Telegram non consente di intendere una comunicazione con un dispositivo.

Ma puoi dare un'occhiata al pushover.

    
risposta data 17.06.2016 - 21:36
fonte

Leggi altre domande sui tag