+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Двофакторна автентифікація. Коди у SMS небезпечні

Двофакторна автентифікація. Коди SMS небезпечні

За останні кілька років ідея двофакторної автентифікації просунулась у маси. Однак досі у більшості випадків йдеться про двофакторну аутентифікацію за допомогою одноразових паролів, що надходять у SMS. А це, на жаль, не дуже надійний варіант. Ось що може піти не так:

  • Пароль у SMS можна підглянути, якщо у вас увімкнено показ повідомлень на екрані блокування.
  • Навіть якщо показ сповіщень вимкнено, можна вийняти SIM-карту зі смартфона, встановити в інший смартфон та прийняти SMS з паролем.
  • SMS з паролем може перехопити троян, що пробрався в смартфон.
  • Також за допомогою різних махінацій (переконання, підкуп, змова і так далі) можна отримати нову SIM-карту з номером жертви в салоні мобільного зв'язку. Тоді SMS приходитимуть на цю карту, а телефон жертви просто не зв'язуватиметься з мережею.
  • Нарешті, SMS з паролем може бути перехоплена через фундаментальну вразливість у протоколі SS7, за яким ці SMS передаються.

Треба зауважити, що навіть найтрудомісткіший і високотехнологічний із перерахованих методів перехоплення пароля в SMS — за допомогою злому протоколу SS7 — уже був використаний на практиці. Отже, мова не про теоретичну можливість виникнення неприємностей, а про цілком практичну загрозу.

Загалом, паролі в SMS - це не дуже безпечно, а іноді навіть і дуже небезпечно. Тому є сенс потурбуватися про пошук альтернативних варіантів двоетапної аутентифікації.

Одноразові коди у файлі або на папірці

Найбільш проста заміна одноразовим паролям, що надсилаються в SMS, - це ті ж одноразові паролі, але заготовлені заздалегідь. Це не найгірший варіант, особливо для тих сервісів, в яких вам потрібно авторизуватись порівняно рідко. Власне, навіть для того ж «Фейсбуку» цей метод цілком може підійти, особливо як резервний спосіб входу.

Працює це дуже просто: на запит сервіс генерує та показує на екрані десяток одноразових кодів, які надалі можуть бути використані для підтвердження входу до нього. Далі ви просто друкуєте або переписуєте ці коди на папір і кладете в сейф. Або, що ще простіше, зберігаєте у зашифрованих записах у менеджері паролів.

Загалом, не так важливо, чи зберігатимете ви ці коди на теплому ламповому папері або в бездушному цифровому вигляді — важливо зберегти їх так, щоб вони а) не загубилися і б) не могли бути вкрадені.

Додатки для двофакторної аутентифікації

У одного разу згенерованого набору одноразових кодів є один недолік: рано чи пізно він закінчиться, і цілком може вийти так, що ви залишитеся без коду в самий невідповідний момент. Тому є спосіб краще: можна генерувати одноразові коди на льоту за допомогою невеликої і, як правило, дуже простої програми — автентифікатора.

Як працюють автентифікатори

Працюють програми для двофакторної автентифікації дуже просто. Ось що доведеться зробити:

  • встановлюєте на смартфон додаток для двофакторної аутентифікації;
  • заходьте в налаштування безпеки сервісу, який серед опцій для двофакторної автентифікації пропонує використовувати такі програми;
  • вибираєте двофакторну автентифікацію за допомогою програми;
  • сервіс покаже вам QR-код, який можна відсканувати прямо в 2FA-додатку;
  • скануєте код додатком — і він починає кожні 30 секунд створювати новий одноразовий код.

Коди створюються на основі ключа, який відомий лише вам та серверу, а також поточного часу, округленого до 30 секунд. Оскільки обидві складові однакові і у вас, і у сервісу, коди синхронно генеруються. Цей алгоритм називається OATH TOTP (Time-based One-time Password), і в переважній більшості випадків використовується саме він.

Також існує альтернатива - алгоритм OATH HOTP (HMAC-based One-time Password). У ньому замість поточного часу використовується лічильник, що збільшується на 1 при кожному новому створеному коді. Але цей алгоритм рідко зустрічається в реальності, оскільки при його використанні набагато складніше забезпечити синхронне створення кодів на стороні сервісу та програми. Простіше кажучи, є чималий ризик, що в один не дуже гарний момент лічильник зіб'ється і ваш одноразовий пароль не спрацює.

Так що можна вважати OATH TOTP де-факто індустріальним стандартом (хоча формально це навіть не стандарт, на чому творці цього алгоритму дуже наполягають у його описі).

Сумісність додатків для двофакторної аутентифікації та сервісів

