Google Authenticator — Вікіпедія
Тип | автентифікатор |
---|---|
Розробник | |
Ліцензія | пропрієтарна ліцензія[d][1] |
Google Authenticator (укр. Ґуґл-автентифікатор) — додаток для двохетапної аутентифікації за допомогою Time-based One-time Password Algorithm (TOTP) і HMAC-based One-time Password Algorithm (HOTP) від Google. Сервіс реалізує алгоритми зазначені в RFC 6238 і RFC 4226.[2]
Автентифікатор представляє 6-ти або 8-мизначний одноразовий цифровий пароль, який користувач повинен надати в додаток до імені користувача і пароля, щоб увійти в Google або інших сервісів. Автентифікатор також може генерувати коди для сторонніх додатків, такі як менеджери паролів або послуг хостингу файлів. Попередні версії програми були доступні з відкритим вихідним кодом на GitHub, але останні випуски є приватною власністю Google.[3]
Як правило, користувачі повинні спочатку встановити програму на свій мобільний пристрій. Для того, щоб увійти на сайт або скористатися послугами сервісу, потрібно ввести ім'я користувача та пароль, запустити додаток Authenticator і ввести в спеціальне поле згенерований одноразовий пароль.
Для цього, сайт надає загальний секретний ключ користувачеві, який повинен бути збережений у додаток Google Authenticator. Цей таємний ключ буде використовуватися для всіх майбутніх входів на сайт.
З двох етапною аутентифікацією, просте знання логіна/пароля не є достатнім для злому облікового запису. Зловмисник також повинен знати секретний ключ або мати фізичний доступ до вашого пристрою з Google Authenticator. Альтернативним шляхом є MITM-атака: якщо комп'ютер заражений трояном, ім'я користувача, пароль і одноразовий код можуть бути перехоплені, щоб потім ініціювати свій власний сеанс входу на сайті або відслідковувати та змінювати інформацію між вами та сайтом.
Google Authenticator реалізований для наступних операційних систем: Android,[4] BlackBerry, iOS[5], J2ME.
Постачальник послуг генерує 80-бітний секретний ключ для кожного користувача (хоча RFC 4226 §4 вимагає мінімум 128 біт і рекомендує 160 біт).[6] Це забезпечується як 16, 26, 32 значний код в кодуванні Base32 або за допомогою QR-коду. Клієнт створює HMAC-SHA1 використовуючи цей секретний ключ. Повідомлення HMAC може бути:
- числовим з 30 секундним періодом (TOTP)
- лічильником, який збільшується з кожним новим кодом (HOTP).
Потім частина HMAC витягується і перетворюється в 6-значний код.
function GoogleAuthenticatorCode(string secret) key := base32decode(secret) message := floor(current Unix time / 30) hash := HMAC-SHA1(key, message) offset := last nibble of hash truncatedHash := hash[offset..offset+3] //4 bytes starting at the offset Set the first bit of truncatedHash to zero //remove the most significant bit code := truncatedHash mod 1000000 pad code with 0 until length of code is 6 return code
function GoogleAuthenticatorCode(string secret) key := base32decode(secret) message := counter encoded on 8 bytes hash := HMAC-SHA1(key, message) offset := last nibble of hash truncatedHash := hash[offset..offset+3] //4 bytes starting at the offset Set the first bit of truncatedHash to zero //remove the most significant bit code := truncatedHash mod 1000000 pad code with 0 until length of code is 6 return code
- ↑ https://gitlab.com/fdroid/fdroiddata/commit/978d5782d61c29a809f25a5fc0b67345c17b2827
- ↑ GitHub - google/google-authenticator: Open source version of Google Authenticator (except the Android app). GitHub (EN) . Google. Архів оригіналу за 26 січня 2021. Процитовано 24 серпня 2016.
These implementations support the HMAC-Based One-time Password (HOTP) algorithm specified in RFC 4226 and the Time-based One-time Password (TOTP) algorithm specified in RFC 6238.
- ↑ Willis, Nathan (22 January 2014)."
- ↑ https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 [Архівовано 2 лютого 2021 у Wayback Machine.] A
- ↑ Google Authenticator. App Store. Архів оригіналу за 22 грудня 2015. Процитовано 24 серпня 2016.
- ↑ https://tools.ietf.org/html/c#section-4[недоступне посилання з лютого 2019]