Używam kluczy RSA SecureID ® już od jakiegoś czasu (być może 10 lat), na przykład do bezpiecznego konta bankowego online lub uzyskiwania dostępu do firmowa sieć komputerów z domu. Klucze te generują 6-cyfrowy numeryczny token, którego ważność jest ustawiona na wygaśnięcie. Jednak zawsze się zastanawiałem, jak to działa.

RSA Pilot SecurID

Po prawej stronie znajduje się kropka (nie pokazana na zdjęciu), która miga raz na sekundę, a po lewej jest stos sześciu ułożonych pionowo poziomo słupki, z których każdy znika raz na dziesięć sekund. Za każdym razem, gdy mija sześćdziesiąt sekund, token resetuje się, a poprzedni token staje się nieważny.

AFAIK, te urządzenia nie korzystają z sieci, a generowane przez nie liczby muszą być sprawdzane przez serwer (czy serwer to bank lub serwer firmy). Stąd w tym urządzeniu musi być przechowywany algorytm generujący liczby losowe z mechanizmem zawierającym bardzo precyzyjny zegar zasilany małą baterią. Zegar musi być bardzo dokładny, ponieważ serwer musi sprawdzać poprawność wygenerowanych cyfr w tym samym przedziale czasowym. Dla każdego użytkownika / pracownika serwer musi, o ile rozumiem, przechowywać ten sam algorytm generowania liczb losowych, z jednym takim algorytmem na klienta / pracownika. Chip musi oczywiście być skonstruowany w taki sposób, że jeśli zostanie skradziony, atakujący nie będzie mógł uzyskać dostępu do przechowywanego w nim algorytmu generowania liczb losowych, nawet jeśli urządzenie jest zepsute.

Czy tak to działa?

Dzięki!

Komentarze

  • W ten sam sposób TOTP działa, z wyjątkiem tego ostatniego, w którym nie ' nie musisz kupować drogiego rozwiązania i możesz używać zwykłych telefonów lub dowolnego urządzenia obsługującego podstawowe obliczenia, nawet smartwatch .
  • OTP zdefiniowane programowo są bardzo złe, ponieważ nie uzyskujesz odporności na manipulacje, która jest wymagana do uzyskania odporności na klonowanie nasion. Każdy, kto ma kabel Micro-USB i odpowiednie narzędzia, może sklonować telefon w < 5 minut. Jeśli jego hasło jest chronione, zaszyfrowany klon może być przechowywany do momentu uzyskania kodu przez złośliwe oprogramowanie lub przeglądanie stron. Niektóre telefony oferują obecnie odporny na manipulacje magazyn kluczy sprzętowych, więc dobrym pomysłem jest skorzystanie z niego lub karty Security Smart-MicroSD. To uniemożliwiło wyodrębnienie ziarna, tylko ” użyło „. Jednak sprzętowe tokeny TOTP bez RSA są naprawdę tanie.
  • Powiązane: Jak działają tokeny RSA
  • @sebastiannielsen that nadal opiera się na inżynierii społecznościowej lub na użytkownikach, którzy nie oglądają ich właściwie. Jeśli uda mi się podłączyć telefon użytkownika ' do komputera bez jego wiedzy, równie dobrze mogę ukraść jego token RSA i umieścić inny w jego miejsce (a on wygrał nie zauważam, aż do następnej próby użycia, co byłoby za późno).
  • Warto połączyć: Czy przewidzieć liczby na tokenach RSA SecurID?

Odpowiedź

Tak, działa tak, jak mówisz . Chip jest „odporny na manipulacje” i usunie „ziarno” (tajny klucz) w przypadku jakiejkolwiek próby zaatakowania go. Często jest to osiągane przez posiadanie niewymienialnej baterii i „pułapki”, która przerywa zasilanie urządzenia po otwarciu urządzenia lub usunięciu powierzchni chipa. Klucz jest następnie przechowywany w pamięci SRAM, wymagającej mocy do utrzymania klucza.

Klucz jest ziarnem, które w połączeniu z aktualnym czasem w 60 sekundowych krokach (efektywnie, aktualny znacznik czasu UNIX / 60), odświeża kod.

Nie, urządzenie NIE musi być precyzyjne. Zamiast tego serwer zapisze czas ostatniego zaakceptowanego kodu. Wtedy serwer przyjmie kod minutę wcześniej, minutę do przodu io aktualnej godzinie, więc jeśli aktualny czas na serwerze to 23:20, to przyjmie kod z 23:19, 23:20 i 23: 21.

Następnie zapisze czas ostatniego zaakceptowanego kodu, np. Jeśli zaakceptowano kod 23:21, zapisze 23:21 w bazie danych i odmówi przyjęcia kodu, który został wygenerowany o godzinie 23:21 lub wcześniej.

Teraz do interesującej części: aby zapobiec desynchronizacji nieprecyzyjnego tokena z serwerem, serwer zapisze w swojej bazie danych, jeśli był wymagany do zaakceptowania 23: 19 lub 23:21 o godzinie 23:20. Zapewni to, że przy następnym logowaniu serwer poprawi kod z liczbą kroków.

