U2F (англ. Universal 2nd Factor - відкритий, бездрайверний протокол для двофакторної автентифікації, заснований на виклик-відповідь автентифікації, що дозволяє інтернет-користувачам використовувати U2F пристроєм як другим чинником для автентифікації на великій кількості онлайн-служб.
Передумови та історія створення
Події, пов'язані з масовими зломами облікових записів, підтверджують необхідність захисту даних, що знаходяться на онлайн-службах. Часто облікові записи користувачів захищені слабкими паролями, користувачами використовується однаковий пароль в різних облікових записах, що сприяє масовим зломам. Тому сувора автентифікація стає все більш важливою вимогою. Більшість рішень, що забезпечують сувору автентифікацію дорожчою і складнішою у використанні (особливо з мобільними пристроями). Водночас, наприклад, другий чинник у вигляді OTP вразливий для відносно загальних атак, таких як фішинг, смарткарти вимагають спеціалізованого обладнання та/або установки драйверів перед використанням. В ідеалі база для безпечної автентифікації повинна відповідати таким вимогам, як: використання суворої автентифікації, дотримання конфіденційності користувача, зручність використання і взаємодія між різними пристроями, за допомогою яких проводиться автентифікація. Для розв'язання цих питань утворився [en], некомерційна організація, сформована в липні 2012 року.
30 червня 2015 року було випущено дві нові версії протоколу, що підтримують Bluetooth і NFC, як транспортні протоколи для U2F. Таким чином стала можлива автентифікація за допомогою протоколу U2F за допомогою мобільних пристроїв, використовуючи технологію NFC.
7 грудня 2016 року було оголошено оновлені специфікації протоколу U2F v1.1.
Робота протоколу
Реєстрація користувача
Під час реєстрації перевірна сторона (вебсервіс, цільовий ресурс) відправляє деякі дані для підпису пристроєм (тобто генерує виклик) браузеру. Браузер додає до даних URI, з якого був зроблений запит на підпис та ID каналу TLS і відправляє їх на U2F пристрій. Для успішної реєстрації, користувач повинен підтвердити свою згоду, пройшовши «тест на присутність користувача» (наприклад, натиснувши кнопку, що знаходиться безпосередньо на U2F пристрої), після чого U2F пристрій всередині себе генерує реєстраційно-залежну (тобто унікальну для даного пристрою, вебсервісу і призначеного для користувача облікового запису) пару відкритий/закритий ключ і відповідний цій парі дескриптор ключа (key handle (наприклад, випадкове число)), далі повертає відкритий ключ, дескриптор ключа, атестаційний сертифікат пристрої (сервер (необов'язково) перевіряє справжність пристрою. Наприклад, банківський сайт, можливо, зажадає наявності U2F пристрої певних постачальників) і підпис виклику браузеру. Браузер відправляє ці дані назад на цільовий ресурс, де відбувається верифікація підпису виклику, запам'ятовується відкритий ключ і дескриптор ключа, що асоціюються з даними призначеним для користувача обліковим записом.
Автентифікація користувача
Під час автентифікації перевіряє сторона відправляє деякі дані (тобто генерує виклик) і дескриптор ключа для підпису браузера. Браузер додає до цього URI, з якого був зроблений запит на підпис та ID каналу TLS і відправляє на U2F пристрій. Перш ніж підписати, U2F пристрій повинен «побачити» пройдений «тест на присутність користувача». Використовуючи дескриптор ключа, пристрій вибере відповідний йому закритий ключ для підпису, і якщо пристрій не "визнає" дескриптор або пов'язаний з закритим ключем URI, то запит на підпис відхиляється. Якщо все пройшло успішно, то проводиться підпис даних клієнта. Для запобігання клонування пристрою, всередині нього знаходиться лічильник, який за будь-якої автентифікації збільшує своє значення. Його значення так само підписується і відправляється перевірній стороні.
Небраузерні застосунки
Вебзастосунок за допомогою браузера контактує з U2F пристроєм за допомогою JavaScript API. Мобільний додаток так само має «спілкуватися» з пристроєм за допомогою API, при побудові якого використовується поняття web origin (вище згаданий URI для вебзастосунків). Для можливості роботи з різними API було вирішено використовувати фасети (facets). Фасет - це виконання програми, яке контактує з перевірною стороною. Наприклад, застосунок Example може мати реалізацію під Android, IOS або вебзастосунок. Усе це фасети застосунку Example.
Facet ID - це ідентифікатор (URI), який призначається виконання програми для конкретної платформи :
- для вебзастосунків визначено у RFC 6454 ;
- для Android додатків - це URI android: apk-key-hash: <hash-ofapk-signing-cert>;
- для IOS додатків - це URI ios: bundle-id: <ios-bundle-id-of-app>.
AppID - це URL, який вказує на JSON файл, який містить список дозволених facet IDs. AppID є частиною переданих даних при реєстрації та автентифікації, тому для успішного їх проходження потрібно, щоб facet ID був дозволений в списку, що містить facet IDs, пов'язаному з цим AppID.
Наприклад, для застосунку Example список дозволених facet IDs може виглядати наступним чином:
{ "trustedFacets": [{ "version": { "major": 1, "minor" : 0 }, "ids": [ "https://accounts.example.com", "https://myaccount.example.com", "https://security.example.com", "android:apk-key-hash:FD18FA800DD00C0D9D7724328B6...", "android:apk-key-hash:Rj6gA3QDA2ddyQyi21JXly6gw9...", "ios:bundle-id:com.example.SecurityKey.dogfood" ] }] }
Особливості
Криптографічні примітиви
Для операцій підписування використовується алгоритм ECDSA над кривою P-256, для операцій хешування- SHA-256, які широко доступні на вбудованих платформах і досить надійні.
Запобігання атаки посередника
Коли ID каналу TLS додається до даних клієнта під час роботи протоколу, сервер може виявити потенційну атаку посередника. Концепція ID каналу TLS представлена в документі IETF і дозволяє серверу виявити атаку, якщо є два роздільних канали TLS. Ця концепція була впроваджена в специфікації протоколу U2F, але проте в цьому підході були виявлені проблеми та запропоновані шляхи вирішення.
Нестандартизовані рішення
Згідно специфікацій U2F протоколу всі перелічені нижче параметри повинні бути реалізовані в U2F пристрої, але при цьому їх реалізація віддана на розсуд виробників:
- Утворення реєстраційно-залежної пари закритий/відкритий ключ. Наприклад, кожен Yubikey має свій майстер-ключ, який у зв'язці з HMAC і ГПСЧ утворює нову пару.
- Лічильник. Передбачає собою додатковий захист U2F пристрою від клонування. Проте захист таким способом може не спрацювати, наприклад, якщо після клонування, оригінальний U2F пристрій якийсь час не використовувався для автентифікації. Для якої пари ключів і на яке значення під час автентифікації збільшується його значення специфікаціями не описано. Проте, якщо в пристрої використовується єдиний глобальний лічильник з передбачуваною сумою приросту, це створює витік конфіденційності
- Дескриптор ключа. U2F пристрій може не зберігати всі закриті ключі всередині пристрою, а, наприклад, кожен закритий ключ може бути зашифрованою частиною дескриптора ключа. У цьому випадку повинен використовуватися алгоритм шифрування, найкращим чином забезпечує безпеку при наявному апаратному забезпеченні.
Джерела
- Malte Kahrs, Dr. Kim Nguyen. Future Ecosystems for Secure Authentication and Identification // ISSE 2015. — Springer Vieweg, 2015. — P. 12—21. — . — DOI:
- U2F v1.1 Specifications (PDF) (англ.).
{{}}
: Проігноровано невідомий параметр|accessyear=
(можливо,|access-date=
?) () - U2F v1.1 Specifications (PDF) (англ.).
{{}}
: Проігноровано невідомий параметр|accessyear=
(можливо,|access-date=
?) () - U2F v1.1 Specifications (PDF) (англ.).
{{}}
: Проігноровано невідомий параметр|accessyear=
(можливо,|access-date=
?) () - U2F v1.1 Specifications (PDF) (англ.).
{{}}
: Проігноровано невідомий параметр|accessyear=
(можливо,|access-date=
?) () - FIPS PUB 186-4 (PDF) (англ.).
{{}}
: Проігноровано невідомий параметр|accessyear=
(можливо,|access-date=
?) () - (PDF) (англ.). Архів оригіналу (PDF) за 26 листопада 2016. Процитовано 31 грудня 2016.
{{}}
: Проігноровано невідомий параметр|accessyear=
(можливо,|access-date=
?) () - D. Balfanz, R. Hamilton. Transport Layer Security (TLS) Channel IDs (англ.).
- Nikolaos Karapanos, Srdjan Capkun. On the Effective Prevention of TLS Man-in-the-Middle Attacks in Web Applications (PDF) (англ.).
- Key generation.
- Juan Lang, Alexei Czeskis, Dirk Balfanz, Marius Schilder, and Sampath Srinivas. Security Keys: Practical Cryptographic Second Factors for the Modern Web (PDF) (англ.).
- U2F v1.1 Specifications (PDF) (англ.).
{{}}
: Проігноровано невідомий параметр|accessyear=
(можливо,|access-date=
?) ()
Примітки
- (англ.). Архів оригіналу за 16 січня 2017. Процитовано 25 березня 2021.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U2F angl Universal 2nd Factor vidkritij bezdrajvernij protokol dlya dvofaktornoyi avtentifikaciyi zasnovanij na viklik vidpovid avtentifikaciyi sho dozvolyaye internet koristuvacham vikoristovuvati U2F pristroyem yak drugim chinnikom dlya avtentifikaciyi na velikij kilkosti onlajn sluzhb Peredumovi ta istoriya stvorennyaPodiyi pov yazani z masovimi zlomami oblikovih zapisiv pidtverdzhuyut neobhidnist zahistu danih sho znahodyatsya na onlajn sluzhbah Chasto oblikovi zapisi koristuvachiv zahisheni slabkimi parolyami koristuvachami vikoristovuyetsya odnakovij parol v riznih oblikovih zapisah sho spriyaye masovim zlomam Tomu suvora avtentifikaciya staye vse bilsh vazhlivoyu vimogoyu Bilshist rishen sho zabezpechuyut suvoru avtentifikaciyu dorozhchoyu i skladnishoyu u vikoristanni osoblivo z mobilnimi pristroyami Vodnochas napriklad drugij chinnik u viglyadi OTP vrazlivij dlya vidnosno zagalnih atak takih yak fishing smartkarti vimagayut specializovanogo obladnannya ta abo ustanovki drajveriv pered vikoristannyam V ideali baza dlya bezpechnoyi avtentifikaciyi povinna vidpovidati takim vimogam yak vikoristannya suvoroyi avtentifikaciyi dotrimannya konfidencijnosti koristuvacha zruchnist vikoristannya i vzayemodiya mizh riznimi pristroyami za dopomogoyu yakih provoditsya avtentifikaciya Dlya rozv yazannya cih pitan utvorivsya en nekomercijna organizaciya sformovana v lipni 2012 roku 30 chervnya 2015 roku bulo vipusheno dvi novi versiyi protokolu sho pidtrimuyut Bluetooth i NFC yak transportni protokoli dlya U2F Takim chinom stala mozhliva avtentifikaciya za dopomogoyu protokolu U2F za dopomogoyu mobilnih pristroyiv vikoristovuyuchi tehnologiyu NFC 7 grudnya 2016 roku bulo ogolosheno onovleni specifikaciyi protokolu U2F v1 1 Robota protokoluReyestraciya koristuvacha Shema reyestraciyi na vebservisi Pid chas reyestraciyi perevirna storona vebservis cilovij resurs vidpravlyaye deyaki dani dlya pidpisu pristroyem tobto generuye viklik brauzeru Brauzer dodaye do danih URI z yakogo buv zroblenij zapit na pidpis ta ID kanalu TLS i vidpravlyaye yih na U2F pristrij Dlya uspishnoyi reyestraciyi koristuvach povinen pidtverditi svoyu zgodu projshovshi test na prisutnist koristuvacha napriklad natisnuvshi knopku sho znahoditsya bezposeredno na U2F pristroyi pislya chogo U2F pristrij vseredini sebe generuye reyestracijno zalezhnu tobto unikalnu dlya danogo pristroyu vebservisu i priznachenogo dlya koristuvacha oblikovogo zapisu paru vidkritij zakritij klyuch i vidpovidnij cij pari deskriptor klyucha key handle napriklad vipadkove chislo dali povertaye vidkritij klyuch deskriptor klyucha atestacijnij sertifikat pristroyi server neobov yazkovo pereviryaye spravzhnist pristroyu Napriklad bankivskij sajt mozhlivo zazhadaye nayavnosti U2F pristroyi pevnih postachalnikiv i pidpis vikliku brauzeru Brauzer vidpravlyaye ci dani nazad na cilovij resurs de vidbuvayetsya verifikaciya pidpisu vikliku zapam yatovuyetsya vidkritij klyuch i deskriptor klyucha sho asociyuyutsya z danimi priznachenim dlya koristuvacha oblikovim zapisom Avtentifikaciya koristuvacha Shema avtentifikaciyi na vebservisi Pid chas avtentifikaciyi pereviryaye storona vidpravlyaye deyaki dani tobto generuye viklik i deskriptor klyucha dlya pidpisu brauzera Brauzer dodaye do cogo URI z yakogo buv zroblenij zapit na pidpis ta ID kanalu TLS i vidpravlyaye na U2F pristrij Persh nizh pidpisati U2F pristrij povinen pobachiti projdenij test na prisutnist koristuvacha Vikoristovuyuchi deskriptor klyucha pristrij vibere vidpovidnij jomu zakritij klyuch dlya pidpisu i yaksho pristrij ne viznaye deskriptor abo pov yazanij z zakritim klyuchem URI to zapit na pidpis vidhilyayetsya Yaksho vse projshlo uspishno to provoditsya pidpis danih kliyenta Dlya zapobigannya klonuvannya pristroyu vseredini nogo znahoditsya lichilnik yakij za bud yakoyi avtentifikaciyi zbilshuye svoye znachennya Jogo znachennya tak samo pidpisuyetsya i vidpravlyayetsya perevirnij storoni Nebrauzerni zastosunki Vebzastosunok za dopomogoyu brauzera kontaktuye z U2F pristroyem za dopomogoyu JavaScript API Mobilnij dodatok tak samo maye spilkuvatisya z pristroyem za dopomogoyu API pri pobudovi yakogo vikoristovuyetsya ponyattya web origin vishe zgadanij URI dlya vebzastosunkiv Dlya mozhlivosti roboti z riznimi API bulo virisheno vikoristovuvati faseti facets Faset ce vikonannya programi yake kontaktuye z perevirnoyu storonoyu Napriklad zastosunok Example mozhe mati realizaciyu pid Android IOS abo vebzastosunok Use ce faseti zastosunku Example Facet ID ce identifikator URI yakij priznachayetsya vikonannya programi dlya konkretnoyi platformi dlya vebzastosunkiv viznacheno u RFC 6454 dlya Android dodatkiv ce URI android apk key hash lt hash ofapk signing cert gt dlya IOS dodatkiv ce URI ios bundle id lt ios bundle id of app gt AppID ce URL yakij vkazuye na JSON fajl yakij mistit spisok dozvolenih facet IDs AppID ye chastinoyu peredanih danih pri reyestraciyi ta avtentifikaciyi tomu dlya uspishnogo yih prohodzhennya potribno shob facet ID buv dozvolenij v spisku sho mistit facet IDs pov yazanomu z cim AppID Napriklad dlya zastosunku Example spisok dozvolenih facet IDs mozhe viglyadati nastupnim chinom trustedFacets version major 1 minor 0 ids https accounts example com https myaccount example com https security example com android apk key hash FD18FA800DD00C0D9D7724328B6 android apk key hash Rj6gA3QDA2ddyQyi21JXly6gw9 ios bundle id com example SecurityKey dogfood OsoblivostiKriptografichni primitivi Dlya operacij pidpisuvannya vikoristovuyetsya algoritm ECDSA nad krivoyu P 256 dlya operacij heshuvannya SHA 256 yaki shiroko dostupni na vbudovanih platformah i dosit nadijni Zapobigannya ataki poserednika Koli ID kanalu TLS dodayetsya do danih kliyenta pid chas roboti protokolu server mozhe viyaviti potencijnu ataku poserednika Koncepciya ID kanalu TLS predstavlena v dokumenti IETF i dozvolyaye serveru viyaviti ataku yaksho ye dva rozdilnih kanali TLS Cya koncepciya bula vprovadzhena v specifikaciyi protokolu U2F ale prote v comu pidhodi buli viyavleni problemi ta zaproponovani shlyahi virishennya Nestandartizovani rishennya Zgidno specifikacij U2F protokolu vsi perelicheni nizhche parametri povinni buti realizovani v U2F pristroyi ale pri comu yih realizaciya viddana na rozsud virobnikiv Utvorennya reyestracijno zalezhnoyi pari zakritij vidkritij klyuch Napriklad kozhen Yubikey maye svij majster klyuch yakij u zv yazci z HMAC i GPSCh utvoryuye novu paru Lichilnik Peredbachaye soboyu dodatkovij zahist U2F pristroyu vid klonuvannya Prote zahist takim sposobom mozhe ne spracyuvati napriklad yaksho pislya klonuvannya originalnij U2F pristrij yakijs chas ne vikoristovuvavsya dlya avtentifikaciyi Dlya yakoyi pari klyuchiv i na yake znachennya pid chas avtentifikaciyi zbilshuyetsya jogo znachennya specifikaciyami ne opisano Prote yaksho v pristroyi vikoristovuyetsya yedinij globalnij lichilnik z peredbachuvanoyu sumoyu prirostu ce stvoryuye vitik konfidencijnosti Deskriptor klyucha U2F pristrij mozhe ne zberigati vsi zakriti klyuchi vseredini pristroyu a napriklad kozhen zakritij klyuch mozhe buti zashifrovanoyu chastinoyu deskriptora klyucha U comu vipadku povinen vikoristovuvatisya algoritm shifruvannya najkrashim chinom zabezpechuye bezpeku pri nayavnomu aparatnomu zabezpechenni DzherelaMalte Kahrs Dr Kim Nguyen Future Ecosystems for Secure Authentication and Identification ISSE 2015 Springer Vieweg 2015 P 12 21 ISBN 978 3 658 10934 9 DOI 10 1007 978 3 658 10934 9 2 U2F v1 1 Specifications PDF angl a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Proignorovano nevidomij parametr accessyear mozhlivo access date dovidka U2F v1 1 Specifications PDF angl a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Proignorovano nevidomij parametr accessyear mozhlivo access date dovidka U2F v1 1 Specifications PDF angl a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Proignorovano nevidomij parametr accessyear mozhlivo access date dovidka U2F v1 1 Specifications PDF angl a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Proignorovano nevidomij parametr accessyear mozhlivo access date dovidka FIPS PUB 186 4 PDF angl a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Proignorovano nevidomij parametr accessyear mozhlivo access date dovidka PDF angl Arhiv originalu PDF za 26 listopada 2016 Procitovano 31 grudnya 2016 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Proignorovano nevidomij parametr accessyear mozhlivo access date dovidka D Balfanz R Hamilton Transport Layer Security TLS Channel IDs angl Nikolaos Karapanos Srdjan Capkun On the Effective Prevention of TLS Man in the Middle Attacks in Web Applications PDF angl Key generation Juan Lang Alexei Czeskis Dirk Balfanz Marius Schilder and Sampath Srinivas Security Keys Practical Cryptographic Second Factors for the Modern Web PDF angl U2F v1 1 Specifications PDF angl a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Proignorovano nevidomij parametr accessyear mozhlivo access date dovidka Primitki angl Arhiv originalu za 16 sichnya 2017 Procitovano 25 bereznya 2021