Ілля Зав'яловСловник цифрової безпеки

Другий фактор

Ілля Зав'ялов про OTP, TOTP і passkey: що означають ці слова

Слова OTP, TOTP і passkey стоять поруч у налаштуваннях будь-якого сервісу, і сам сервіс майже ніколи не пояснює різницю між ними. Через це людина вмикає перше, що пропонують, і вважає питання закритим. Кожен із цих механізмів тримає свій тип атаки і спокійно пропускає інший. Тут розібрано, що означає кожне слово і де проходить межа між ними.

Версія українською мовою для України.

Усі терміни / Блог

· 8 хв читання · Ілля Зав'ялов

Ілля Зав'ялов про OTP, TOTP і passkey: що означають ці слова

Другий фактор і що він насправді перевіряє

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

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

Терміни плутаються ще й тому, що інтерфейси називають одну річ трьома способами. Одноразовий код, код підтвердження і код безпеки означають те саме. Passkey у різних сервісах підписують як ключ доступу, вхід без пароля або вхід за біометрією.

OTP: одноразовий код без прив'язки до годинника

OTP розшифровується як одноразовий пароль. Це загальна назва для будь-якого коду, що працює один раз і після використання стає непотрібним. Сервіс створює його на своєму боці, доставляє каналом зв'язку і чекає, поки людина введе цифри назад. У переліку OTP, TOTP і passkey саме OTP залишається найширшим поняттям, а два інші слова стоять від нього на різній відстані.

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

Окремий підвид, HOTP, рахує коди за лічильником подій: кожне натискання зсуває позицію в послідовності. Такий код не має терміну життя і терпляче чекає, поки його введуть. Це зручно для офлайн-пристроїв і незручно там, де лічильники сторін розходяться.

TOTP: код, який рахує час

TOTP це різновид OTP, де замість лічильника подій використано годинник. При підключенні сервіс і застосунок обмінюються спільним секретом, зазвичай через QR-код на екрані. Далі обидві сторони незалежно рахують одне й те саме число із секрету і поточного часу. Саме тому код у застосунку збігається з очікуваннями сервера без жодного обміну повідомленнями.

Стандартне вікно становить тридцять секунд, після чого число змінюється. Доставки тут немає взагалі, отже немає і каналу, який можна перехопити або перевипустити. Це головна практична перевага TOTP над кодом із SMS.

Слабке місце TOTP лежить у голові людини. Код усе одно треба прочитати очима і ввести руками, а отже його можна ввести на підробленій сторінці. Секрет також існує у вигляді рядка або картинки, і його копія в чужих руках дає чужі коди безстроково. Резервне копіювання секрету зручне і одночасно розширює поверхню атаки, тому місце для такої копії обирають свідомо.

Passkey: підпис замість набору цифр

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

Головна властивість тут у прив'язці до адреси сайту. Підпис створюється для конкретного домену, і на домені-двійнику він просто не спрацює. Через це фішингова сторінка втрачає сенс: диктувати нічого, а підписати чужу адресу пристрій відмовиться сам. Коли порівнюють OTP, TOTP і passkey за стійкістю до фішингу, різниця виникає саме в цій точці.

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

Апаратний ключ: окремий предмет, який не копіюється

Апаратний ключ це невеликий пристрій із роз'ємом USB або бездротовим модулем. Усередині живе той самий закритий ключ, і він фізично не покидає корпус. Підтвердження виглядає як дотик пальцем до кнопки, іноді разом із пін-кодом. За логікою це той самий passkey, який живе в окремому предметі замість телефона.

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

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

Підміна сім-карти: чому код із SMS стоїть окремо

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

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

Саме через цей сценарій код із SMS вважають найслабшим серед поширених других факторів. Він залежить від чужої компанії, від її внутрішніх процедур і від людини на іншому кінці лінії. Коли обирають між OTP, TOTP і passkey, номер телефону варто прибирати з ролі ключа першим.

Голос у слухавці і код, який просять назвати

