Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

HOTP - HMAC-B ASED O NE -T IME P ASSWORD A LGORITHM Készítette: Tóth Balázs Viktor.

Hasonló előadás


Az előadások a következő témára: "HOTP - HMAC-B ASED O NE -T IME P ASSWORD A LGORITHM Készítette: Tóth Balázs Viktor."— Előadás másolata:

1 HOTP - HMAC-B ASED O NE -T IME P ASSWORD A LGORITHM Készítette: Tóth Balázs Viktor

2 M OTIVÁCIÓK Kevés two-factor autentikáció Hardver-, és szoftvergyártók közötti együttműködés hiánya Nyílt szabványok hiánya (magas költségűek, nem elterjedtek…) Statikus jelszavak alkalmatlansága nyílt szabvány → minden műszaki közösség által hozzáférhető OTP: legegyszerűbb és leghíresebb Fő előnye: nem kell semmilyen kliens szoftvernek installálva lennie a felhasználó gépére (roaming) 2

3 A HOTP ALGORITMUS - J ELÖLÉSEK SzimbólumJelentés C8 bájtos számláló érték. Ennek az értéknek szinkronizálva kell, hogy legyen a HOTP generátor (kliens) és a HOTP validátor (szerver) között. KSzerver és kliens közötti titkos érték. Minden HOTP generátornak különböző K-ja van. TA sikertelen autentikációs kapcsolódások száma, amely után már a szerver nem enged csatlakozni. s Újraszinkronizációs paraméter. A szerver megpróbálja verifikálni az autentikátort s egymást követő számláló értéken keresztül. DigitSzámok darabszáma egy HOTP értékben, rendszer paraméter. 3

4 A HOTP ALGORITMUS 1) HS = HMAC-SHA-1(K,C), ahol HS egy 20 bájtos string 2) Sbits = DT(HS), ahol 4 bájttá alakítunk, DT 31 bittel tér vissza 3) Snum = StToNum(Sbits), ami S-t egy 0…2 31 -1 értékek közötti számmá konvertálja. 4) D = Snum mod 10 Digit, ahol D egy szám 0…10 Digit -1 között. A Truncate függvény (2. és 3. lépés) : DT(String), ahol String = String[0], …,String[19] Legyen OffsetBits a low-order 4 bitje String[19]-nek. Offset = StToNum(OffsetBits), ahol 0 <= OffSet <= 15 P = String[Offset], …, String[Offset+3] Az utolsó 31 bitje P-nek az output. 4

5 P ÉLDA D IGIT = 6- RA Byte Number 0001020304050607080910111213141516171819 Byte Value 1f8698690e02ca16618550ef7f19da8e945b555a Az utolsó bájt 19, aminek a hexa értéke: 0x5a. Az alsó 4 bit értéke 0xa (ez az offset érték). Az offset érték a 10. bájt (0xa). A 4 bájt értéke, ami a 10. bájttól indul 0x50ef7f19, ami a DBC1 (Dynamic Binary Code). Az MSB-je a DBC1-nek 0x50, így DBC2 = DBC1 = 0x50ef7f19 (1357872921) HOTP = DBC2 modulo 10 6 = 872921 5 int offset = hmac_result[19] & 0xf ; int bin_code = (hmac_result[offset] & 0x7f) << 24 | (hmac_result[offset+1] & 0xff) << 16 | (hmac_result[offset+2] & 0xff) << 8 | (hmac_result[offset+3] & 0xff) ;

6 B IZTONSÁGI MEGFONTOLÁSOK, ELVÁRÁSOK T-nek és s-nek és Digit-nek van szerepe a biztonság terén Nem szabad sérülékenynek lennie egy brute force támadással szemben Egy biztonságos csatornán keresztül kell implementálni, hogy biztosítható legyen a felhasználók közötti interakciók biztonsága A HOTP biztonságossága az alábbi formulával fejezhető ki: Sec = sv/10 Digit 6

7 A HOTP ÉRTÉKEK VALIDÁCIÓJA A HOTP kliens növeli a számlálóját és utána kiszámolja a következő HOTP értéket Ha az autentikációs server által fogadott érték megegyezik a kliens által számolt értékkel, akkor a HOTP érték validálva van A server a sikeres validáció után növeli a számlálóját egyel Ha a server által fogadott érték nem egyezik meg a kliens által számolt értékkel, akkor a server elindítja az újraszinkronizáló protokollját mielőtt egy újabb értéket kérne Ha az újraszinkronizáció sem sikerül, akkor a server egy újabb autentikációs igazolást kér a protokolltól, amíg a maximális számú próbálkozást el nem éri A maximum számú próbálkozást elérve a servernek ki kell (SHOULD) zárnia az ügyfelet és értesítenie a felhasználót 7

8 M EGELŐZÉS A SZERVERBEN A HMAC-SHA-1 érték egy rövidebb értékké alakítása lehetővé teszi egy brute force támadás sikerességét A T érték egy akadályozási (throttling) paraméter, ami meghatározza a maximum számú lehetséges próbálkozást egy OTP validálására A T értékét a lehető legalacsonyabbra kell állítani, hogy még ne zavarja a használhatóságot Késleltetési séma: Minden sikertelen próbálkozásra, A-ra az autentikációs server vár T*A másodpercet 8

9 A SZÁMLÁLÓ ÚJRASZINKRONIZÁLÁSA Annak ellenére, hogy a server számlálója csak egy sikeres HOTP autentikáció után növekszik, a számláló a tokenen minden alkalommal növekszik, amikor a felhasználó egy új HOTP-t kér. Emiatt a számláló értékek a serveren és a tokenen lehet, hogy nincsenek szinkronban Az s look-ahead paraméter segítségével a server újraszámolja a következő s HOTP-server értéket és ellenőrzi a fogadott HOTP kliens értékkel szemben Az s által meghatározott felső határ biztosítja, hogy a server ne ellenőrizze a HOTP értékeket örökké 9

10 I TT A VÉGE … Köszönöm a figyelmet! 10


Letölteni ppt "HOTP - HMAC-B ASED O NE -T IME P ASSWORD A LGORITHM Készítette: Tóth Balázs Viktor."

Hasonló előadás


Google Hirdetések