Quante combinazioni di tempo / risultato conosciute servono per indovinare un segreto HOTP / TOTP?

5

Ho pensato di "recuperare", "determinare", "indovinare", "calcolare" o "riprodurre" i segreti HOTP / TOTP quando è noto solo l'esito (codice a 6 cifre + tempo).

Nel caso in cui possiamo vedere la creazione dal vivo dei codici HOTP / TOTP senza conoscere il segreto reale.

  1. Quanti risultati noti (combinazione di tempo e codice a 6 cifre) servono per "indovinare" la chiave segreta?
  2. E quindi, quanto è probabile che possiamo recuperare con successo la chiave segreta per riutilizzarla e convalidare l'output prodotto?
  3. Esistono (codice) esempi di come questo potrebbe essere ottenuto?
posta Bob Ortiz 20.06.2017 - 11:00
fonte

1 risposta

5

Dai un'occhiata a come viene calcolato l'HOTP (il TOTP è solo un caso speciale basato su un momento per ora). Sta usando HMAC basato sulla funzione di hash SHA1, SHA2 (o MD5 nel peggiore caso di sicurezza) di seed segreto e qualche contatore. Restituisce parte del risultato come PIN.

Come attaccante intercettando i PIN, stai cercando di scoprire un seme segreto di lunghezza sconosciuta.

Basato sulla definizione di funzione hash, non reversibile (a meno che non sia rotto). Non è possibile invertire semplicemente l'operazione anche se si dispone dell'intero hash. Ma hai da 6 a 8 cifre decimali. Inoltre, non si sa dove si inseriscono nella stringa decimale più lunga, anche questa cambia in base all'ultimo byte).

Quindi quali sono le opzioni che hai? Il modo più semplice sarebbe probabilmente quello di forzare la forza bruta su tutti i possibili valori per seme (ad esempio 32 B stringa esadecimale) e confrontarli con i dati intercettati. Questo potrebbe funzionare con il TOTP poiché è possibile conoscere anche l'ora in cui è stata generata (intervalli di tempo di 30 secondi). Ma nel HOTP non hai idea di cosa sia il contatore (a meno che tu non riesca a intercettare tutti i PIN.

Direi che la forza dell'OTP è la complessità dell'algoritmo e la semplicità d'uso. Non sto dando una prova del perché è difficile, ma spero che la risposta riassuma la tua domanda e le risposte perché non puoi semplicemente farlo.

    
risposta data 20.06.2017 - 14:20
fonte

Leggi altre domande sui tag