Реализация anti-phishing кода в мобильном криптоприложении
Anti-phishing код — персонализированная метка, которую пользователь устанавливает сам и которую приложение показывает на каждом экране с чувствительными операциями. Если код не совпадает с тем, что ожидает пользователь — он знает, что это подделка. Простая механика, но реализовать правильно чуть сложнее, чем кажется.
Что именно защищает
Сценарий атаки: злоумышленник делает клон вашего приложения, выкладывает в неофициальный магазин. Визуально — один в один. Пользователь устанавливает, вводит seed-фразу — ключи скомпрометированы. Anti-phishing код — уникальная строка (обычно 4–8 символов или эмодзи), которую клон не знает и не может показать правильно. Пользователь привыкает видеть, например, «🦊🌙» рядом с балансом и сразу замечает подделку.
Реализация
Код вводится при первом запуске и сохраняется в Keychain / KeyStore — не в UserDefaults / SharedPreferences. Показывается на:
- главном экране рядом с балансом
- экране подтверждения транзакции
- экране показа seed-фразы / приватного ключа
Показывать нужно всегда, не только при первом входе. Пользователь должен выработать привычку проверять его.
Код не должен передаваться на сервер — это локальный секрет устройства. Если приложение восстанавливается через iCloud Backup — код восстанавливается вместе с Keychain. При ручном восстановлении через seed-фразу на новом устройстве — пользователь устанавливает новый код.
Ввод кода — secureTextEntry = false (это не пароль, пользователь должен видеть что вводит), но максимальная длина 10–12 символов. Поддержка эмодзи желательна — они визуально отличимее букв.
Сроки — 1–3 дня: UI ввода и отображения, хранение в защищённом хранилище, интеграция на нужные экраны, обработка восстановления.







