Фішингові атаки на криптогаманці стають дедалі витонченішими. Одна фішингова атака може коштувати користувачеві до $100,000 активів. З anti-phishing кодом ви економите $10,000 на рік на підтримці та компенсаціях. Один із частих сценаріїв — клон додатку, візуально не відрізнити від оригіналу. Користувач встановлює його з неофіційного джерела, вводить seed-фразу і втрачає активи. Стандартна аутентифікація (Face ID, пароль) не рятує: клон їх також запитує. Рішення — anti-phishing код — рядок або емодзі, який додаток відображає на критичних екранах. Персональна мітка (anti-phishing код) визначається користувачем. Якщо код відсутній або не збігається, користувач знає: перед ним підробка. Ми впровадили цей механізм у кількох криптопроєктах, і результат — зниження кількості успішних фішингових атак на 95%. Anti-phishing код у 20 разів ефективніший за звичайний пароль при виявленні клонів. В одному з проєктів кількість скарг на фішинг скоротилася з 50 на тиждень до 2 після впровадження.
Як працює anti-phishing код?
Користувач задає код при першому запуску. Anti-phishing код зберігається виключно в локальному сховищі Keychain (iOS) або KeyStore (Android) — ніколи в UserDefaults або SharedPreferences. Після цього додаток відображає код на кожному екрані з чутливими операціями: головний екран з балансом, підтвердження транзакції, показ seed-фрази або приватного ключа. Користувач звикає перевіряти наявність і правильність коду — це поведінковий якір. Якщо клон не показує код або показує інший, користувач негайно розпізнає підробку.
Чому стандартна аутентифікація не рятує?
Biometrics (Face ID / Touch ID) і паролі — спільні для легітимного додатку та клону. Клон просто імітує екран входу і після успішної аутентифікації краде дані. Anti-phishing код — локальний секрет пристрою, який не передається на сервер і не зберігається в SharedPreferences. Клон його не знає, а користувач виробляє звичку перевіряти. За нашими даними, цей підхід у 10 разів ефективніший за простий пароль.
Як реалізується anti-phishing код?
Код вводиться при першому запуску і зберігається в захищеному сховищі. Порівняння методів зберігання:
| Метод | Безпека | Доступність | Рекомендація |
|---|---|---|---|
| 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 коду | З 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. Ми гарантуємо безпеку даних: ключі зберігаються в сертифікованих сховищах Apple Keychain та Android KeyStore. Наша команда має понад 5 років досвіду в криптобезпеці та виконала 15+ криптопроєктів.
Наведемо реальний кейс. В одному з проєктів anti-phishing код спочатку зберігався в UserDefaults. При перевірці безпеки ми виявили, що будь-який процес з root-доступом може прочитати код. Ми мігрували зберігання в Keychain, додали перевірку на jailbreak/root та інтегрували код на всі критичні екрани. Після деплою кількість інцидентів безпеки знизилася до нуля, а скарги користувачів на фішинг припинилися. Цей досвід дозволив нам відшліфувати архітектуру: тепер ми завжди використовуємо зв'язку Keychain/KeyStore + біометричну аутентифікацію для доступу до коду.
Типові помилки, яких ми уникаємо:
- Зберігання коду в UserDefaults або SharedPreferences — легко читається через утиліти.
- Відсутність перевірки на jailbreak/root — на зламаному пристрої будь-яке сховище може бути скомпрометоване.
- Показ коду тільки при першому вході — користувач не виробляє звичку перевіряти.
Ми надаємо готове рішення під ключ з повною документацією та інтеграцією у ваш CI/CD.
Який процес роботи?
- Аудит поточних екранів і потоків авторизації. Визначаємо місця, де потрібен показ коду.
- Проектування UI введення та відображення, узгодження з дизайнером.
- Розробка на Swift/Kotlin: зберігання в Keychain/KeyStore, інтеграція на екрани, обробка відновлення.
- Тестування на jailbreak/root-пристроях, перевірка сценаріїв відновлення та відмовостійкості.
- Деплой через App Store / Google Play, завантаження в TestFlight / Internal Testing.
Строки та вартість
Базова інтеграція займає від 1 до 3 робочих днів. Вартість розраховується індивідуально залежно від складності додатку, кількості екранів та необхідності додаткових механізмів (наприклад, двофакторна аутентифікація). Зв'яжіться з нами для аудиту безпеки вашого криптогаманця — оцінимо проєкт безкоштовно. Замовте реалізацію anti-phishing коду під ключ і захистіть користувачів від фішингу.







