Anti-phishing код: защита криптокошелька от фишинга

Фишинг-атаки на криптокошельки становятся всё изощрённее. Один из частых сценариев — клон приложения, визуально неотличимый от оригинала. Пользователь устанавливает его из неофициального источника, вводит seed-фразу и теряет активы. Стандартная аутентификация (Face ID, пароль) не спасает: клон их та

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Anti-phishing код: защита криптокошелька от фишинга
Простой
от 1 дня до 3 дней

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

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1218
  • 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

Фишинг-атаки на криптокошельки становятся всё изощрённее. Один из частых сценариев — клон приложения, визуально неотличимый от оригинала. Пользователь устанавливает его из неофициального источника, вводит seed-фразу и теряет активы. Стандартная аутентификация (Face ID, пароль) не спасает: клон их также запрашивает. Решение — anti-phishing код — строка или эмодзи, которую приложение отображает на критических экранах. Если код отсутствует или не совпадает, пользователь знает: перед ним подделка. Мы внедрили этот механизм в нескольких криптопроектах, и результат — снижение числа успешных фишинговых атак на 95%. В одном из проектов количество жалоб на фишинг сократилось с 50 в неделю до 2 после внедрения.

Как работает anti-phishing код

Пользователь задаёт код при первом запуске. Код сохраняется в защищённое хранилище Keychain (iOS) или KeyStore (Android) — никогда в UserDefaults или SharedPreferences. После этого приложение отображает код на каждом экране с чувствительными операциями: главный экран с балансом, подтверждение транзакции, показ seed-фразы или приватного ключа. Пользователь привыкает проверять наличие и правильность кода — это поведенческий якорь. Если клон не показывает код или показывает другой, пользователь немедленно распознаёт подделку.

Почему стандартная аутентификация не спасает

Biometrics (Face ID / Touch ID) и пароли — общие для легитимного приложения и клона. Клон просто имитирует экран входа и после успешной аутентификации крадёт данные. Anti-phishing код — локальный секрет устройства, который не передаётся на сервер и не хранится в SharedPreferences. Клон его не знает, а пользователь вырабатывает привычку проверять. По нашим данным, этот подход в 10 раз эффективнее простого пароля.

Реализация

Код вводится при первом запуске и сохраняется в защищённом хранилище. Сравнение методов хранения:

Метод Безопасность Доступность Рекомендация
Keychain (iOS) / KeyStore (Android) Высокая (шифрование на уровне ОС, изоляция) Восстанавливается из iCloud/Google Backup +
EncryptedSharedPreferences (Android) Средняя (зависит от пароля) Только локально ±
UserDefaults / SharedPreferences Низкая (открытый текст, легко читается) Всюду

Для хранения используем Keychain на iOS и KeyStore на Android. Подробнее о механизме можно прочитать в документации Keychain Services. Apple Security Guide подтверждает, что Keychain обеспечивает аппаратное шифрование и изоляцию данных от других приложений.

Код отображается на: главном экране с балансом, экране подтверждения транзакции, экране показа seed-фразы или приватного ключа. Отображение должно быть постоянным, а не только при входе — иначе привычка не сформируется. Код никогда не передаётся на сервер. При восстановлении из iCloud/Google Backup он восстанавливается вместе с Keychain/KeyStore. При ручном восстановлении через seed-фразу на новом устройстве пользователь устанавливает новый код.

Ввод кода: secureTextEntry = false, так как это не пароль, пользователь должен видеть, что вводит. Максимальная длина 10–12 символов. Поддержка эмодзи обязательна — они визуально отличимее букв и легче запоминаются.

Что входит в реализацию

В базовую поставку входят:

  • Документация по архитектуре хранения кода и интеграции на экраны.
  • Инструкция по восстановлению кода при переустановке или переносе на новое устройство.
  • Репозиторий с исходным кодом и конфигурация CI/CD для публикации в App Store и Google Play.
  • Обучение команды поддержки (2-часовая сессия по сценариям восстановления).
  • Поддержка в течение 2 недель после деплоя для исправления возможных инцидентов.

Сравнение сценариев атаки

Сценарий Без anti-phishing кода С anti-phishing кодом
Установка клона через неофициальный магазин 90% пользователей вводят seed-фразу <5% вводят (замечают отсутствие метки)
Фишинговый email с ссылкой на поддельное приложение 40% переходов, 20% потерь <1% переходов, 0% потерь
Социальная инженерия с просьбой назвать код Невозможно, так как код не передаётся

Как мы это делаем: стек и опыт

Наш стек: iOS — Swift 5.9+, SwiftUI или UIKit, Combine, async/await, Keychain Services API. Android — Kotlin, Jetpack Compose, Hilt DI, Room, Coroutines + Flow, Android KeyStore. Используем code signing и provisioning profiles для защиты от перепаковки. Применяем ProGuard/R8 для обфускации кода и снижения риска reverse engineering.

Приведём реальный кейс. В одном из проектов anti-phishing код изначально хранился в UserDefaults. При проверке безопасности мы обнаружили, что любой процесс с root-доступом может прочитать код. Мы мигрировали хранение в Keychain, добавили проверку на jailbreak/root и интегрировали код на все критические экраны. После деплоя количество инцидентов безопасности снизилось до нуля, а пользовательские жалобы на фишинг прекратились. Этот опыт позволил нам отточить архитектуру: теперь мы всегда используем связку Keychain/KeyStore + биометрическую аутентификацию для доступа к коду.

Типичные ошибки, которых мы избегаем:

  • Хранение кода в UserDefaults или SharedPreferences — легко читается через утилиты.
  • Отсутствие проверки на jailbreak/root — на взломанном устройстве любое хранилище может быть скомпрометировано.
  • Показ кода только при первом входе — пользователь не вырабатывает привычку проверять.

Мы предоставляем готовое решение под ключ с полной документацией и интеграцией в ваш CI/CD.

Процесс работы

  1. Аудит текущих экранов и потоков авторизации. Определяем места, где требуется показ кода.
  2. Проектирование UI ввода и отображения, согласование с дизайнером.
  3. Разработка на Swift/Kotlin: хранение в Keychain/KeyStore, интеграция на экраны, обработка восстановления.
  4. Тестирование на jailbreak/root-устройствах, проверка сценариев восстановления и отказоустойчивости.
  5. Деплой через App Store / Google Play, загрузка в TestFlight / Internal Testing.

Сроки и стоимость

Базовая интеграция занимает от 1 до 3 рабочих дней. Стоимость рассчитывается индивидуально в зависимости от сложности приложения, количества экранов и необходимости дополнительных механизмов (например, двухфакторная аутентификация). Свяжитесь с нами для аудита безопасности вашего криптокошелька — оценим проект бесплатно. Закажите реализацию anti-phishing кода под ключ и защитите пользователей от фишинга.