|
 |
 |
 |
|
|
Skutečná realizace OTP Skey je ještě lepší, server si ani nemusí přímo pamatovat tajné heslo.
- inicializace hesla: Uživatel si vymyslí heslo. Rozhodující je samozřejmě dostatečná entropie, heslo musí být 10-63 znaků dlouhé, spíše passphrase, než password.
Server nebo klient vygeneruje seed, 1-16 znaků dlouhý alfanumerický řetězec. Rozdílnost seedů umožnuje používat stejné tajné heslo na více počítačích. Tajné heslo také není nutné měnit- s časem se mění seedy. Heslo+seed se spojí dohromady a proženou hashovací funkcí, výsledek nazveme nultým heslem. Nejlépe je, aby tuto operaci provedl uživatel v bezpečném prostředí, ale program na serveru spuštěný skrz bezpečné připojení poslouží stejně. Příkaz pro gerování hesel se obvykle jmenuje keyinit, možná ho na svém systému máte, aniž byste si toho dosud všimli.
- počítání iterací: 0té heslo se prožene hashovací funkcí, výstupem je heslo 1, které opět poslouží jako vstup atd. Proces se provede tolikrát, kolikrát si uživatel přeje. Výstupem bude N hesel.
- inicializace hesla na serveru: "Poslední", Nté heslo se předá serveru, který si je uloží.
- autentizace: server poskytne uživateli výzvu, sestávající ze seedu a pořadového čísla hesla. V našem případě, při prvním přihlášení N-1. Uživatel poskytne N-1 heslo, server jej zahashuje a porovná s uloženým Ntým. Pokud výsledek souhlasí, je uživatel připuštěn a aktuálním údajem, který si server pamatuje, je heslo N-1 (poslední pouité správné heslo)
- opakováni: Postupně se používají hesla se stále nižšími čísly.
- reinicializace: Je podobná inicializaci, jen je po uživateli většinou požadováno poslední heslo z předczhozího "běhu" a odlišný seed.
Jak celou věc učinit uživatelsky příjemnou...
- Všechna hesla jsou 64bitová celá čísla, což samozřejmě není nic moc zapamatovatelného. Proto se pro "lidské" uživatele převádějí do šestic zapamtovatelných slov z definovaného slovníku. Většině lidí se "dadaistická věta" CARD SAD MINI RYE COL KIN pamatuje lépe, než číslo 6347 3EF0 1CD0 B444.
- Nejlepší je, že počítání hesel je opravdu snadné. OTP kalkulačky existují pro celou řadu přenosných zařízení, pro Nokia komukátory, například. Myslím, že by nic nebránilo vývoji kalkulaček pro inteligentnější mobilní telefony (Možná existují, aplikace je to jednodušší než hry.)
- Je možné si hesla vytisknout, existuje spousta utilitek, které vytisknou např. sto hesel na kartičku velikosti platební karty.
- Shrnuto, nejvýraznější předností OTP asi je, že uživatel může mít kryptograficky citlivou část fyzicky separovanou a množství dat, které musí "přenášet" psaním na klávesnici, je snesitelně malé. Pokud vím, tuto vlastnost většina běžných kryptograficky "silnějších" systémů postrádá (např. SRM) a zase se obejvuje terve u nejnáročnějších bezpečnostních řešení s čipovými kartami, např. v elektronickém bankovnictví.
Bezpečnostní problémy - OTP samozřejmě není všelék.
- z matematického hlediska zřejmě vše závisí na bezpečnosti hashovací funkce, resp. na tom, jak těžké je najít k 64bitové hashi 64bitový originál. Používají se všechny obvyklé algoritmy- RFC 2289 defunuje jako standardní MD4, MD5, SHA1, v dalších dokumentech je doplněno SHA256, SHA384, SHA512.
- OTP nepředstavují žádnou ochranu proti aktivním útokům, kradení spojení, útoku "proxy" uprostřed a pod.
- specifické a zajímavé útoky vycházejí z časování. Např. - co se stane, když někdo poslouchá komuinkaci, v okamžiku, kdy uživatel píše konec posledního slova rychle vykouší věechny zbývající možnosti a předběhne jej? V reálných implementacích by proto po zadání loginu mělo být zablokováno otevření "paralelního" logování.
Je snad patrné, že OTP jsou téměř "ortogonální" s transportním šifrováním a ověřením identity protistrany. V tom je naopak dobré ssh.
Závěrem by tedy mohlo výt doporučení - používejte obojí, ssh a otp se doplňují.
- Používame SSH - vzdálený přístup, historie ,klienti
- Zajímavý útok na SSH
- Používáme SSH III.
- Secure shell (ssh) - technický popis protokolu
- Základy kryptografie : vybíráme heslo
- Biometriky za zlámanou grešli
- Používáme SSH - přenos souborů, scp
|
|  |
 |
 |
|