Protocollo U2F - Valore del contatore e clonazione del dispositivo

2

La mia domanda riguarda il protocollo U2F e più precisamente il rilevamento della clonazione. Secondo il documento:

" Se esiste la possibilità che un token U2F possa essere clonato, abbiamo anche bisogno di un modo per rilevarlo. Possiamo farlo con un contatore di operazioni Ogni volta che viene eseguita un'operazione di crittografia, il contatore aumenta di 1. Il valore del contatore viene firmato e inviato come parte della risposta alla parte relying, che memorizza il valore del contatore nel suo database.Se il valore del contatore in una risposta di autenticazione futura è inferiore al valore del contatore memorizzato da relying party, quindi il token è stato clonato e la relying party deve rifiutare la richiesta di autenticazione e probabilmente dovrebbe anche registrare l'evento e / o eseguire le azioni necessarie per proteggere l'utente, ad esempio bloccando il token da ulteriori tentativi di autenticazione. / em> "

Perché il valore del contatore in una futura risposta di autenticazione sarebbe inferiore al valore del contatore memorizzato da una parte relying? Se un utente malintenzionato ha clonato il dispositivo, ha accesso al valore del contatore corrente memorizzato nel dispositivo originale, non è vero? Potrebbe quindi inviare un valore contatore maggiore del contatore memorizzato nel database della relying party e il dispositivo non verrà contrassegnato come compromesso.

Sicuramente mi sbaglio, ma mi sto solo chiedendo.

Grazie in anticipo!

    
posta QBl 03.06.2017 - 19:09
fonte

1 risposta

1

Tracciamo uno scenario:

T = 1     Authenticate Real, Counter = 20
T = 2     Device is cloned into Real / Dup
T = 3     Authenticate Real, Counter = 21
T = 4     Authenticate Dup, Counter = 21

Poiché il server ha visto lo stesso contatore due volte, ovviamente è stato clonato.

The attacker could send a counter value bigger than the counter stored in the database of the relying party

Va bene, proviamo, ad es. aggiungendo 1000 al contatore.

T = 1     Authenticate Real, Counter = 20
T = 2     Device is cloned into Real / Dup
T = 3     Authenticate Real, Counter = 21
T = 4     Authenticate Dup, Counter = 1021

Sembra che ...

T = 5     Authenticate Real, Counter = 22

Uh oh - 22 è inferiore a 1021 - ora la vera chiave è stata negata e l'utente ne sa qualcosa.

    
risposta data 03.06.2017 - 19:18
fonte

Leggi altre domande sui tag