Powiedzmy, że o godzinie 23:20 zalogujesz się z kodem 23:19. Serwer przechowuje „-1” w swojej bazie danych (a jeśli byłby to kod 23:21, zapisałby „+1” w bazie danych). Przy następnym logowaniu Zegar będzie wskazywał 23:40. Wtedy serwer przyjmie kod 23:38, 23:39 lub 23:40.Jeśli kod 23:38 zostanie zaakceptowany, zapisze „-2” w bazie danych, o 23:39 zachowa „-1”, a o 23:40 zapisze „0” w bazie danych.

To skutecznie zapewnia synchronizację serwera z Twoim tokenem. Ponadto system, jeśli token „biegł zbyt daleko” od serwera (ze względu na to, że był nieużywany przez długi czas), umożliwia ponowną synchronizację. Jest to realizowane albo przez administratora systemu, albo prezentowana jest samoobsługowa usługa ponownej synchronizacji, w której użytkownik tokena jest proszony o podanie 2 kolejnych kodów z tokena, np. 23:20 i 23:21 lub 19:10 i 19:11. Należy pamiętać, że serwer NIGDY nie zaakceptuje kodu tokena wygenerowanego przed lub w czasie, gdy był „ostatnio używany kod tokena” (ponieważ pozwoliłoby to na ponowne wykorzystanie kodów OTP). Po wykonaniu ponownej synchronizacji token zapisze różnicę w stosunku do dostarczonych 2 kodów tokena, a także aktualny czas serwera i przy ponownej synchronizacji, okno wyszukiwania może wyglądać jak plus / minus 50 kroków (co pozwoliłoby na około 0,75 godziny desynchronizacja w obu kierunkach).

Serwer może wykryć zdesynchronizowany token, generując 50 wcześniejszych i 50 przyszłych kodów, a jeśli określony kod pasuje do tego, automatycznie uruchomi proces ponownej synchronizacji. Wiele razy, aby uniemożliwić atakującemu skorzystanie z procesu ponownej synchronizacji w celu znalezienia prawidłowych kodów, gdy konto jest w trybie ponownej synchronizacji, logowanie nie zostanie zaakceptowane bez ponownej synchronizacji, co wymagałoby od atakującego znalezienia dokładnego kodu przed lub po kodzie. znaleziono.

Komentarze

  • Fajne rzeczy, nie ' nic o tym nie wiem.

Odpowiedź

Token SecurID ma przypisaną wartość „seed” i jest zaprogramowany za pomocą specjalnego algorytmu, który generuje liczby w oparciu o ziarno i jego zegar systemowy. Wartość inicjatora jest również przechowywana w pliku dostarczanym z tokenem. Po otrzymaniu tokena administratorzy systemu importują plik źródłowy na serwer uwierzytelniania. Ponieważ urządzenie tokenu SecurID i serwer mają wartość początkową i oba używają algorytmu, serwer może określić, jaki powinien być prawidłowy kod tokenu w dowolnym momencie.

Czasami token „s zegar może nie zsynchronizować się z serwerem uwierzytelniania. W takim przypadku administratorzy systemu lub inny upoważniony personel pomocy technicznej może pomóc użytkownikowi, wykonując proces ponownej synchronizacji na serwerze. Dzięki temu serwer będzie rozpoznawał przesunięcie czasu dla tego tokenu tak, aby przyszłe próby uwierzytelnienia były obsługiwane dokładnie.

Uwaga: Ponieważ te liczby muszą być przewidywalne przez serwer, na podstawie tylko danych przechowywanych w pliku źródłowym, bieżącej godzinie i standardowym algorytmie, może być również przewidziana przez atakującego ze specjalnymi narzędziami i dostępem do tokena. (Lub, co gorsza, dostęp do samych plików źródłowych – jak podejrzewa się w 2011 r. .) Biorąc pod uwagę wystarczającą liczbę kolejnych kodów tokenów, jest tak ols, które mogą samodzielnie określić wartość początkową, a następnie wygenerować przyszłe kody.

Odpowiedź

Odpowiedź Sebastiana była wspaniała. Powtórzę to w kategoriach laika. Token SecureID to po prostu zegar z wartością początkową. Zamiast wyświetlać czas, wyświetla liczbę. Kropka na obrazku to sekundy (tak mi się wydaje), pasek pokazuje, kiedy liczba ma się zmienić, więc możesz ustawić czas. Jeśli zbliża się do dołu, wkrótce się zmieni, a jeśli ją wpisujesz, będziesz chciał poczekać.

seed „znajduje się również na serwerze, który uwierzytelnia urządzenie. Kiedy pracownicy ochrony instalują serwer RSA, muszą załadować te same seedy na serwer, który będzie odbierał twój kod PIN.

Więc … Zasadniczo to jest kryptoklokiem. Podobnie jak stare zegarki LCD, które moje dzieci mają na sobie z dorą lub księżniczkami. Różnica polega na tym, że zarodek oblicza liczbę.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *