Przejdź do treści
SENDLY by ACTIOSENDLY by ACTIO
Blog
Туторіал11 хв·

Впровадження 2FA через SMS: повний посібник із безпеки для бізнесу

SMS як другий фактор входу має перевагу над застосунками-автентифікаторами й push: воно завжди доходить, на будь-який телефон, без встановлення й без акаунта в окремому застосунку. Для більшості SaaS-, банківських та e-commerce-додатків це оптимальний компроміс між безпекою й охопленням. Цей посібник показує, як впровадити SMS-2FA безпечно й стійко до зловживань.

Коли SMS-2FA доречне (а коли ні)

SMS підходить як 2FA скрізь, де важливі охоплення й простота: вхід у панель, підтвердження платежу (PSD2 SCA), верифікація номера під час реєстрації, авторизація чутливих операцій. Це також найкращий запасний варіант, коли push не доходить.

Чесно про межі: для акаунтів найвищого ризику варто розглянути апаратні ключі чи TOTP, бо SMS теоретично вразливе до SIM-swap. Але для 95% бізнес-застосунків SMS залишається найкращим балансом безпеки й конверсії.

Архітектура: не тримайте логіку OTP у себе

Найпоширеніша помилка – генерувати й зберігати коди у власній базі: зайвий ризик. З нашим 2FA API ви робите це двома викликами:

POST /otp/send    → генерує й надсилає код
POST /otp/verify  → перевіряє код, повертає true/false

Довжину коду (4, 6 чи 8 цифр) і час життя (від 30 секунд до 10 хвилин) налаштовуєте самі. 6 цифр і 5 хвилин – розумний стандарт.

Rate-limiting і захист від зловживань

Без лімітів 2FA стає вектором атаки – і дорогим, бо кожна SMS коштує грошей. Застосуйте багатошаровий захист:

  • Ліміт на номер – максимум 3–5 кодів на годину на номер (захист від «SMS-бомбінгу»).
  • Cooldown – щонайменше 30–60 секунд між запитами коду.
  • Ліміт спроб перевірки – блокування після 3–5 хибних кодів проти brute-force.
  • Ліміт на IP – обмежте кількість номерів з однієї адреси.

Наш API має вбудований rate-limiting на номер і повний журнал аудиту кожного OTP.

Доставка = безпека

Код, що не доходить, означає заблокованого користувача – на практиці покинутий кошик або тікет у підтримку. Медіанний час доставки SMS у Польщі – близько 2 секунд. Ключова якість маршруту: failover на альтернативного оператора рятує ситуацію, коли перша спроба не вдалася. Як зареєстрований у UKE польський оператор, ми маємо прямі підключення до національних мереж.

UX коду: дрібниці з ефектом

Безпека не повинна вбивати зручність. Перевірене: назва сервісу й код ближче до початку повідомлення (автозаповнення iOS/Android його зчитує); префікс @domain #code для Web OTP API; не змішуйте посилання й код в одній SMS (це привчає до фішингу). Установіть поле відправника на назву бренду – дивіться наш матеріал про Sender ID.

Відповідність PSD2 та GDPR

У платежах SMS-OTP – прийнятний елемент посиленої автентифікації клієнта (SCA), у поєднанні з фактором знання (пароль/PIN) для повної відповідності PSD2. Щодо даних: ми обробляємо номери лише на серверах ЄС, з повним DPA, і зберігаємо логи стільки, скільки вимагає закон. Деталі інтеграції в документації, тестовий акаунт зі 100 безкоштовними SMS – на сторінці реєстрації.

FAQ

Чи маю я сам генерувати й зберігати OTP-коди?+

Ні. /otp/send генерує й надсилає код, /otp/verify його перевіряє. Жодної логіки чи кодів на вашому боці.

Як захиститися від флуду (SMS-бомбінгу)?+

API має rate-limiting на номер (напр. 3–5 кодів/годину) і журнал аудиту. Додайте cooldown, ліміт хибних спроб і ліміт на IP.

Чи відповідає SMS-2FA вимогам PSD2 SCA?+

Так. SMS-OTP – прийнятний елемент «володіння» посиленої автентифікації. Поєднайте його з фактором знання (пароль).

Чи безпечне SMS-2FA попри ризик SIM-swap?+

Для більшості бізнес-застосунків так – найкращий баланс безпеки й конверсії. Для екстремального ризику додайте TOTP чи апаратні ключі.

Czytaj dalej

Почніть надсилати SMS вже сьогодні.

100 повідомлень безкоштовно. Без кредитної картки. Без абонплати. Активація за 30 секунд.