Come funziona HSBC "Secure Key"?

43

La mia banca mi ha recentemente inviato un Digipass / Secure Key, che sembra una piccola calcolatrice . Premi il pulsante verde per accenderlo, digita un PIN per sbloccarlo, quindi premi di nuovo il pulsante verde per generare un codice a 6 cifre digitato al momento del login.

Tuttavia, in realtà non capisco come questo dispositivo aumenti la sicurezza. Suppongo che ogni dispositivo sia collegato all'account di una persona. Ma non c'è comunicazione dal dispositivo. Posso premere il pulsante 10 volte e generare 10 codici diversi, ognuno dei quali sembra funzionare.

In che modo la banca sa che il codice è autentico?

    
posta DisgruntledGoat 12.11.2012 - 02:05
fonte

3 risposte

44

Ci sono due modi standard per costruire un dispositivo del genere:

  • Basato sul tempo. Il dispositivo ha una chiave segreta K (nota solo al dispositivo e alla tua banca). Quando premi il pulsante, il dispositivo calcola F (K, T) (dove T è l'ora corrente) e lo emette come un codice a 6 cifre.

    La tua banca, che conosce anche K , può calcolare la stessa funzione. Per far fronte al fatto che gli orologi potrebbero non essere perfettamente sincronizzati, la banca calcolerà un intervallo di valori e verificherà se il codice a sei cifre fornito cade in qualsiasi punto di quell'intervallo. In altre parole, la banca potrebbe calcolare F (K, T-2) , F (K, T-1) , F (K, T) , F (K, T + 1) , F (K, T + 2) e se il codice fornito corrisponde a uno qualsiasi di questi 5 valori, la banca accetta il tuo login.

    Sospetto che non sia così che funziona il tuo dispositivo, dal momento che il tuo dispositivo ti dà sempre un valore diverso ogni volta che premi il pulsante.

  • Basato sulla sequenza. Il dispositivo ha una chiave segreta K (nota solo al dispositivo e alla tua banca). Contiene anche un contatore C , che conta quante volte hai premuto il pulsante fino a quel momento. C è memorizzato nella memoria non volatile del dispositivo. Quando si preme il pulsante, il dispositivo incrementa C , calcola F (K, C) e lo emette come un codice a 6 cifre. Ciò garantisce che ottieni sempre un codice diverso.

    La banca tiene traccia del valore corrente del contatore per il tuo dispositivo e lo usa per riconoscere se il codice a sei cifre che hai fornito è valido. Spesso, la banca testerà una finestra di valori. Ad esempio, se l'ultimo valore del contatore che ha visto era C , il banco potrebbe calcolare F (K, C + 1) , F (K, C + 2) , F (K, C + 3) , F (K, C + 4) e accetta il tuo codice a 6 cifre se corrisponde a uno qualsiasi di quelle quattro possibilità. Questo aiuta a garantire che se si preme il pulsante una volta e poi non lo si invia alla banca, è ancora possibile accedere (non si è bloccato per sempre). In alcuni schemi, se c'è una lacuna nei codici (ad es., Perché hai premuto il pulsante alcune volte e poi non hai inviato il codice alla banca), dovrai inserire due codici validi consecutivi prima che la banca ti registri on.

In base a ciò che ci hai detto, ipotizzo che il tuo dispositivo stia probabilmente utilizzando l'approccio basato sulla sequenza.

    
risposta data 12.11.2012 - 04:08
fonte
9

Se desideri una spiegazione "aperta" su come viene derivata la password One-Time, puoi leggere lo standard di Oath e le specifiche dell'algoritmo qui, link . Il prodotto Vasco / Digipass supporta questa specifica e può essere utilizzato dal token in questo caso, tuttavia supportano altri algoritmi di generazione OTP.

In genere il numero di serie del token viene mantenuto come record nel database del server di autenticazione e il numero di serie è assegnato a un nome utente. Il numero di serie è anche abbinato a un valore "seme", che quando combinato con l'algoritmo con il valore tempo / sequenza deriva l'OTP.

Inoltre, sei stato in grado di inserire ripetutamente un PIN ripetutamente e di essere autenticato perché il server di autenticazione consentirà un paio di minuti di deriva del clock. Il token che hai ha un orologio integrato per generare il componente basato sul tempo. Il server genera valori per un intervallo di tempo. Quindi può vedere quale codice inviare e scrivere un valore di deriva nel tuo record. Alcuni sistemi avranno una modalità 'next-tokencode', che viene utilizzata se gli orologi si allontanano troppo. Il sistema ti chiederà di inviare due valori e vedere se sono corretti e nell'ordine corretto, in un intervallo di tempo più ampio. Se i valori sono corretti, il server di autenticazione può scrivere il valore di deriva dell'orologio sul record.

    
risposta data 12.11.2012 - 16:16
fonte
4

Penso che questa domanda si presta a una panoramica di altissimo livello su come l'autenticazione a più fattori ( MFA ) lavori. Ovviamente, dobbiamo sfogliare molti e molti di dettagli tecnici.

In breve, ecco cosa succede:

  1. La banca programma il token con una crittografia univoca chiave . (In questo caso il token Digipass è realizzato da Vasco, ma ci sono molti altro aziende che creano token simili, che sono" qualcosa che hai "per quanto riguarda l'autenticazione a più fattori).

  2. Il token genererà una serie di caratteri derivati dalla chiave di crittografia, dall'ora corrente e (facoltativamente) da altri vari fattori.

  3. Poiché la banca conosce la chiave di crittografia (univoca) e tutti gli altri fattori utilizzati dal token, può decodificare l'input per scoprire chi "possiede" quel token. Se il proprietario del token corrisponde al proprietario del conto bancario a cui è stato effettuato l'accesso, l'accesso è autentico.

Ci sono molte varianti su questo tema centrale, ma in generale implicano sempre "qualcosa che hai" (un token fisico o un'app per smartphone), una chiave segreta memorizzata nel token e un algoritmo matematico per produrre l'output .

Spesso, il tempo è un fattore critico nel generare l'output. A seconda dell'algoritmo, l'output può essere diverso ogni volta (nel tuo caso) o può variare solo occasionalmente (ad esempio ogni ora).

    
risposta data 12.11.2012 - 03:56
fonte

Leggi altre domande sui tag