Klíče RSA SecureID ® používám již nějakou dobu (asi 10 let), například pro bezpečný online účet mého domácího účtu nebo pro přístup k mému síť počítačů společnosti z domova. Tyto klíče generují šestimístný číselný token, jehož platnost vyprší. Vždy mě však zajímalo, jak fungují.
Na pravé straně je tečka (na obrázku není zobrazena), která bliká jednou za sekundu, a na levé straně je hromada šesti vertikálně naskládaných horizontálně pruhy, z nichž každý zmizí jednou za deset sekund. Pokaždé, když uplyne šedesát sekund, token se sám resetuje a předchozí token se stane neplatným.
AFAIK tato zařízení nepoužívají síť a čísla, která generují, musí server zkontrolovat (zda serverem může být banka nebo server společnosti). Proto uvnitř tohoto zařízení musí být uložen algoritmus, který generuje náhodná čísla s mechanismem, který zahrnuje velmi přesný časovač napájený malou baterií. Časovač musí být velmi přesný, protože server musí zkontrolovat platnost vygenerovaných číslic ve stejném časovém intervalu. Pro každého uživatele / zaměstnance musí server, pokud chápu, uložit stejný algoritmus generující náhodné číslo s jedním takovým algoritmem na zákazníka / zaměstnance. Čip musí být samozřejmě zkonstruován tak, aby v případě jeho odcizení nemohl útočník získat přístup k algoritmu generujícímu náhodné číslo, který je v něm uložen, i když je zařízení rozbité.
Takto to funguje?
Díky!
Komentáře
- Stejným způsobem TOTP funguje, až na to, že si ‚ nemusíte kupovat předražené řešení a můžete používat běžné telefony nebo jakékoli zařízení schopné základního výpočtu, i chytré hodinky .
- Softwarově definované OTP jsou extrémně špatné, protože nezískáte odolnost proti neoprávněné manipulaci, která je nutná pro získání odolnosti proti klonování semene. Kdokoli, kdo má kabel Micro-USB a správné nástroje, může váš telefon klonovat za < 5 minut. Pokud je šifrovaný klon chráněn heslem, může být uložen, dokud nebude kód získán škodlivým softwarem nebo procházením přes rameno. Některé telefony dnes poskytují úložiště hardwarových klíčů odolné proti neoprávněné manipulaci, pak je dobré to použít, nebo Security Smart-MicroSD. Tím se zabrání extrakci semene, pouze “ použito „. Hardwarové tokeny TOTP jiné než RSA jsou ale opravdu levné.
- Související: Jak fungují tokeny RSA
- @sebastiannielsen stále spoléhá na sociální začátečníky nebo na to, že uživatelé nebudou své věci správně sledovat. Pokud mohu připojit telefon uživatele ‚ k počítači, aniž by si toho všiml, mohu mu také ukrást token RSA a umístit na něj jiný (a on vyhrál ‚ si to všimne, až se ho příště pokusí použít, což by bylo příliš pozdě).
- Odkaz na odkazy: Může lze předpokládat čísla na tokenech RSA SecurID?
Odpověď
Ano, funguje to, jak říkáte . Čip je „odolný proti neoprávněné manipulaci“ a vymaže „semeno“ (tajný klíč), pokud na něj dojde k pokusu o útok. Toho se často dosahuje tím, že má uživatel nevyměnitelnou baterii a „lapač“, který přeruší napájení zařízení, jakmile je zařízení otevřeno nebo je odstraněn povrch čipu. Klíč je poté uložen v paměti SRAM, což vyžaduje sílu k uchování klíče.
Klíčem je semeno, které v kombinaci s aktuálním časem v 60 sekundovém kroku (ve skutečnosti aktuální časové razítko UNIX / 60), obnovuje kód.
Ne, zařízení NEMUSÍ být přesné. Místo toho server uloží čas posledního přijatého kódu. Poté server přijme kód o minutu dříve, o minutu dopředu a v aktuálním čase, takže pokud je aktuální čas na serveru 23:20, pak přijme kód od 23:19, 23:20 a 23: 21.
Poté uloží čas posledního přijatého kódu, např. Pokud byl přijat kód 23:21, uloží 23:21 do databáze a odmítne přijmout jakýkoli kód, který byl vygenerován v 23:21 nebo dříve.
Nyní k zajímavé části: Aby se zabránilo nepřesnému tokenu v desynchronizaci ze serveru, server uloží do své databáze, pokud bylo nutné přijmout 23: Kód 19 nebo kód 23:21 v 23:20. Tím zajistíte, že při příštím přihlášení server opraví kód podle počtu kroků.
Řekněme, že se přihlásíte v hodinách 23:20 pomocí kódu 23:19. Server ukládá do své databáze „-1“ (a pokud by to byl kód 23:21, ukládá „+1“ do databáze). Při příštím přihlášení jsou hodiny 23:40. Poté server přijme kód 23:38, 23:39 nebo 23:40.Pokud je přijat kód 23:38, uloží do databáze „-2“, v 23:39 uloží do databáze „-1“ a v 23:40 uloží do databáze „0“.
Tím se efektivně zajistí synchronizace serveru s vaším tokenem. Kromě toho systém, pokud token „utekl příliš daleko“ od serveru (kvůli tomu, že je delší dobu nepoužíván), umožňuje resyncronizaci. Toho je dosaženo buď správcem systému, nebo je prezentována samoobslužná resynchronizační služba, kde je uživatel tokenu požádán o poskytnutí 2 následných kódů z tokenu, například 23:20 a 23:21 nebo 19:10 a 19:11. Upozorňujeme, že server NIKDY nepřijme tokenový kód vygenerovaný v době nebo před časem, kdy byl „naposledy použitý tokenový kód“ (protože by to umožnilo opětovné použití OTP kódů). Když je resynchronizace hotová, token uloží rozdíl od poskytnutých 2 tokenových kódů a aktuální čas serveru a při resynchronizaci může být vyhledávací okno jako plus / minus 50 kroků (což by umožnilo přibližně 0,75 hodiny desynchronizace v obou směrech).
Server může detekovat desynchronizovaný token vygenerováním 50 předchozích kódů a 50 budoucích kódů, a pokud tomu odpovídá zadaný kód, automaticky spustí proces synchronizace. Mnohokrát, aby se zabránilo útočníkovi v použití procesu synchronizace k vyhledání platných kódů, nebude účet po resynchronním režimu akceptován bez resynchronizace, což by vyžadovalo, aby útočník našel přesný kód následně nebo před kódem nalezeno.
Komentáře
- Skvělé věci, nevěděl jsem o tom ‚.
Odpověď
Token SecurID má přiřazenou hodnotu „seed“ a je naprogramován pomocí konkrétního algoritmu, který generuje čísla na základě osiva a jeho systémových hodin. Hodnota seed je také uložena v souboru, který je dodáván s tokenem. Po obdržení tokenu správci systému importují počáteční soubor na ověřovací server. Protože tokenové zařízení SecurID i server mají počáteční hodnotu a oba používají algoritmus, může server určit, jaký správný tokenový kód by měl být kdykoli.
Příležitostně může token hodiny se mohou synchronizovat s ověřovacím serverem. Pokud k tomu dojde, mohou administrátoři systému nebo jiní autorizovaní pracovníci podpory pomoci uživateli provést proces opětovné synchronizace na serveru. Tím se nakonfiguruje server tak, aby rozpoznal časový posun daného tokenu. takže budoucí pokusy o ověření by měly být zpracovány přesně.
Poznámka: Protože tato čísla musí být serverem předvídatelná, pouze na základě dat uložených v základním souboru, aktuálním čase a standardním algoritmu, může být také předpovězen útočníkem se speciálními nástroji a přístupem k tokenu. (Nebo ještě horší, přístup k samotným počátečním souborům – jak se předpokládá v roce 2011 .) Vzhledem k dostatečnému počtu po sobě jdoucích tokenových kódů je třeba Ols, které mohou určit počáteční hodnotu a poté generovat budoucí kódy samostatně.
Odpověď
Sebastianova odpověď byla úžasná. Laicky to přepíšu. Token SecureID jsou jednoduše hodiny s počáteční hodnotou. Místo zobrazení času zobrazuje číslo. Tečka, kterou vidíme na obrázku, je sekund (myslím), lišta se změní, když se číslo bude měnit, abyste jej mohli načasovat. Pokud dosáhne spodní části, brzy se změní a pokud jej zadáte, budete chtít počkat.
The “ seed „je také na serveru, který ověřuje zařízení. Když uživatelé zabezpečení nainstalují server RSA, musí načíst stejné semeno na server, který obdrží váš kód PIN.
Takže … v podstatě to jsou krypto hodiny. Stejně jako staré LCD hodinky, které mají moje děti s Dorou, nebo s princeznami. Rozdíl je v semenu, které poskytuje matematiku čísla.