Переважна більшість додатків для двофакторної аутентифікації працює по тому самому алгоритму, так що для всіх сервісів, які підтримують аутентифікатори, можна використовувати будь-який з них — який вам більше подобається.

Як і в будь-якому добротному правилі, в Це теж є певна кількість винятків. Деякі сервіси з якихось причин, ведених лише їм одним, вважають за краще робити свої власні додатки для двофакторної автентифікації, які працюють тільки з ними. Більше того, самі сервіси не працюють з жодними іншими додатками, крім своїх власних.

Особливо це поширене серед великих видавців комп'ютерних ігор — наприклад, існують несумісні зі сторонніми сервісами програми Blizzard Authenticator, Steam Mobile із вбудованим автентифікатором Steam Guard, Wargaming Auth і таке інше. Для цих сервісів доведеться ставити саме ці програми.

Також цим дивним шляхом пішла Adobe, яка розробила Adobe Authenticator, який працює тільки з акаунтами AdobeID. Але при цьому ви можете використовувати для захисту AdobeID та інші автентифікатори, тому взагалі незрозуміло, заради чого було городити город.

Так чи інакше більшість нормальних ІТ-компаній не обмежує користувачів у виборі 2FA-додатка. І навіть якщо з якихось міркувань їм хочеться контролювати цей процес і створити свою програму, то найчастіше вони дозволяють захищати за його допомогою не лише «свої» акаунти, а й облікові записи сторонніх сервісів.

Тому просто вибирайте програму-автентифікатор, яка вам більше подобається за набором додаткових функцій — вона буде працювати з більшістю сервісів, які взагалі підтримують 2FA-програми.

Кращі програми для двофакторної аутентифікації

Вибір 2FA-додатків напрочуд великий: пошук за запитом «authenticator» у Google Play або Apple App Store видає не один десяток результатів. Ми не радимо встановлювати першу-ліпшу програму — це може бути небезпечно, адже, по суті, ви збираєтеся довірити йому ключі від своїх акаунтів (воно не знатиме ваші паролі, звичайно, але 2FA ви додаєте саме тому, що паролі мають властивість витікати). Загалом, варто вибирати із додатків, створених великими та шановними розробниками.

Незважаючи на те, що базова функція у всіх цих програм одна і та ж — створення одноразових кодів за одним і тим же алгоритмом, деякі автентифікатори мають додаткові функції або особливості інтерфейсу, які можуть здатися вам зручними. Перелічимо кілька найцікавіших варіантів.

1. Google Authenticator

Підтримувані платформи: Android, iOS

Як відзначають буквально всі публікації, Google Authenticator - це найпростіше у використанні з усіх існуючих додатків для двофакторної автентифікації. У нього навіть налаштувань немає. Все, що можна зробити, - це додати новий токен (так називається генератор кодів для окремого облікового запису) або видалити один з наявних. А щоб скопіювати код у буфер обміну, достатньо торкнутися його пальцем на сенсорному екрані смартфона або планшета. Все!

Однак така простота має і недолік: якщо вам щось не подобається в інтерфейсі або хочеться від аутентифікатора чогось більшого — доведеться встановлювати іншу програму.
 
+ Дуже просто використовувати.

>

2. Duo Mobile

Підтримувані платформи: Android, iOS

Duo Mobile також вкрай простий у використанні, мінімальний і позбавлений додаткових налаштувань. У порівнянні з Google Authenticator він має одну перевагу: за замовчуванням Duo Mobile приховує коди — щоб побачити код, треба натиснути на конкретний токені. Якщо ви, як і я, відчуваєте дискомфорт щоразу, коли відкриваєте аутентифікатор і показуєте всім навколишнім купу кодів від усіх своїх акаунтів відразу, то вам ця особливість Duo Mobile напевно сподобається. За замовчуванням приховує коди.

3. Microsoft Authenticator

Підтримувані платформи: Android, iOS

У Microsoft теж не стали ускладнювати і зробили свій автентифікатор на вигляд дуже мінімальним. Але при цьому Microsoft Authenticator помітно функціональніший, ніж Google Authenticator. По-перше, хоч за замовчуванням усі коди показуються, але кожен із токенів можна окремо налаштувати так, щоб при запуску програми код був прихований.

По-друге, Microsoft Authenticator спрощує вхід до облікових записів Microsoft. У цьому випадку після введення пароля достатньо буде натиснути кнопку кнопки підтвердження входу - і все, можна навіть не вводити одноразовий код. Можна налаштувати, щоб коди ховалися. Додаткові можливості для входу в акаунти Microsoft.

4. FreeOTP

Підтримувані платформи: Android, iOS

