Uso le chiavi RSA SecureID ® da un po di tempo (forse 10 anni), per cose come in modo sicuro il mio conto bancario online o per accedere al mio rete di computer dellazienda da casa. Queste chiavi generano un token numerico a 6 cifre che è impostato per scadere Tuttavia, mi sono sempre chiesto come funzionano.
Sul lato destro cè un punto (non mostrato nellimmagine) che lampeggia una volta al secondo, e sulla sinistra cè una pila di sei orizzontali impilati verticalmente barre, ciascuna delle quali scompare una volta ogni dieci secondi. Ogni volta che sono trascorsi sessanta secondi, il token si reimposta e il token precedente diventa non valido.
Per quanto ne so, questi dispositivi non utilizzano la rete e i numeri che generano devono essere controllati dal server (se il server sia una banca o un server aziendale). Quindi, allinterno di questo dispositivo deve essere memorizzato un algoritmo che genera numeri casuali con un meccanismo che include un timer molto preciso alimentato da una piccola batteria. Il timer deve essere molto preciso, poiché il server deve controllare la validità delle cifre generate nello stesso intervallo di tempo. Per ogni utente / dipendente, il server deve, per quanto ne so, memorizzare lo stesso algoritmo di generazione di numeri casuali, con uno di questi algoritmi per cliente / dipendente. Il chip deve ovviamente essere costruito in modo tale che, se viene rubato, lattaccante non può accedere allalgoritmo di generazione di numeri casuali in esso memorizzato, anche se il dispositivo è guasto.
È così che funziona?
Grazie!
Commenti
- Allo stesso modo TOTP funziona, tranne che per questultimo ‘ non devi acquistare una soluzione troppo costosa e puoi utilizzare telefoni normali o qualsiasi dispositivo in grado di eseguire calcoli di base, anche uno smartwatch .
- Le OTP definite dal software sono estremamente dannose poiché non si ottiene la resistenza alla manomissione, necessaria per ottenere resistenza contro la clonazione del seme. Chiunque abbia un cavo micro USB e gli strumenti giusti può clonare il tuo telefono in < 5 minuti. Se è protetto da password, il clone crittografato può essere archiviato fino a quando il codice non può essere ottenuto da software dannoso o da spalla. Alcuni telefoni oggi forniscono un archivio di chiavi hardware a prova di manomissione, quindi è una buona idea usarlo o una Smart-MicroSD di sicurezza. Ciò impedisce lestrazione del seme, solo ” utilizzava “. Ma i token TOTP hardware non RSA sono davvero economici.
- Correlati: Come funzionano i token RSA
- @sebastiannielsen that fa ancora affidamento sullingegneria sociale o sugli utenti che non guardano correttamente i propri contenuti. Se posso collegare il telefono dellutente ‘ a un computer senza che se ne accorga, posso anche rubare il suo token RSA e metterne un altro al suo posto (e ha vinto ‘ non notarlo fino alla prossima volta che prova a usarlo, il che sarebbe troppo tardi).
- Vale la pena creare un collegamento: prevedere i numeri sui token RSA SecurID?
Risposta
Sì, funziona come dici . Il chip è “a prova di manomissione” e cancellerà il “seed” (chiave segreta) se si tenta di attaccarlo. Ciò si ottiene spesso con una batteria non sostituibile dallutente e una “trappola” che interrompe lalimentazione al dispositivo una volta che il dispositivo viene aperto o la superficie del chip viene rimossa. La chiave viene quindi memorizzata in una SRAM, che richiede alimentazione per mantenerla.
La chiave è un seme, che combinato con lora corrente in un passaggio di 60 secondi (effettivamente, il timestamp UNIX corrente / 60), aggiorna il codice.
No, il dispositivo NON ha bisogno di essere preciso. Invece, il server memorizzerà lora dellultimo codice accettato. Quindi il server accetterà un codice un minuto prima, un minuto prima e allora corrente, quindi se lora corrente sul server è 23:20, accetterà un codice dalle 23:19, 23:20 e 23: 21.
Dopodiché, memorizzerà lora dellultimo codice accettato, ad esempio se un codice 23:21 è stato accettato, memorizzerà 23:21 in un database e rifiuterà di accettare qualsiasi codice che è stato generato alle 23:21 o prima.
Ora la parte interessante: per evitare che un token impreciso si desincronizzi dal server, il server memorizzerà nel suo database, se fosse richiesto di accettare un 23: 19 o un codice 23:21 alle 23:20. Ciò assicurerà che al prossimo accesso, il server correggerà il codice con il numero di passaggi.
Diciamo che allorologio 23:20 accedi con un codice 23:19. Il server memorizza “-1” nel suo database (e se fosse un codice 23:21, memorizzerebbe “+1” nel database). La prossima volta che effettui laccesso, lorologio sarà le 23:40. Quindi il server accetterà un codice 23:38, 23:39 o 23:40.Se viene accettato un codice 23:38, memorizzerà “-2” nel database, alle 23:39 manterrà “-1” nel database e alle 23:40 memorizzerà “0” nel database.
Questo assicura efficacemente di mantenere il server sincronizzato con il tuo token. Inoltre, il sistema, se un token “è scappato troppo lontano” dal server (a causa del fatto che è rimasto inutilizzato per molto tempo), consente la risincronizzazione. Questa operazione viene eseguita da un amministratore di sistema oppure viene presentato un servizio di risincronizzazione self-service in cui allutente del token viene chiesto di fornire 2 codici successivi dal token, come 23:20 e 23:21 o 19:10 e 19:11. Si noti che il server non accetterà MAI un codice token generato in corrispondenza o prima dellora in cui si trovava “lultimo codice token utilizzato” (poiché ciò consentirebbe il riutilizzo dei codici OTP). Quando viene eseguita una risincronizzazione, il token memorizzerà la differenza dai 2 codici token forniti e lora del server corrente e in una risincronizzazione, la finestra di ricerca potrebbe essere del tipo più / meno 50 passaggi (che consentirebbero circa 0,75 ore di desync in entrambe le direzioni).
Il server può rilevare un token desincronizzato generando i 50 codici precedenti e i 50 codici futuri e, se il codice specificato corrisponde a quello, avvierà automaticamente il processo di risincronizzazione. Molte volte, per impedire a un utente malintenzionato di utilizzare il processo di risincronizzazione per trovare codici validi, una volta che un account è in modalità di risincronizzazione, laccesso non verrà accettato senza risincronizzazione, il che richiederebbe allautore dellattacco di trovare il codice esatto successivo o precedente al codice solo trovato.
Commenti
- Cose interessanti, ‘ non lo sapevo.
Risposta
Il token SecurID ha un valore “seed” assegnato ed è programmato con uno specifico algoritmo che genera numeri basato sul seme e sul suo orologio di sistema. Il valore seed viene inoltre memorizzato in un file fornito con il token. Dopo aver ricevuto il token, gli amministratori di sistema importano il file seed nel server di autenticazione. Poiché il dispositivo token SecurID e il server hanno entrambi il valore seed ed entrambi utilizzano lalgoritmo, il server può determinare quale dovrebbe essere il codice token corretto in un dato momento.
Occasionalmente, il token “s lorologio potrebbe non essere sincronizzato con il server di autenticazione. In tal caso, gli amministratori di sistema o altro personale di supporto autorizzato possono assistere lutente eseguendo un processo di risincronizzazione sul server. Ciò configurerà il server in modo da riconoscere la differenza di orario per quel token in modo che i futuri tentativi di autenticazione debbano essere gestiti in modo accurato.
Nota: poiché questi numeri devono essere prevedibili dal server, in base solo ai dati memorizzati nel file seme, lora corrente e un algoritmo standard, può anche essere previsto da un utente malintenzionato con strumenti speciali e accesso al token. (o peggio, laccesso ai file seed stessi, come sospettato che sia accaduto nel 2011 .) Dato un numero sufficiente di codici token consecutivi, ci sono ols che possono determinare il valore iniziale e quindi generare codici futuri da soli.
Risposta
La risposta di Sebastian è stata fantastica. Lo ribadirò in parole povere. Il token SecureID è semplicemente un orologio con un valore di inizializzazione. Invece di visualizzare lora, mostra un numero. Il punto che possiamo vedere nellimmagine è i secondi (credo), la barra indica quando il numero cambierà in modo da poterlo cronometrare. Se sta raggiungendo il fondo, sta per cambiare e se lo stai digitando, dovrai aspettare.
Il ” seed “è anche sul server che autentica il dispositivo. Quando i responsabili della sicurezza installano il server RSA, devono caricare gli stessi seed nel server che riceverà il tuo codice PIN.
Quindi … Fondamentalmente è è un cryptoclock. Proprio come i vecchi orologi LCD che i miei figli hanno con dora, o principesse su di loro. La differenza è il seme che fornisce la matematica per il numero.