Már jó ideje (talán 10 éve) használom az RSA SecureID ® Keys-et, például biztonságos online otthoni bankszámlámhoz vagy hozzáféréshez a vállalat számítógépes hálózata otthonról. Ezek a kulcsok egy hatjegyű numerikus tokent generálnak, amelynek lejárata van beállítva. Mindig azonban kíváncsi voltam, hogyan működnek ezek.

RSA SecurID kulcstartó

A jobb oldalon található egy pont (a képen nem látható), amely másodpercenként egyszer villog, a bal oldalon pedig hat függőlegesen halmozott vízszintes rudak, amelyek mindegyike tíz másodpercenként eltűnik. Minden hatvan másodperc elteltével a token visszaállítja magát, és az előző token érvénytelenné válik.

AFAIK ezek az eszközök nem használják a hálózatot, és az általuk generált számokat a szervernek ellenőriznie kell (hogy a kiszolgáló bank vagy vállalat szervere lehet). Ezért ezen az eszközön belül olyan algoritmust kell tárolni, amely véletlenszerű számokat állít elő egy olyan mechanizmus segítségével, amely egy nagyon precíz időzítőt tartalmaz, amelyet egy kis akkumulátor táplál. Az időzítőnek nagyon pontosnak kell lennie, mivel a szervernek ugyanabban az időintervallumban kell ellenőriznie a generált számjegyek érvényességét. Minden felhasználó / alkalmazott esetében a kiszolgálónak, ha jól tudom, ugyanazt a véletlenszám-generáló algoritmust kell tárolnia, ügyfélenként / alkalmazottanként egy ilyen algoritmussal. A chipet természetesen úgy kell megépíteni, hogy ha ellopják, akkor a támadó akkor sem férhet hozzá az abban tárolt véletlenszám-generáló algoritmushoz, ha az eszköz meghibásodott.

Ez így működik?

Köszönöm!

Megjegyzések

  • Ugyanígy TOTP működik, az utóbbiak kivételével nem ‘ nem kell túlárazott megoldást vásárolni, és használhatsz normál telefonokat vagy bármilyen alapszámításra alkalmas eszközt, akár egy okosóra .
  • A szoftver által definiált OTP rendkívül rossz, mivel nem éri el a szabotázs ellenállást, amelyre szükség van ahhoz, hogy ellenállást szerezzen a mag klónozásával szemben. Bárki, aki rendelkezik mikro-USB kábellel és megfelelő eszközökkel, < 5 perc alatt klónozhatja telefonját. Ha jelszóval védett, akkor a titkosított klón addig tárolható, amíg a kódot rosszindulatú szoftverekkel vagy váll-szörfözéssel nem lehet megszerezni. Néhány telefon ma manipulációval szemben ellenálló hardverkulcsot kínál, akkor célszerű ezt használni, vagy egy Security Smart-MicroSD-t. Ez megakadályozza a mag kinyerését, csak ” használta a ” szót. De a nem RSA hardveres TOTP tokenek valóban olcsók.
  • Kapcsolódó: Hogyan működnek az RSA tokenek
  • @sebastiannielsen that továbbra is támaszkodik a társadalmi szerepvállalásra, vagy arra, hogy a felhasználók nem figyelik megfelelően a dolgaikat. Ha a felhasználó ‘ telefonját csatlakoztathatom a számítógéphez anélkül, hogy észrevenné, ellophatom az RSA tokent is, és a helyére helyezhetek egy másikat (és ő nyert ‘ nem veszi észre, amíg legközelebb megpróbálja használni, ami már késő lenne.
  • Érdemes összekapcsolni: az RSA SecurID tokenek száma megjósolható?

Válasz

Igen, úgy működik, ahogy mondod . A chip “szabotázsbiztos”, és törli a “magot” (titkos kulcs), ha megpróbálják megtámadni. Ez gyakran úgy valósul meg, hogy van egy nem felhasználó által cserélhető akkumulátor és egy “csapda”, amely megszakítja a készülék áramellátását, miután az eszközt kinyitották, vagy a chip felületét eltávolították. A kulcsot ezután egy SRAM-ban tárolják, és energiára van szükség a kulcs megtartásához.

A kulcs egy mag, amely az aktuális idővel 60 másodperces lépésben kombinálva van (gyakorlatilag a jelenlegi UNIX időbélyegző / 60), frissíti a kódot.

Nem, az eszköznek NEM kell pontosnak lennie. Ehelyett a szerver tárolja a legutóbb elfogadott kód idejét. Ezután a szerver egy perccel korábban, egy perccel előre és az aktuális időpontban fogadja el a kódot, tehát ha a szerveren az idő 23:20, akkor 23:19, 23:20 és 23 órától fogad el kódot: 21.

Ezt követően tárolja a legutóbb elfogadott kód idejét, pl. Ha 23:21 kódot fogadtak el, akkor 23:21-et tárol egy adatbázisban, és nem hajlandó elfogadni olyan kódot, amely 23: 21-kor vagy korábbi időpontban keletkezett.

Most az érdekes részhez: A pontatlan token kiszinkronizálásának megakadályozásához a szerverről a kiszolgáló az adatbázisában tárol, ha egy 23-at kellett elfogadnia: 19 kód vagy 23:21 kód 23: 20-kor. Ez biztosítja, hogy a következő bejelentkezéskor a szerver kijavítsa a kódot a lépések számával.

Mondjuk, hogy a 23:20 óra bejelentkezéskor 23:19 kóddal jelentkezik be. A szerver “-1” -t tárol az adatbázisában (és ha 23:21 kód lenne, akkor a “+1” -t tárolja az adatbázisban). Legközelebb, amikor bejelentkezik, az Óra 23:40. Ezután a szerver elfogadja a 23:38, 23:39 vagy 23:40 kódot.Ha egy 23:38 kódot elfogadunk, akkor a “-2” -t tárolja az adatbázisban, 23: 39-nél a “-1” -et tartja az adatbázisban, 23: 40-nél pedig a “0” -t tárolja az adatbázisban.

Ez hatékonyan biztosítja a szerver szinkronizálását a tokennel. Ráadásul a rendszer, ha egy token “túl messzire futott” a szervertől (mivel sokáig nem volt használva), lehetővé teszi az újraszinkronizálást. Ezt vagy a rendszergazda hajtja végre, vagy egy önkiszolgáló újraszinkronizálási szolgáltatást mutat be, ahol a token felhasználót arra kérik, hogy adjon meg 2 további kódot a tokenből, például 23:20 és 23:21, vagy 19:10 és 19:11. Ne feledje, hogy a szerver SOHA nem fogadja el az “utoljára használt token kód” időpontjában vagy azt megelőzően létrehozott token kódot (mivel ez lehetővé tenné az OTP kódok újrafelhasználását). Amikor újraszinkronizálást hajt végre, a token eltárolja a különbséget a megadott 2 token kódtól és az aktuális szerver időtől, valamint egy újraszinkronban, a keresési ablak plusz / mínusz 50 lépéses lehet (ami kb. 0,75 óra deszinkronizálás mindkét irányban).

A szerver képes észlelni egy szinkronizált tokent az 50 korábbi és 50 jövőbeli kód létrehozásával, és ha a megadott kód megegyezik azzal, automatikusan elindítja az újraszinkronizálási folyamatot. Sokszor annak megakadályozása érdekében, hogy a támadó az újraszinkronizálási folyamatot érvényes kódok megtalálásához használja, ha egy fiók újraszinkronizált módban van, a bejelentkezést újraszinkronizálás nélkül nem fogadják el, ami megkövetelné, hogy a támadó megtalálja a pontos kódot a kód után vagy után. talált.

Megjegyzések

  • Jó dolgok, nem tudtam ‘ erről.

Válasz

A SecurID tokenhez “seed” érték van rendelve, és egy meghatározott algoritmussal van programozva, amely számokat generál a vetőmag és annak rendszerórája alapján. A mag értékét a tokennel együtt szállított fájlban is tároljuk. A token kézhezvétele után a rendszergazdák importálják a magfájlt a hitelesítési kiszolgálóra. Mivel a SecurID token eszköznek és a kiszolgálónak egyaránt megvan az alapértéke, és mindkettő az algoritmust használja, a szerver meghatározhatja, hogy az adott pillanatban mi legyen a helyes token kód.

Esetenként a tokenek az óra szinkronban lehet a hitelesítési szerverrel. Ha ez megtörténik, a rendszergazdák vagy más jogosult támogató személyzet segíthet a felhasználónak egy újraszinkronizálási folyamat végrehajtásával a kiszolgálón. Ez konfigurálja a kiszolgálót az adott token időeltolásának felismerésére. így a jövőbeni hitelesítési kísérleteket pontosan kell kezelni.

Megjegyzés: Mivel ezeket a számokat a kiszolgálónak kiszámíthatónak kell lennie, csak az alapfájlban tárolt adatok, az aktuális idő és egy szabványos algoritmus alapján, ezért speciális eszközökkel és a tokenhez való hozzáféréssel egy támadó is megjósolhatja. (Vagy ami még rosszabb, magukhoz a magfájlokhoz való hozzáférés – ahogyan is feltételezhető, hogy 2011-ben történt .) Ha elegendő egymás utáni token kód van, meg kell ols, amelyek képesek meghatározni a mag értékét, majd önállóan létrehozni a jövőbeli kódokat.

Válasz

A Sebastian-válasz félelmetes volt. Megismétlem ezt laikus kifejezéssel. A SecureID token egyszerűen egy óra, benne egy magérték. Az idő megjelenítése helyett egy számot jelenít meg. A képen látható pont másodperc (szerintem), a sáv az, amikor a szám változni fog, így időzítheti. Ha az aljára ér, hamarosan megváltozik, és ha beírja, akkor várnia kell.

A ” a seed “azon a szerveren is található, amely hitelesíti az eszközt. Amikor a biztonsági srácok telepítik az RSA szervert, ugyanazokat a magokat kell betölteniük arra a kiszolgálóra, amelyik megkapja a PIN-kódot.

Tehát … Alapvetően ez egy cryptoclock. Csakúgy, mint a régi LCD órák, amelyek a gyerekeimnél vannak Dorával vagy hercegnőkkel. A különbség az a mag, amely a szám matematikáját adja.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük