Folosesc cheile RSA SecureID ® de ceva timp acum (poate 10 ani), pentru lucruri precum securizarea contului meu bancar de acasă online sau accesarea rețeaua de computere a companiei de acasă. Aceste chei generează un token numeric din 6 cifre care este setat să expire. Cu toate acestea, „m-am întrebat întotdeauna cum funcționează acestea.

RSA SecurID keyfob

În partea dreaptă există un punct (care nu este afișat în imagine) care clipește o dată pe secundă, iar în stânga există un teanc de șase orizontale stivuite vertical bare, fiecare dintre ele dispare o dată la zece secunde. De fiecare dată când au trecut șaizeci de secunde, jetonul se resetează, iar jetonul anterior devine invalid.

AFAIK aceste dispozitive nu folosesc rețeaua, iar numerele pe care le generează trebuie verificate de server (dacă serverul este o bancă sau serverul unei companii). Prin urmare, în interiorul acestui dispozitiv trebuie să fie stocat un algoritm care generează numere aleatorii cu un mecanism care include un cronometru foarte precis alimentat de o baterie mică. Temporizatorul trebuie să fie foarte precis, deoarece serverul trebuie să verifice validitatea cifrelor generate în același interval de timp. Pentru fiecare utilizator / angajat, serverul trebuie, din câte înțeleg, să stocheze același algoritm generator de numere aleatorii, cu un astfel de algoritm per client / angajat. Cipul trebuie, desigur, să fie construit în așa fel încât, dacă este furat, atunci atacatorul nu poate accesa algoritmul generator de numere aleatorii stocat în acesta, chiar dacă dispozitivul este rupt.

Așa funcționează?

Mulțumesc!

Comentarii

  • În același mod TOTP funcționează, cu excepția celor din urmă ‘ nu trebuie să cumpărați o soluție prea scumpă și puteți utiliza telefoane obișnuite sau orice dispozitiv capabil de calcul de bază, chiar și un smartwatch .
  • OTP-ul definit de software este extrem de rău, deoarece nu obțineți rezistența la manipulare, necesară pentru a obține rezistență împotriva clonării semințelor. Oricine are un cablu Micro-USB și instrumentele potrivite vă poate clona telefonul în < 5 minute. Dacă este protejată prin parolă, clona criptată poate fi stocată până când codul poate fi obținut prin software rău intenționat sau navigarea pe umăr. Unele telefoane oferă astăzi un magazin de chei hardware rezistent la manipulare, atunci este o idee bună să îl folosiți sau un Smart-MicroSD de securitate. Acest lucru împiedică extragerea semințelor, numai ” a folosit „. Dar jetoanele TOTP care nu sunt RSA sunt într-adevăr ieftine.
  • În legătură: Cum funcționează jetoanele RSA
  • @sebastiannielsen că încă se bazează pe crearea de rețele sociale sau pe utilizatorii care nu urmăresc corect lucrurile lor. Dacă pot conecta telefonul utilizatorului ‘ la un computer fără ca el să observe, pot să-i fure jetonul RSA și să-i pun altul în locul său (și a câștigat nu observă până când va încerca să o folosească, care ar fi prea târziu).
  • Merită legătura: numerele de pe jetoanele RSA SecurID să fie prezise?

Răspuns

Da, funcționează așa cum spui . Cipul este „rezistent la manipulare” și va șterge „semința” (cheia secretă) dacă se face o încercare de atac. Acest lucru se realizează adesea având o baterie care nu poate fi înlocuită de utilizator și o „capcană” care întrerupe alimentarea dispozitivului odată ce dispozitivul este deschis sau suprafața cipului este îndepărtată. Cheia este apoi stocată într-un SRAM, necesitând putere pentru a păstra cheia.

Cheia este o semință, care este combinată cu ora curentă în pasul de 60 de secunde (efectiv, ora actuală UNIX / 60), reîmprospătează codul.

Nu, dispozitivul NU trebuie să fie precis. În schimb, serverul va stoca ora ultimului cod acceptat. Apoi serverul va accepta un cod cu un minut mai devreme, cu un minut înainte și la ora curentă, deci dacă ora curentă la server este 23:20, atunci va accepta un cod de la 23:19, 23:20 și 23: 21.

După aceasta, va stoca ora ultimului cod acceptat, de exemplu, dacă a fost acceptat un cod 23:21, va stoca 23:21 într-o bază de date și va refuza să accepte orice cod care a fost generat la 23:21 sau mai devreme.

Acum la partea interesantă: Pentru a împiedica desincronizarea unui jeton imprecis de la server, serverul va stoca în baza sa de date, dacă i s-a cerut să accepte un 23: 19 sau un cod 23:21 la ora 23:20. Acest lucru vă va asigura că la următoarea conectare, serverul va corecta codul cu numărul de pași.

Să spunem că vă conectați la Ceas 23:20 cu un cod 23:19. Serverul stochează „-1” în baza sa de date (și dacă ar fi un cod 23:21, ar stoca „+1” în baza de date). Data viitoare când vă conectați, Clock este ora 23:40. Apoi serverul va accepta un cod 23:38, 23:39 sau 23:40.Dacă este acceptat un cod 23:38, acesta va stoca „-2” în baza de date, la 23:39 va păstra „-1” în baza de date, iar la 23:40 va stoca „0” în baza de date.

Acest lucru vă asigură în mod eficient că păstrați serverul sincronizat cu simbolul dvs. În plus, sistemul, dacă un simbol „a fugit prea departe” de server (datorită faptului că a fost neutilizat pentru o lungă perioadă de timp), permite resincronizarea. Acest lucru este realizat fie de un administrator de sistem, fie este prezentat un serviciu de resincronizare de autoservire în cazul în care utilizatorul simbolului este rugat să furnizeze 2 coduri ulterioare din simbol, cum ar fi 23:20 și 23:21, sau 19:10 și 19:11. Rețineți că serverul nu va accepta NICIODATĂ un cod token generat la sau înainte de momentul în care a fost „ultimul cod token folosit” (deoarece acest lucru ar permite reutilizarea codurilor OTP). Când se face o resincronizare, jetonul va stoca diferența față de cele 2 coduri de jetoane furnizate, iar ora curentă a serverului și într-o resincronizare, fereastra de căutare ar putea fi ca plus / minus 50 de pași (ceea ce ar permite aproximativ 0,75 ore de desincronizare în ambele direcții).

Serverul poate detecta un simbol desincronizat generând cele 50 de coduri anterioare și cele 50 de coduri viitoare și, dacă codul specificat se potrivește cu acesta, va lansa automat procesul de resincronizare. De multe ori, pentru a împiedica un atacator să utilizeze procesul de resincronizare pentru a găsi coduri valide, odată ce un cont este în modul de resincronizare, autentificarea nu va fi acceptată fără resincronizare, ceea ce ar cere atacatorului să găsească codul exact ulterior sau anterior codului doar găsit.

Comentarii

  • Lucruri interesante, nu ‘ nu știam despre acest lucru.

Răspuns

Jetonul SecurID are o valoare „seed” atribuită și este programat cu un algoritm specific care generează numere pe baza semințelor și a ceasului său de sistem. Valoarea seed este, de asemenea, stocată într-un fișier care este livrat împreună cu simbolul. La primirea indicativului, administratorii de sistem importă fișierul semință pe serverul de autentificare. Întrucât dispozitivul de jeton SecurID și serverul au ambii valoarea de bază și ambii utilizează algoritmul, serverul poate determina care ar trebui să fie codul de jeton corect la un moment dat.

Ocazional, simbolul ceasul poate ieși din sincronizare cu serverul de autentificare. Dacă se întâmplă acest lucru, administratorii de sistem sau alt personal de asistență autorizat pot ajuta utilizatorul efectuând un proces de resincronizare pe server. Aceasta va configura serverul pentru a recunoaște decalajul de timp pentru acel token. astfel încât încercările de autentificare viitoare să fie tratate cu precizie.

Notă: Deoarece aceste numere trebuie să fie previzibile de către server, bazându-se doar pe datele stocate în fișierul seed, ora curentă și un algoritm standard, ele poate fi, de asemenea, prezis de un atacator cu instrumente speciale și acces la jeton. (Sau, mai rău, accesul la fișierele de însămânțare în sine – așa cum este suspectat că s-a întâmplat în 2011 .) Având în vedere suficiente coduri de jetoane consecutive, există ols care pot determina valoarea seed și apoi pot genera coduri viitoare pe cont propriu.

Răspuns

Răspunsul Sebastian a fost grozav. Voi reafirma acest lucru în termeni simpli. Jetonul SecureID este pur și simplu un ceas cu o valoare seed în el. În loc să afișeze timpul, afișează un număr. Punctul pe care îl putem vedea în imagine este de câteva secunde (cred), bara este atunci când numărul se va schimba, astfel încât să îl puteți cronometra. Dacă ajunge în partea de jos, este pe cale să se schimbe și dacă îl introduceți, veți dori să așteptați.

seed „este, de asemenea, pe serverul care autentifică dispozitivul. Când băieții de securitate instalează serverul RSA, trebuie să încarce aceleași semințe în serverul care va primi codul dvs. PIN.

Deci … Practic, este un criptocript. La fel ca vechile ceasuri LCD pe care le au copiii mei cu dora sau prințesele pe ele. Diferența este sămânța care oferă matematica numărului.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *