OTPW - OTPW

OTPW je heslo jednorázový systém vyvinutý pro ověřování v Unix-like operační systémy od Markus Kuhn . Skutečné heslo uživatele se nepřenáší přímo po síti . Spíše se vytvoří řada jednorázových hesel z krátké sady znaků (konstantní tajemství) a sady jednorázových tokenů. Protože každé heslo pro jedno použití lze použít pouze jednou, hesla zachycená nástrojem pro sledování hesla nebo záznamníkem klíčů nejsou pro útočníka užitečné.

OTPW je podporován v Unixu a Linuxu (prostřednictvím zásuvných autentizačních modulů ), OpenBSD , NetBSD a FreeBSD a pro jeho použití v jiných systémech lze použít obecnou implementaci open source.

OTPW, stejně jako ostatní jednorázové systémy hesel, je citlivé na muže uprostřed útoku, pokud je použit samo. To by mohlo být například vyřešeno vložením SSL , SPKM nebo podobného bezpečnostního protokolu „pod něj“, který autentizuje server a poskytuje zabezpečení point-to-point mezi klientem a serverem.

Design a rozdíly oproti jiným implementacím

Na rozdíl od S / KEY , OTPW není založen na Lamport režimu ‚s, v němž každý jednorázové heslo je jednosměrný hash hodnota jejího nástupce. Seznamy hesel založené na Lamportově schématu mají problém v tom, že pokud útočník vidí jedno z posledních hesel v seznamu, lze z něj vypočítat všechna předchozí hesla. Také neukládá šifrovaná hesla, jak navrhl Aviel D. Rubin v Independent One-Time Passwords , aby byl hostitel chráněn před soubory s tajemstvím.

V OTPW je jednosměrná hash hodnota každého hesla uložena v potenciálně široce čitelném souboru v domovském adresáři uživatele . Například hodnoty hash 300 hesel (typická stránka A4 ) vyžadují pouze soubor .otpw dlouhý čtyři kilobajty , což je obvykle zanedbatelné množství úložného prostoru.

Hesla jsou pečlivě generovaná náhodná čísla. Generátor náhodných čísel je založen na RIPEMD-160 bezpečné hash funkce , a to se zaočkuje hešováním dohromady výstup různých skořepinových příkazů. Poskytují nepředvídatelnost v podobě semena náhodných čísel systému, doby přístupu k důležitým systémovým souborům, historie použití hostitele a další. Náhodný stav je 160bitový výstup hashovací funkce. Náhodný stav se po každém použití iteruje zřetězením starého stavu s aktuálním výstupem časovače s vysokým rozlišením a opětovným hašováním výsledku. Prvních 72 bitů hašovacího výstupu je kódováno upraveným schématem base64 k vytvoření čitelných hesel, zatímco zbývajících 88 bitů představuje nezveřejněný vnitřní stav generátoru náhodných čísel.

V mnoha písem, znaky 0 a O nebo 1 , a L a I je obtížné rozlišit, tedy upravené base64 kódující nahradí tři znaky 01l odpovídajícím : , = a % . Pokud je například nula zaměněna uživatelem s velkým O, rutina ověření hesla to automaticky opraví. S / KEY používá jako hesla sekvence krátkých anglických slov. OTPW místo toho standardně používá kódování base64, protože to umožňuje tisk více hesel na jednu stránku se stejnou entropií hesla . Průměrný lidský špion navíc potřebuje více než 30 sekund na to, aby do krátkodobé paměti zapsal 12místný náhodný řetězec, který poskytuje dobrou ochranu proti krátkému vzhledu, který může mít útočník na seznamu hesel. Seznamy krátkých slov se naopak zapamatují mnohem rychleji. OTPW může zpracovávat libovolné algoritmy generování hesla, pokud je pevná délka hesla. V aktuální verzi může program otpw-gen generovat jak hesla zakódovaná do základního 64 (volba -p) , tak i 4písmenná hesla (volba -p1) s uživatelem zadanou entropií (volba -e).

Heslo předpony zajišťuje, že ani odcizení seznamu hesel, ani odposlech linky samotné nemohou poskytnout neoprávněný přístup. Je pravda, že zabezpečení získané OTPW není srovnatelné se zabezpečením systému výzev a odpovědí , ve kterém má uživatel speciální kalkulačku chráněnou pomocí PIN, která generuje odpověď. Na druhou stranu je kus papíru mnohem přenosnější, mnohem robustnější a mnohem levnější než speciální kalkulačka. OTPW byl navržen pro velkou uživatelskou základnu, pro kterou je zařízení napájené z baterie nevhodné nebo neefektivní z hlediska nákladů a které proto stále všude používají běžná unixová hesla.

Na rozdíl od návrhu uvedeného v RFC 1938 OTPW nezamkne více než jedno jednorázové heslo najednou. Pokud by to udělal, mohl by útočník snadno vyčerpat seznam odemčených hesel a přinutit ho, aby se vůbec nepřihlásil, nebo použil normální přihlašovací heslo pro Unix. Proto OTPW uzamkne pouze jedno jediné heslo a pro všechna další přihlášení je vydána trojitá výzva . Pokud zůstane k dispozici více než 100 nevyužitých hesel, pak existuje více než milion různých výzev a útočník má velmi malou šanci provést úspěšný útok, zatímco autorizovaný uživatel dokončí zadávání hesla.

Používání

Jednorázové ověření hesla pomocí balíčku OTPW se provádí pomocí souboru .otpw umístěného v domovském adresáři uživatele. V žádných systémových souborech není udržován žádný stav, proto OTPW nezavádí žádné nové kořenové programy setuid . Pokud uživatel nemá ve svém domovském adresáři soubor .otpw, nebylo mu jednorázové heslo aktivováno.

Uživatel, který chce nastavit funkci jednorázového hesla, právě spustí program otpw-gen . Program si vyžádá předponu hesla a poté zapíše seznam hesel na standardní výstup. Zvolené heslo předpony by mělo být uloženo do paměti a seznam hesel lze naformátovat a vytisknout.

Pokud se používá jednorázové ověření hesla, po výzvě k zadání hesla bude následovat 3místné číslo hesla. Nejprve zadejte prefixové heslo, které bylo dáno otpw-gen , a poté přímo (bez stisknutí klávesy Return mezi) heslo s požadovaným číslem ze seznamu tištěných hesel:

  login: kuhn
  Password 019: geHeimOdAkH62c

V tomto příkladu bylo předponou heslo geHeim .

Chytrý útočník by mohl sledovat zadávané heslo a mohl by se pokusit využít skutečnosti, že počítače mohou odesílat data mnohem rychleji, než uživatelé mohou zadávat hesla. Během několika stovek milisekund, které uživatel potřebuje, aby po posledním znaku stiskl klávesu Return, mohl útočník při paralelním připojení ke stejnému počítači odeslat kód klávesy Return rychleji než uživatel.

Aby se zabránilo takovému útoku typu „ závod o poslední klíč“ , bude jakýkoli pokus o přihlášení, který probíhá současně s dalším pokusem, vyžadovat zadání tří jednorázových hesel, přičemž ani jedno z nich nebude nikdy heslem, které je uzamčeno souběžný pokus o ověření.

  login: kuhn
  Password 022/000/004: geHeimQ=XK4I7wIZdBbqyHA5z9japt

Viz také

externí odkazy

  • "OTPW Home" .
  • Haller, Neil; Metz, Craig; Nesser, Philip J .; Sláma, Mike (únor 1998). Jednorázový systém hesel . IETF . doi : 10,17487 / RFC2289 . STD 61. RFC 2289 . Citováno 2009-10-24 .