[Questa è la mia opinione, non sto affermando che rappresenti la visione del settore]
Sono assolutamente d'accordo sul fatto che alcuni dei dati segreti memorizzati sul dispositivo principale sfocino tra "qualcosa che conosci" e "qualcosa che hai". A quale lato della linea cade, penso, dipende dalle specifiche di cosa sono questi dati e da come funziona il protocollo di autenticazione, e da quale prospettiva si sta guardando.
Tecnicamente yubikeys, smartcard e persino OTP fobs , sono anche un pezzo di dati segreti memorizzati in software, anche se in un modo che è difficile anche per un utente malintenzionato con accesso fisico da estrarre. Discuterò che la cosa di cui si sta dimostrando il possesso non è il dispositivo, ma i dati segreti. Con i token hardware questi sono gli stessi, ma le persone vanno e applicano lo stesso modo di pensare ai telefoni e ad altri tipi di segreti e non sono sicuro che sia il modo corretto di pensarci.
Definizioni di "Conosci" o "Abbi"
Che tipo di segreto è, e in che modo il tuo dispositivo memorizza e accede a una scala mobile di sicurezza ( plain text file --> yubikey
). Da qualche parte in là si trova il confine tra "sapere" e "avere". Dove si disegna quella linea, penso, dipende pesantemente dalla prospettiva che si prende. Alcuni esempi:
-
Prospettiva dell'utente finale: probabilmente traccia la linea in "venuto dalla mia memoria" e "è memorizzato su un dispositivo".
-
Prospettiva amministratore di sistema: probabilmente tracci la riga se puoi chiedere nuovamente il dispositivo e essere sicuro che l'utente non abbia più il segreto.
-
Prospettiva del server di autenticazione: nella maggior parte dei casi, il server non ha modo di sapere se il segreto proviene da un dispositivo sicuro o è derivato da una password digitata dall'utente. Quindi la distinzione rilevante dalla sua prospettiva è se si tratta di un segreto condiviso che sia sia del client e del server, sia che si tratti di una sorta di chiave pubblica che è necessario per provare il possesso di senza rivelare il segreto reale. La pratica cartina di tornasole è che "sa" tendere ad essere vulnerabile a registrare e ripetere attacchi, mentre "haves" tende a non esserlo.
Ci sono alcuni casi in cui tutti sono d'accordo: una password che l'utente digita in una casella di testo è chiaramente un "sapere" e una smartcard con una coppia di chiavi RSA è chiaramente un "avere". Ma non importa come tu definisca "sapere" o "avere", penso che ci saranno sempre dei casi limite che una delle prospettive di cui sopra considera un "sapere" mentre un altro considera un "avere".
Esperimento di pensiero
Diciamo che il sysadmin ti genera una nuova password casuale, la memorizza su un yubikey in modo tale che la chiave rilascerà la password crittografata su richiesta, e solo il tuo client VPN ha la chiave per decifrare e in realtà usa la password in chiaro (nessuna idea se questo è realistico, ma hey, è un esperimento mentale). È un sapere o un avere? Dal punto di vista dell'utente finale è certamente un ... non possono entrare nel loro account senza il fob. Dal punto di vista dell'amministratore è (per lo più) un avere perché a meno che l'utente non abbia fatto di hackerare il fob e il client VPN, l'utente non può imparare la password, quindi puoi chiedere il fob indietro e darlo ad un altro dipendente. Ma dal punto di vista del server è certamente un sapere perché tutto ciò che vede è una password in chiaro, non ha modo di dire se è venuto fuori da un dispositivo sicuro, o è stato digitato.
Prospettiva server
Come sviluppatore di applicazioni, la distinzione teorica che mi interessa è:
With "something you know" (ie passwords) you are sending the secret itself over the network to the server. With "something you have" (usually cryptographic keys or seeds) you never send the secret itself, but a one-time value or challenge response that proves you have possession of the secret.
Considera un man-in-the-middle che annusa il tuo traffico web. Possono rubare il tuo nome utente / password. Con OTP / yubikey / etc, i dati segreti sono una chiave crittografica o un seme RNG. Possono annusare tutti i messaggi che vogliono, non recupereranno mai il "qualcosa che hai" segreto.
Sto sostenendo che se il recupero del secondo fattore richiede che l'utente malintenzionato abbia accesso al tuo dispositivo (accesso fisico o rootkit) oa un altro tuo account, allora soddisfa la mia definizione di "qualcosa che hai".
Resistenza alla clonazione
La resistenza alla clonazione una volta che l'attaccante ha già accesso al dispositivo è chiaramente un bonus, ma (per me) non è necessario per soddisfare la definizione. Dopotutto, per fare un clone, l'attaccante ha già bisogno di "avere" il dispositivo. La differenza a quel punto tra l'essere in grado di usare il dispositivo per impersonare te e la possibilità di clonare il dispositivo per impersonarti è teoricamente priva di significato perché, in entrambi i casi, hanno già la capacità di impersonarti.