TOTP (Time-based One-Time Password Algorithm, RFC 6238) — OATH-алгоритм створення одноразових паролів для захищеної аутентифікації, є поліпшенням HOTP (HMAC-Based One-Time Password Algorithm). Є алгоритмом односторонньої аутентифікації — сервер засвідчується в справжності клієнта. Головна відмінність TOTP від HOTP це генерація пароля на основі часу, тобто час є параметром. При цьому зазвичай використовується не точне зазначення часу, а поточний інтервал з встановленими заздалегідь межами (наприклад, 30 секунд).
Історія
З 2004 року OATH (The Initiative for open authentication) працювала над проектом одноразових паролів (OTP). Першим результатом був HOTP (the Hash-based Message Authentication Code (HMAC) OTP algorithm), опублікований у грудні 2005 року. Він був представлений як проект IETF (The Internet Engineering Task Force).
Подальша робота OATH йшла над покращенням HOTP. У 2008 році був представлений TOTP. Цей алгоритм не використовує лічильник для синхронізації клієнта та сервера, а генерує пароль на основі моменту часу, який дійсний протягом деякого інтервалу. Алгоритм діє так: клієнт бере поточне значення таймера та секретний ключ, хешує їх за допомогою довільної хеш-функції та відправляє серверу, а сервер у свою чергу проводить ті ж обчислення, після чого йому залишається тільки порівняти ці значення. Алгоритм може бути реалізований не лише за допомогою хеш-функції SHA-1, на відміну від HOTP, тому хеш-функція також є вхідним параметром.
Пізніше у вересні 2010 року був представлений новий алгоритм, який додатково розширює TOTP та отримав назву OATH Challenge-Response Algorithms (OCRA). Головна відмінність від попередніх алгоритмів полягає в тому, що у перевірці достовірності бере участь також і сервер. Так що клієнт може бути впевнений у його достовірності.
Принцип роботи
По суті, TOTP є варіантом HOTP алгоритму, в якому в якості значення лічильника підставляється величина, що залежить від часу. Позначимо:
- — дискретне значення часу, що використовується в якості параметра. (Вимірюється в одиницях , 4 байти)
- — інтервал часу, протягом якого дійсний пароль. (За замовчуванням 30 сек.)
- — початковий час, необхідний для синхронізації сторін. (За замовчуванням — час від початку UNIX ери)
- — спільний секрет.
- — поточний час.
Тоді
де
- HMAC-SHA-1(K,T) -генерація 20-ти байт на основі таємного ключа і часу за допомогою хеш-функції SHA-1.
- Truncate — функція вибору певним способом 4 байт:
позначимо String — результат HMAC-SHA-1(K,T); OffsetBits — молодші 4 біта рядка String; Offset = StringToNumber(OffsetBits) і результатом Truncate буде рядок з чотирьох символів — String[Offset]...String[Offset + 3]
Також варто відзначити, що на відміну від HOTP, який заснований тільки на SHA-1, TOTP може також використовувати HMAC-SHA-256, HMAC-SHA-512 та інші HMAC-хеш-функції:
і т. д.
Надійність алгоритму
Концепція одноразових паролів разом з сучасними криптографічними методами може використовуватися для реалізації надійних систем віддаленої аутентифікації. TOTP досить стійкий до криптографічних атак, проте ймовірність злому є, наприклад можливий такий варіант атаки «людина посередині»:
Прослуховуючи трафік клієнта, зловмисник може перехопити посланий логін і одноразовий пароль (або хеш від нього). Потім йому досить блокувати комп'ютер «жертви» і відправити аутентифікаційні дані від власного імені. Якщо він встигне це зробити за проміжок часу , то йому вдасться отримати доступ. Саме тому варто робити невеликим. Але якщо час дії пароля зробити дуже маленьким, то у разі невеликої розсинхронізації клієнт не зможе отримати доступ.
Також існує вразливість пов'язана з синхронізацією таймерів сервера і клієнта, так як існує ризик розсинхронізації інформації про час на сервері і в програмному та/або апаратному забезпеченні користувача. Оскільки TOTP використовує в якості параметра, то при не збігу значень всі спроби користувача на аутентифікацію завершаться невдачею. У цьому випадку помилковий допуск чужого також буде неможливий. Варто відзначити, що ймовірність такої ситуації вкрай мала.
Дивись також
Примітки
Джерела
- Nathan Willis. OATH: yesterday, today, and tomorrow. — , 2010.
- Joann Killeen, Madison Alexander. OATH Submits TOTP: Time-Based One Time Password Specification to IETF. Архів оригіналу за 23 січня 2013.
- D. M'Raihi, M. Bellare, F. Hoornaert et al. HOTP: An HMAC-Based One-Time Password Algorithm — IETF, 2005. — 37 p. — doi:10.17487/RFC4226
- Давлетханов М. Концепция одноразовых паролей в построении системы аутентификации // Byte — США: 2006. — вып. 7-8 (95), июль-август. — ISSN 0360-5280; 1082-7838
- Park J. H., Rodrigues J. J. P. C., Vaidya B. HOTP-Based User Authentication Scheme in Home Networks // Advances in Information Security and Assurance: Third International Conference and Workshops, ISA 2009, Seoul, Korea, June 25-27, 2009. Proceedings — Berlin, Heidelberg, New York, NY, London [etc.]: Springer Berlin Heidelberg, 2009. — P. 672–681. — (Lecture Notes in Computer Science; Vol. 5576) — , 978-3-642-02617-1 — ISSN 0302-9743; 1611-3349 — doi:10.1007/978-3-642-02617-1_68
- D. M'Raihi, S. Machani, M. Pei et al. TOTP: Time-Based One-Time Password Algorithm — IETF, 2011. — 16 p. — doi:10.17487/RFC6238
Посилання
- OTP Oath HOTP TOTP PSKS DSKPP. Архів оригіналу за 24 січня 2013.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
TOTP Time based One Time Password Algorithm RFC 6238 OATH algoritm stvorennya odnorazovih paroliv dlya zahishenoyi autentifikaciyi ye polipshennyam HOTP HMAC Based One Time Password Algorithm Ye algoritmom odnostoronnoyi autentifikaciyi server zasvidchuyetsya v spravzhnosti kliyenta Golovna vidminnist TOTP vid HOTP ce generaciya parolya na osnovi chasu tobto chas ye parametrom Pri comu zazvichaj vikoristovuyetsya ne tochne zaznachennya chasu a potochnij interval z vstanovlenimi zazdalegid mezhami napriklad 30 sekund IstoriyaZ 2004 roku OATH The Initiative for open authentication pracyuvala nad proektom odnorazovih paroliv OTP Pershim rezultatom buv HOTP the Hash based Message Authentication Code HMAC OTP algorithm opublikovanij u grudni 2005 roku Vin buv predstavlenij yak proekt IETF The Internet Engineering Task Force Podalsha robota OATH jshla nad pokrashennyam HOTP U 2008 roci buv predstavlenij TOTP Cej algoritm ne vikoristovuye lichilnik dlya sinhronizaciyi kliyenta ta servera a generuye parol na osnovi momentu chasu yakij dijsnij protyagom deyakogo intervalu Algoritm diye tak kliyent bere potochne znachennya tajmera ta sekretnij klyuch heshuye yih za dopomogoyu dovilnoyi hesh funkciyi ta vidpravlyaye serveru a server u svoyu chergu provodit ti zh obchislennya pislya chogo jomu zalishayetsya tilki porivnyati ci znachennya Algoritm mozhe buti realizovanij ne lishe za dopomogoyu hesh funkciyi SHA 1 na vidminu vid HOTP tomu hesh funkciya takozh ye vhidnim parametrom Piznishe u veresni 2010 roku buv predstavlenij novij algoritm yakij dodatkovo rozshiryuye TOTP ta otrimav nazvu OATH Challenge Response Algorithms OCRA Golovna vidminnist vid poperednih algoritmiv polyagaye v tomu sho u perevirci dostovirnosti bere uchast takozh i server Tak sho kliyent mozhe buti vpevnenij u jogo dostovirnosti Princip robotiPo suti TOTP ye variantom HOTP algoritmu v yakomu v yakosti znachennya lichilnika pidstavlyayetsya velichina sho zalezhit vid chasu Poznachimo T displaystyle T diskretne znachennya chasu sho vikoristovuyetsya v yakosti parametra Vimiryuyetsya v odinicyah X displaystyle X 4 bajti X displaystyle X interval chasu protyagom yakogo dijsnij parol Za zamovchuvannyam 30 sek T 0 displaystyle T 0 pochatkovij chas neobhidnij dlya sinhronizaciyi storin Za zamovchuvannyam chas vid pochatku UNIX eri K displaystyle K spilnij sekret C u r r e n t T i m e displaystyle CurrentTime potochnij chas Todi T C u r r e n t T i m e T 0 X displaystyle T CurrentTime T 0 X HOTP K T T r u n c a t e H M A C S H A 1 K T displaystyle operatorname HOTP K T Truncate operatorname HMAC SHA 1 K T TOTP HOTP K T displaystyle operatorname TOTP operatorname HOTP K T de HMAC SHA 1 K T generaciya 20 ti bajt na osnovi tayemnogo klyucha i chasu za dopomogoyu hesh funkciyi SHA 1 Truncate funkciya viboru pevnim sposobom 4 bajt poznachimo String rezultat HMAC SHA 1 K T OffsetBits molodshi 4 bita ryadka String Offset StringToNumber OffsetBits i rezultatom Truncate bude ryadok z chotiroh simvoliv String Offset String Offset 3 Takozh varto vidznachiti sho na vidminu vid HOTP yakij zasnovanij tilki na SHA 1 TOTP mozhe takozh vikoristovuvati HMAC SHA 256 HMAC SHA 512 ta inshi HMAC hesh funkciyi TOTP K T T r u n c a t e H M A C S H A 256 K T displaystyle operatorname TOTP K T Truncate operatorname HMAC SHA 256 K T TOTP K T T r u n c a t e H M A C S H A 512 K T displaystyle operatorname TOTP K T Truncate operatorname HMAC SHA 512 K T i t d Nadijnist algoritmuKoncepciya odnorazovih paroliv razom z suchasnimi kriptografichnimi metodami mozhe vikoristovuvatisya dlya realizaciyi nadijnih sistem viddalenoyi autentifikaciyi TOTP dosit stijkij do kriptografichnih atak prote jmovirnist zlomu ye napriklad mozhlivij takij variant ataki lyudina poseredini Prosluhovuyuchi trafik kliyenta zlovmisnik mozhe perehopiti poslanij login i odnorazovij parol abo hesh vid nogo Potim jomu dosit blokuvati komp yuter zhertvi i vidpraviti autentifikacijni dani vid vlasnogo imeni Yaksho vin vstigne ce zrobiti za promizhok chasu X displaystyle X to jomu vdastsya otrimati dostup Same tomu X displaystyle X varto robiti nevelikim Ale yaksho chas diyi parolya zrobiti duzhe malenkim to u razi nevelikoyi rozsinhronizaciyi kliyent ne zmozhe otrimati dostup Takozh isnuye vrazlivist pov yazana z sinhronizaciyeyu tajmeriv servera i kliyenta tak yak isnuye rizik rozsinhronizaciyi informaciyi pro chas na serveri i v programnomu ta abo aparatnomu zabezpechenni koristuvacha Oskilki TOTP vikoristovuye v yakosti parametra to pri ne zbigu znachen vsi sprobi koristuvacha na autentifikaciyu zavershatsya nevdacheyu U comu vipadku pomilkovij dopusk chuzhogo takozh bude nemozhlivij Varto vidznachiti sho jmovirnist takoyi situaciyi vkraj mala Divis takozhHOTP OTP OCRAPrimitkiM Raihi Machani Pei et al 2011 Nathan Willis 2010 Vaidya Park Rodrigue 2009 OATH Submits TOTP Time Based One Time Password Specification to IETF Davlethanov 2006 M Raihi Bellare Hoornaert et al 2005 DzherelaNathan Willis OATH yesterday today and tomorrow 2010 Joann Killeen Madison Alexander OATH Submits TOTP Time Based One Time Password Specification to IETF Arhiv originalu za 23 sichnya 2013 D M Raihi M Bellare F Hoornaert et al HOTP An HMAC Based One Time Password Algorithm IETF 2005 37 p doi 10 17487 RFC4226 d Track Q27105682d Track Q22678443d Track Q1932841d Track Q217082d Track Q27105706d Track Q3018520 Davlethanov M Koncepciya odnorazovyh parolej v postroenii sistemy autentifikacii Byte SShA 2006 vyp 7 8 95 iyul avgust ISSN 0360 5280 1082 7838 d Track Q1018709d Track Q30d Track Q21694596d Track Q21694594 Park J H Rodrigues J J P C Vaidya B HOTP Based User Authentication Scheme in Home Networks Advances in Information Security and Assurance Third International Conference and Workshops ISA 2009 Seoul Korea June 25 27 2009 Proceedings Berlin Heidelberg New York NY London etc Springer Berlin Heidelberg 2009 P 672 681 Lecture Notes in Computer Science Vol 5576 ISBN 978 3 642 02616 4 978 3 642 02617 1 ISSN 0302 9743 1611 3349 doi 10 1007 978 3 642 02617 1 68 d Track Q21694586d Track Q21694587d Track Q21694585d Track Q924044d Track Q21694588d Track Q21694589d Track Q21587985 D M Raihi S Machani M Pei et al TOTP Time Based One Time Password Algorithm IETF 2011 16 p doi 10 17487 RFC6238 d Track Q22678443d Track Q26882441d Track Q26882437d Track Q217082d Track Q26882439d Track Q26882440PosilannyaOTP Oath HOTP TOTP PSKS DSKPP Arhiv originalu za 24 sichnya 2013