Будь-який код, що його людина здатна вимовити, атакують через розмову. Дзвонить нібито служба безпеки банку або підтримка сервісу і просить назвати цифри, які щойно прийшли. За даними центру IC3 при ФБР за 2025 рік, підроблена технічна підтримка разом із підробкою під державні служби дала понад вісімдесят тисяч звернень і більш ніж 2,9 мільярда доларів втрат. Це та частина статистики, де другий фактор віддають добровільно.

Голос у слухавці перестав бути доказом особи. В експерименті з клонованим голосом люди відрізняли справжній запис від підробки лише у 37,5 відсотка випадків. Клон будується з короткого фрагмента мови, а зразків мови в мережі більше, ніж здається людині. Тому правило звучить просто: код не називають нікому, включно з тим, хто представляється співробітником.

Центр IC3 за 2025 рік прийняв 1 008 597 звернень і зафіксував майже 21 мільярд доларів втрат, на 26 відсотків більше, ніж роком раніше. При цьому за даними Federal Trade Commission у чотирьох зверненнях про імперсонацію з п'яти грошової втрати не було зовсім. Спроб набагато більше, ніж успіхів, і саме вибір другого фактора вирішує, до якої з двох груп потрапить конкретна людина.

Як зібрати словник у робочу схему

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

Резервні коди друкують і кладуть туди ж, де лежать документи. Це єдиний спосіб повернутися в акаунт, коли телефон загублено, а запасного ключа під рукою немає. Скріншот таких кодів у галереї віддає другий фактор першому, хто отримає доступ до телефона.

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

Другий фактор і сценарій, який він витримує
ФакторЩо витримуєДе залишається діра
Код у SMSПідбір пароля і витік базиПідміна сім-карти і прохання назвати код у розмові
Код у листіПідбір пароляЗламана пошта відкриває і код, і відновлення
TOTP у застосункуПідміну сім-карти і перехоплення каналуВведення коду на сторінці-двійнику
Пуш-підтвердженняРучне введення чужого кодуВтома від однакових запитів і випадкове підтвердження
Passkey у телефоніФішинг, бо підпис прив'язаний до доменуДоступ до хмарного акаунта синхронізації
Апаратний ключФішинг і шкідливе ПЗ на пристроїВтрата предмета без зареєстрованого запасного
Резервні кодиВтрату телефона і втрату ключаСкріншот у галереї або нотатка в хмарі

Питання і відповіді

Чим OTP відрізняється від TOTP?
OTP це загальна назва одноразового коду, який сервер створює і доставляє каналом зв'язку. TOTP це різновид OTP, де код рахують локально зі спільного секрету і поточного часу, тому доставки немає взагалі.
Що вибрати, якщо сервіс пропонує OTP, TOTP і passkey?
Спершу passkey або апаратний ключ, якщо сервіс їх підтримує. Далі TOTP у застосунку, а код у SMS залишають лише там, де інших варіантів немає.
Що таке passkey простими словами?
Це пара ключів, де закритий залишається в пристрої, а відкритий зберігає сервіс. Вхід відбувається підписом запиту, тому диктувати або вводити цифри не доводиться.
Чи рятує TOTP від підміни сім-карти?
Так, бо код рахується всередині застосунку і номер телефону в цьому не бере участі. Проте TOTP залишається вразливим до введення коду на підробленій сторінці.
Що робити, якщо телефон раптово втратив мережу?
Це типова ознака перевипуску номера на чужу картку. Треба зателефонувати оператору з іншого телефона і паралельно змінити паролі до пошти та банку.
Навіщо апаратний ключ, якщо passkey уже є в телефоні?
Апаратний ключ тримає закритий ключ у власному корпусі, тому шкідливе ПЗ на телефоні до нього не дістається. Для акаунтів із грошима і доступом до інфраструктури це відчутна різниця.

Автор: Ілля Зав'ялов, консультант з цифрової безпеки. Усі терміни словника