Є чотири причини, через які вам може сподобатися цей аутентифікатор, розроблений Red Hat. По-перше, це ваш вибір, якщо ви любите програмне забезпечення з відкритим кодом. По-друге, це найменший додаток з усіх розглянутих - версія для iOS займає всього 750 Кбайт. Для порівняння: мінімалістичний Google Authenticator займає майже 14 Мбайт, а програма Authy, про яку ми поговоримо нижче, — аж 44 Мбайта.

По-третє, за промовчанням програма приховує коди і показує їх тільки після торкання. Нарешті, по-четверте, FreeOTP дозволяє максимально гнучко конфігурувати токени вручну, якщо вам це навіщо потрібно. Зрозуміло, звичайний спосіб створення токена за допомогою сканування QR-коду теж підтримується.
 
+ За умовчанням приховує коди.
+ Додаток займає всього 700 Кбайт.
+ Відкритий код. />+ Максимум налаштувань при створенні токена вручну.

5. Authy

Підтримувані платформи: Android, iOS, Windows, macOS, Chrome

Найкрученіше із додатків для двофакторної аутентифікації, основною перевагою якого є те, що всі токени зберігаються в хмарі. Це дозволяє отримати доступ до токена з будь-якого з ваших пристроїв. Водночас це спрощує переїзд на нові пристрої — не доведеться заново активувати 2FA у кожному сервісі, можна продовжити користуватися існуючими токенами.

У хмарі токени зашифровані ключем, який створюється на основі заданого користувачем пароля, тобто дані зберігаються безпечно, і вкрасти їх буде нелегко. Також можна встановити ПІН-код на вхід до програми або захистити його відбитком пальця, якщо ваш смартфон оснащений відповідним сканером.

Основний недолік Authy полягає в тому, що додаток з ходу вимагає завести обліковий запис, прив'язаний до вашого телефонного номера, — без цього просто не вдасться почати з ним працювати. дозволяє використовувати їх на всіх своїх пристроях.
+ З тієї ж причини дуже зручно переїжджати на новий пристрій.
+ Вхід до програми захищений PIN-кодом або відбитком пальця.
+ На екрані відображається код тільки для останнього використаного токена.
+ На відміну від інших додатків, підтримує не тільки Android та iOS, а й Windows, macOS та Chrome.

− Потрібно зареєструватися в Authy, використовуючи номер телефону, — без цього програма не працює.

6. "Яндекс.Ключ"

Підтримувані платформи: Android, iOS

На мій погляд, за концепцією «Яндекс.Ключ» — це найвдаліше з існуючих програм для двофакторної аутентифікації. З одного боку, воно не вимагає відразу реєструватися — можна почати ним користуватися з тією ж легкістю, як і Google Authenticator. З іншого боку, в ньому є кілька додаткових можливостей, які відкриваються тим, хто не полінується зайти в налаштування.

По-перше, Яндекс.Ключ можна замкнути на PIN-код або відбиток пальця. По-друге, можна створити у хмарі «Яндекса» резервну копію токенів, захищену паролем (а ось на цьому етапі вже доведеться вказати номер телефону), і відновити її на будь-якому з пристроїв, що використовуються. Так само можна буде перенести токени на новий пристрій, коли знадобиться переїжджати.

Виходить, що «Яндекс.Ключ» поєднує в собі простоту Google Authenticator і розширену функціональність Authy — залежно від того, що ви надаєте перевагу. Єдиний недолік програми - не цілком зручний для використання з великою кількістю токенів інтерфейс. і переїзду на нові.
+ Вхід до програми захищений PIN-кодом або відбитком пальця.
+ На екрані відображається код тільки для останнього використаного токена.
+ Замінює постійний пароль до облікового запису «Яндекса».

− При великій кількості токенів не дуже зручно шукати потрібний.
 

«Залізні» автентифікатори FIDO U2F: YubiKey і все-все-все

Якщо програма, що генерує одноразові коди, здається вам занадто ефемерним способом захистити свої акаунти, і хочеться чогось більш постійного, надійного та матеріального — буквально замкнути акаунт на ключ і покласти його в кишеню, — то я маю для вас хорошу новина: такий варіант також існує. Це апаратні токени стандарту U2F (Universal 2nd Factor), створеного FIDO Alliance.

Як працюють токени FIDO U2F

Апаратні U2F-токени дуже сподобалися фахівцям з безпеки — насамперед тому, що з погляду користувача вони працюють дуже просто. Для початку роботи достатньо підключити U2F-токен до вашого пристрою та зареєструвати його у сумісному сервісі, причому робиться це буквально в пару кліків.

