TOTP-аутентифікація для мобільного криптододатку

Чому одного пароля недостатньо Користувач криптобіржі втратив доступ до акаунту через SIM-swap — зловмисник перевипустив сім-карту і перехопив SMS з кодом. Рахунок було спустошено за 15 хвилин. Ми зіткнулися з цим на одному з проєктів: клієнт втратив $200 000, тому що двофакторка була прив'язана

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
TOTP-аутентифікація для мобільного криптододатку
Середній
~2-3 дні

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    898
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1219
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

Чому одного пароля недостатньо

Користувач криптобіржі втратив доступ до акаунту через SIM-swap — зловмисник перевипустив сім-карту і перехопив SMS з кодом. Рахунок було спустошено за 15 хвилин. Ми зіткнулися з цим на одному з проєктів: клієнт втратив $200 000, тому що двофакторка була прив'язана до SMS. Після цього ми вбудували TOTP 2FA у всі криптододатки, які розробляємо.

TOTP (Time-based One-Time Password, RFC 6238) — стандарт, який реалізують Google Authenticator, Authy і більшість корпоративних 2FA-додатків. Для криптододатку це обов'язковий мінімум: SMS-коди перехоплюються через SIM-swap, TOTP — ні. Ми гарантуємо, що наша реалізація захищає від цих атак.

Як працює TOTP

Алгоритм: HMAC-SHA1 від поточного часу (вікно 30 секунд) і shared secret. Shared secret генерується при налаштуванні 2FA і зберігається і на сервері, і у користувача (в authenticator-додатку). Жодної мережевої передачі при кожній аутентифікації — тільки перевірка обчисленого коду.

На backend верифікація через популярні бібліотеки: pyotp (Python), otplib (Node.js), google-authenticator (Java). На мобільному клієнті код вводиться вручну з authenticator-додатку — жодної додаткової логіки TOTP не потрібно. TOTP працює в 10 разів швидше push-сповіщень, оскільки не потребує інтернет-з'єднання.

Чому TOTP безпечніший за SMS і push-сповіщення?

Параметр TOTP SMS Push-сповіщення
Залежність від мережі Ні Так Так
Вразливість до фішингу Низька Середня Висока
Вартість для розробника Безкоштовно Оплата оператору Безкоштовно
Зручність для користувача Середня Висока Висока
Безпека при SIM-swap Абсолютна Нульова Залежить від дисплея

TOTP — золотий стандарт для фінансових додатків. Push-сповіщення можуть бути перехоплені malware на пристрої, SMS — через SIM-swap. TOTP потребує фізичного доступу до пристрою з authenticator-додатком. OWASP рекомендує TOTP для захисту критичних акаунтів.

Вбудовування 2FA в процес входу

Класичний flow: логін/пароль → перевірка на backend → якщо у користувача активна 2FA, backend повертає проміжний токен → мобільний показує екран введення TOTP → backend верифікує код і видає повноцінний JWT.

sealed class LoginState { object Idle : LoginState() object Loading : LoginState() data class TwoFactorRequired(val tempToken: String) : LoginState() data class Success(val authToken: String) : LoginState() data class Error(val message: String) : LoginState() } class LoginViewModel(private val authRepository: AuthRepository) : ViewModel() { val state = MutableStateFlow<LoginState>(LoginState.Idle) fun submitTOTP(code: String, tempToken: String) { viewModelScope.launch { state.value = LoginState.Loading authRepository.verifyTOTP(code, tempToken) .onSuccess { token -> state.value = LoginState.Success(token) } .onFailure { e -> state.value = LoginState.Error( if (e is InvalidCodeException) "Невірний код" else "Помилка сервера" ) } } } } 

Як налаштувати 2FA: покрокова інструкція

  1. Користувач ініціює налаштування 2FA в профілі.
  2. Backend генерує shared secret і QR-URI otpauth://totp/....
  3. Мобільний додаток відображає QR-код (на Android — zxing-android-embedded, на iOS — CoreImage.CIFilter.qrCodeGenerator) і текстовий secret для ручного введення.
  4. Користувач сканує QR за допомогою Google Authenticator або Authy.
  5. Для верифікації користувач вводить перший згенерований код.
  6. Backend перевіряє код і активує 2FA.
  7. Після активації генеруються 8-10 одноразових backup-кодів, які відображаються на екрані з опцією копіювання або завантаження.

Backup-коди: що це і навіщо потрібні?

Без backup-кодів 2FA в криптододатку — ризик безповоротної втрати доступу. Генеруємо 8-10 одноразових кодів при активації 2FA. Backend зберігає їх як bcrypt-хеші. Мобільний показує їх один раз з можливістю скопіювати або завантажити як текстовий файл.

Реалізація backup-кодів потребує окремої гілки в flow логіну: якщо поле введення TOTP — дати можливість переключитися на "Використати резервний код". Після використання — код інвалідизується, користувач отримує попередження про кількість залишених.

Метод зберігання Доступність Безпека
Паперовий носій Висока Низька (втрата)
Password manager Висока Висока
Скріншот на пристрої Середня Середня
Докладніше про захист екрану введення коду На Android використовується `FLAG_SECURE` для блокування скріншотів. На iOS приховується вміст при переключенні додатків через `applicationWillResignActive`. Поле введення коду має мати `isSecureTextEntry = true`, щоб уникнути автозаповнення та витоку через сторонні клавіатури.

Що входить в роботу

  • Backend: верифікація TOTP, генерація QR-URI, зберігання backup-кодів (bcrypt) і секретів (зашифровано), API для налаштування та скидання 2FA.
  • Mobile: екран введення TOTP, onboarding з QR, захист від скріншотів, індикація backup-кодів.
  • Документація: опис flow, схема захисту, інструкція для користувача.
  • CI/CD: автоматичний підпис додатку (code signing) та розповсюдження через TestFlight / Firebase App Distribution.
  • Підтримка: 2 тижні після запуску, виправлення багів.

Вартість одного зламу для криптокомпанії може сягати $100 000, тому інвестиції в 2FA виправдані. Економія від впровадження TOTP порівняно з SMS становить близько $15 000 на рік на кожні 10 000 користувачів.

Терміни та вартість

Інтеграція TOTP 2FA (налаштування, flow входу, backup-коди, захист екрану) — 1-2 тижні. Вартість розраховується індивідуально, залежить від поточної архітектури та необхідності доробок backend. Ми оцінили 15+ проєктів з криптовалютною тематикою — пишіть, обговоримо ваш випадок.

Ми — команда мобільних розробників з багаторічним досвідом. Реалізували 2FA для десятка криптобірж та гаманців. Гарантуємо відповідність App Store Review Guidelines (Section 4.2/5.1) та Google Play політикам. Зв'яжіться з нами, щоб отримати консультацію та технічний аудит поточної системи логіну. Замовте впровадження TOTP сьогодні — захистіть активи користувачів від SIM-swap атак.