Google Authenticator: як працюють його коди 2FA
Приблизно кожні 30 секунд коротке число на вашому телефоні змінюється, а сайт, якому ви ніколи не показували цей телефон, якимось чином знає, яким має бути нове число. Це схоже на магію, але насправді це простий трюк зі спільним секретом.
Так працює Google Authenticator та подібні застосунки. Ось як генеруються коди, чому вони працюють без підключення до інтернету, як застосунок пов’язаний із власною Двоетапною перевіркою Google, а також від чого він може й не може захистити.
Як генеруються коди
Коли ви додаєте обліковий запис до застосунку-автентифікатора, сервіс надає вам секрет — зазвичай у вигляді QR-коду або ключа налаштування, — і застосунок зберігає його. Відтоді сервіс і ваш телефон мають один і той самий секрет. Щоб створити код, застосунок поєднує цей секрет із поточним часом, а сервіс виконує такий самий розрахунок зі свого боку. Якщо результати збігаються, код приймається.
Цей метод — опублікований стандарт під назвою TOTP, скорочено від англійського time-based one-time password (одноразовий пароль на основі часу), визначений у документі IETF RFC 6238. Він ґрунтується на давнішому методі з лічильником, замінюючи лічильник значенням, отриманим на основі часу. Стандарт передбачає, що застосунок і сервіс мають використовувати однаковий часовий інтервал, і рекомендує типове значення 30 секунд. Саме тому код зазвичай оновлюється приблизно двічі на хвилину.
Чому це працює без підключення до інтернету
Код обчислюється на вашому телефоні на основі збереженого секрету та його годинника, тож надсилати щось на телефон не потрібно. У власному описі застосунку Google зазначає, що коди можна генерувати навіть без підключення до мережі чи мобільного зв’язку. Сервісу потрібно лише виконати той самий розрахунок, коли ви вводите код.
Отже, час має значення. Якщо час на вашому телефоні суттєво відрізняється від реального, результати розрахунків не збігатимуться, і код буде відхилено, навіть якщо застосунок працює належним чином.
Як це пов’язано з Двоетапною перевіркою Google
Ці поняття легко сплутати. Двоетапна перевірка — це функція облікового запису Google, яка запитує другий крок під час входу. Google Authenticator — це застосунок, який може забезпечити цей крок і, за словами Google, також генерувати коди для інших сайтів і застосунків, що підтримують перевірку за допомогою застосунку-автентифікатора. Кілька інших застосунків-автентифікаторів використовують той самий стандарт, тому самі коди не прив’язані до однієї компанії.
Ви можете користуватися застосунком як з обліковим записом Google, так і без нього. Вхід до облікового запису дає змогу синхронізувати коди на різних пристроях, а Google зазначає, що без облікового запису їх усе одно можна вручну перенести на новий пристрій. Синхронізовані коди залежать від цього облікового запису Google, тому його захист стає ще важливішим. Google також радить налаштувати додаткові способи Двоетапної перевірки, щоб ви не втратили доступ до свого облікового запису.
Від чого це захищає, а від чого — ні
За даними CISA, коди із застосунку-автентифікатора надійніші за текстові повідомлення, але все одно вразливі до фішингу. Переконлива підроблена сторінка входу може перехопити код, коли ви його вводите, і негайно використати його. Від цього здатні захистити лише методи на основі FIDO, як-от ключі безпеки та ключі доступу. Перевірка адреси сайту перед введенням коду — частина захисту.
Секрет, на якому ґрунтуються ваші коди, також є конфіденційним. Будь-хто, хто має QR-код або ключ налаштування, може генерувати такі самі коди, тому до його знімка екрана слід ставитися як до пароля. Застосунок-автентифікатор захищає облікові записи, у які ви входите через певний сервіс. Він не може захистити seed-фразу чи приватний ключ гаманця.
Нагадування від WEEX: ставтеся до ключа налаштування як до пароля
WEEX нагадує користувачам ніколи й нікому не повідомляти одноразовий код, QR-код або ключ налаштування, зокрема людям, які представляються службою підтримки: справжньому сервісу вони ніколи не потрібні. Перевіряйте адресу сайту перед введенням коду, а будь-який резервний ключ чи резервні коди зберігайте в безпечному місці офлайн — не у вигляді знімка екрана чи нотатки в хмарному сховищі. Цей матеріал не є фінансовою порадою.
Висновок
Google Authenticator генерує короткочасний код на основі секрету, спільного із сервісом, і поточного часу. Саме тому застосунок працює офлайн і саме тому важливий годинник. Це один із кількох застосунків, що використовують той самий стандарт. Він надійніший за текстові повідомлення, але все ще вразливий до фішингу, а секрет налаштування потребує такого самого захисту, як пароль. У поєднанні з надійними паролями та обережною поведінкою він ускладнює зловмисникам захоплення облікового запису.
Поширені запитання
1. Що таке Google Authenticator?
Це застосунок, який генерує одноразові коди для другого кроку під час входу в облікові записи Google, а також на інші сайти й у застосунки, що підтримують перевірку за допомогою застосунку-автентифікатора.
2. Як Google Authenticator генерує коди без інтернету?
Він обчислює їх на вашому телефоні на основі збереженого секрету та поточного часу. Сервіс виконує такий самий розрахунок, щоб перевірити код, тож надсилати щось на телефон не потрібно.
3. Чи потрібен обліковий запис Google, щоб користуватися Google Authenticator?
Ні. Google зазначає, що застосунком можна користуватися без облікового запису. Вхід дає змогу синхронізувати коди на різних пристроях, а без облікового запису їх можна вручну перенести на новий пристрій.
4. Google Authenticator — це те саме, що Двоетапна перевірка Google?
Ні. Двоетапна перевірка — це функція облікового запису Google, а застосунок — один зі способів виконати другий крок. Він також працює з іншими сайтами, які підтримують коди із застосунків-автентифікаторів.
5. Чи безпечніший Google Authenticator за коди із SMS?
За даними CISA, коди із застосунків-автентифікаторів надійніші за текстові повідомлення, але їх усе ще можна викрасти за допомогою фішингу. Ключі безпеки та ключі доступу забезпечують надійніший захист від фішингу.