Згодом за необхідності підтвердити вхід до цього сервісу потрібно буде підключити U2F-токен до того пристрою, з якого ви входите, і натиснути на токені кнопку (у деяких пристроях — ввести PIN або прикласти палець до сканера). Все — жодних складних налаштувань, введення довгих послідовностей випадкових символів та інших танців з бубном, які зазвичай уявляють собі при згадці слова «криптографія».

При цьому «під капотом» все влаштовано дуже розумно та криптографічно надійно: при реєстрації токена на сервісі створюється пара криптографічних ключів — приватний та публічний. Публічний зберігається на сервері, а приватний зберігається у захищеному сховище Secure Element, яке є серцем U2F-токена, — і цей ключ ніколи не залишає пристрій.

Приватний ключ використовується для зашифрування підтвердження входу, яке передається на сервер і може бути розшифроване за допомогою публічного ключа. Якщо хтось від вашого імені спробує передати підтвердження входу, зашифроване неправильним приватним ключем, то при розшифровці за допомогою відомого сервісу публічного ключа замість підтвердження вийде нісенітниця, і сервіс не пустить його в обліковий запис.

Якими бувають U2F-пристрої

Найвідоміший і найпоширеніший приклад U2F — це «ключі» YubiKey, які виробляє компанія Yubico. Власне, вона стояла біля витоків цього стандарту, але вважала за краще зробити його відкритим, для чого і був створений FIDO Alliance. А оскільки стандарт відкритий, ви не обмежені у виборі: U2F-сумісні пристрої виробляють та продають різні компанії — в онлайн-магазинах можна знайти безліч різноманітних моделей.

Наприклад, Google нещодавно презентувала свій комплект апаратних автентифікаторів Google Titan Security Keys. Насправді це ключі виробництва Feitian Technologies (другий за популярністю виробник U2F-токенів після Yubico), для яких Google написали власну прошивку.

Зрозуміло, всі апаратні автентифікатори, сумісні зі стандартом U2F, будуть з однаковим успіхом працювати з усіма сервісами, які також сумісні з цим стандартом. Однак у різних моделей є кілька важливих відмінностей, і найважливіша з них – це інтерфейси, якими обладнаний ключ. Від цього залежить, з якими пристроями він зможе працювати:

USB— для підключення до комп'ютерів (Windows, Mac або Linux - неважливо, «ключі» працюють без встановлення будь-яких драйверів). Крім звичайного USB-A, бувають «ключі» з USB-C.

NFC — необхідний для використання зі смартфонами та планшетами на Android.

Bluetooth— знадобиться на мобільних пристроях, у яких немає NFC. Наприклад, аутентифікатор з Bluetooth все ще потрібен власникам iPhone: незважаючи на те, що в iOS вже дозволили програмам використовувати NFC (до 2018 року це було дозволено тільки Apple Pay), розробники більшості сумісних з U2F програм ще не скористалися цією можливістю. У Bluetooth-автентифікаторів є пара мінусів: по-перше, їх потрібно заряджати, а по-друге, їхнє підключення займає набагато більше часу.

У базових моделях U2F-токенів зазвичай є лише підтримка власне U2F – такий ключ обійдеться у $10–20. Є пристрої дорожчі ($20–50), які заодно вміють працювати як смарт-картка, генерувати одноразові паролі (у тому числі OATH TOTP і HOTP), генерувати та зберігати ключі PGP-шифрування, можуть використовуватися для входу в Windows, macOS та Linux і так далі.

Що ж вибрати: SMS, додаток або YubiKey?

Універсальної відповіді на це питання не існує — для різних сервісів можна використовувати різні варіанти двофакторної автентифікації у різних поєднаннях. Наприклад, найбільш важливі акаунти (скажімо, вашу основну пошту, до якої прив'язані інші облікові записи) варто захистити по максимуму - замкнути на "залізний" U2F-токен і заборонити будь-які інші опції 2FA. Так можна бути впевненим, що ніхто і ніколи не отримає доступу до облікового запису без цього токена.

Гарний варіант — прив'язати до облікового запису два «ключи», як це робиться з ключами від автомобіля: один завжди із собою, а інший лежить у надійному місці — на випадок, якщо перший загубиться. При цьому «ключі» можуть бути різного типу: скажімо, додаток-автентифікатор на смартфоні як основний та U2F-токен або листочок з одноразовими паролями, що лежить у сейфі, як резервний засіб.

Так чи інакше, головна порада — наскільки можна уникати використання одноразових паролів у SMS. Щоправда, вийде це не завжди: наприклад, фінансові сервіси через свою консервативність продовжують використовувати SMS і вкрай рідко дозволяють користуватися чимось ще.

Інші новини

Найкраща ціна