Безпека пристрою
Дізнайтеся, як Tapaya Accept SDK захищає транзакції за допомогою перевірок цілісності пристрою та захисту даних, а також як інтегрувати й розгорнути його в конфігурації, готовій до робочого середовища.
Tapaya Accept SDK перетворює звичайні споживчі пристрої (COTS, consumer off-the-shelf) на захищені платіжні термінали. Оскільки ці пристрої не є спеціалізованим платіжним обладнанням, SDK застосовує суворі заходи безпеки, щоб знизити загрози й забезпечити відповідність стандартам PCI.
Атестація пристрою
Щоб платіжне середовище було безпечним, SDK безперервно перевіряє стан хост-пристрою. Якщо виявлено будь-яке порушення безпеки, SDK відмовиться ініціалізуватися або обробляти транзакції.
Виявлення root-доступу та jailbreak
SDK відстежує в середовищі ознаки підвищення привілеїв. Це включає виявлення двійкових файлів root або фреймворків керування привілеями, як-от Magisk або SuperSU. Також SDK перевіряє наявність несанкціонованого доступу на читання або запис до захищених системних каталогів. Крім того, він розпізнає нестандартні збірки операційної системи, зокрема кастомні ROM або змінені підписи ядра.
Виявлення налагодження
Щоб запобігти зворотній розробці та несанкціонованому тестуванню, SDK виявляє, чи під'єднано до застосунку налагоджувач, і перевіряє, що він працює на фізичному пристрої. Виконання в емуляторі або віртуальному середовищі обмежено.
Google Play Integrity API
На Android SDK використовує Play Integrity API, щоб перевірити, що двійковий образ пристрою розпізнається Google і не зазнав втручання.
Безпека застосунку
Обфускація коду
Tapaya Accept SDK використовує розвинені техніки обфускації, щоб знизити ризик зворотної розробки. Символи коду перейменовуються на неінформативні ідентифікатори, логіка програми навмисно заплутується, а чутливі рядки або вбудовані ключі шифруються.
Захист від втручання
SDK перевіряє власну цілісність під час виконання. Він перевіряє цифровий підпис застосунку та бібліотек SDK. Якщо APK було змінено або перепаковано третьою стороною, SDK не запуститься.
Захист даних
Наскрізне шифрування (E2EE)
Дані картки шифруються одразу після зчитування з NFC-контролера. Використовується надійне шифрування за галузевими стандартами, а ключі дешифрування зберігаються лише в захищених HSM. Мобільний пристрій ніколи не має доступу до незашифрованих даних картки.
Захищене введення
Для транзакцій із PIN SDK забезпечує захищене введення. Екран введення PIN захищено від атак із накладанням вікон (overlay), розкладка клавіатури випадкова, а для всіх дотиків перевіряється, що вони надходять із фізичного пристрою.
Моніторинг середовища
Запобігання запису екрана
Для захисту чутливих даних SDK блокує знімки екрана, запис екрана та демонстрацію екрана, примусово застосовуючи на пристрої засоби захищеного відображення.
Спеціальні можливості
Шкідливі застосунки часто зловживають службами спеціальних можливостей (Accessibility Services), щоб зчитувати вміст екрана або імітувати введення. SDK виявляє активні служби спеціальних можливостей. Він дозволяє стандартні служби для користувачів із порушеннями зору (як-от TalkBack), але може блокувати невідомі або підозрілі служби під час процесу оплати.
Атестація та моніторинг у вашому застосунку
Атестація та моніторинг не є компонентом, який ви встановлюєте. Вони постачаються в складі Tapaya Accept SDK і в складі
застосунку-плагіна Tapaya Terminal, запускаються з Accept.initialize() і працюють увесь час, поки SDK активний.
Немає жодного прапорця конфігурації, жодної можливості відмовитися і жодного режиму, який би їх послаблював.
Обидві частини мають пройти перевірку незалежно одна від одної. Ваш застосунок містить SDK, а SDK передає кожен платіж карткою застосунку Tapaya Terminal, який проходить атестацію окремо. Пристрій, який відповідає вимогам однієї частини, але не іншої, не може приймати платежі.
Інтеграція атестації у ваш застосунок
| Обов'язок | Як це виглядає в коді |
|---|---|
| Ініціалізуйте один раз і на ранньому етапі | Accept.initialize(context, isProduction = true) у вашому класі Application. |
| Вказуйте реальне середовище | isProduction залежить від типу збірки і ніколи не є значенням, прописаним у коді для зручності. |
| Тримайте Tapaya Terminal встановленим і активованим | Перед прийомом платежу перевірте Accept.plugin.isInstalled(), а потім викличте Accept.plugin.activateTerminal(). |
| Вважайте відмову остаточною | Повідомте про неї мерчанта і зупиніться. Не повторюйте спробу і не переходьте на інший шлях у коді. |
Повний API, що стоїть за кожним із цих пунктів, описано в розділі Інтеграція мобільного SDK.
Розгортання в конфігурації, готовій до робочого середовища
Збірка для робочого середовища не повинна підтримувати налагодження, не повинна вести журнали і не повинна послаблювати захист передавання даних. SDK здебільшого забезпечує це сам: збірка з можливістю налагодження або під'єднаний налагоджувач повністю блокують його ініціалізацію.
| Параметр | Розробка | Робоче середовище |
|---|---|---|
android:debuggable | true | false |
Accept.initialize(isProduction = …) | false | true |
Accept.setDebugLoggingEnabled(…) | true | false |
| Ключ підпису | налагоджувальне сховище ключів (debug keystore) | релізне сховище ключів (release keystore) |
| R8 / ProGuard | вимкнено | увімкнено, consumer-правила SDK збережено без змін |
| Конфігурація мережевої безпеки | може довіряти встановленим користувачем центрам сертифікації | без довіри до користувацьких центрів сертифікації, без обходу pinning |
| Налагодження через USB на пристрої | увімкнено | вимкнено |
Керуйте середовищем через збірку, а не редагуйте його вручну перед релізом:
Accept.initialize(context = this, isProduction = !BuildConfig.DEBUG)
Accept.setDebugLoggingEnabled(BuildConfig.DEBUG)Відповідність вимогам
Збірка, випущена з увімкненим налагодженням, залишеним налагоджувальним журналюванням або з обійденим certificate pinning, виходить за межі конфігурації, для якої сертифіковано Tapaya Accept, незалежно від того, чи вона й далі обробляє платежі. Перед кожним релізом у робоче середовище перевіряйте кожен рядок наведеної вище таблиці.
Передумови платформи
Кожна з наведених вище перевірок залежить від можливостей хост-пристрою. На сторінці Підтримувані пристрої наведено кожну вимогу, навіщо вона потрібна атестації і що відбувається, коли її не виконано. Дві з них визначають вибір обладнання:
- Android 11 є жорсткою нижньою межею. На пристроях зі старішою версією SDK не працюватиме взагалі. Деякі спеціалізовані моделі SoftPOS досі постачаються з Android версій від 7 до 9 без можливості оновлення, тому перевіряйте версію ОС конкретного пристрою, а не модельної лінійки.
- Google Mobile Services не обов'язкові. Якщо GMS є, SDK додає до власних перевірок вердикт Play Integrity API. Спеціалізовані термінали, що постачаються без GMS (поширені у таких виробників, як Sunmi та iMin), повністю підтримуються.
Якщо перевірку не пройдено
Непройдена перевірка є остаточною для цього пристрою, а не тимчасовою помилкою, яку можна повторити. SDK відмовляється ініціалізуватися або відмовляється обробляти транзакцію, якщо порушення виникає посеред сесії. Ніщо у вашій інтеграції не може цього скасувати, а спроба обійти цю перевірку виводить ваше розгортання за межі сертифікованої конфігурації.
Обробляйте це так само, як непоправну несправність пристрою: повідомте мерчанта, що пристрій не може приймати платежі, і скеруйте його до підтримки. Не повторюйте спроби в циклі і не переходьте на інший спосіб оплати.
Обов'язки розробника
Хоча основну роботу виконує SDK, ви як інтегратор маєте забезпечити таке:
- Не вимикайте попередження безпеки: Не намагайтеся обійти SSL pinning або виявлення root-доступу в збірках для робочого середовища.
- Оновлюйте SDK: Виправлення безпеки випускаються регулярно. Переконайтеся, що ваш застосунок використовує останню версію Tapaya Accept SDK.
- Обфускуйте свій застосунок: Застосовуйте ProGuard або R8 до власного коду застосунку, щоб запобігти розкриттю API-ключів або логіки, яка взаємодіє з SDK.
# The Tapaya Accept SDK includes its own consumer rules, but ensure you do not strip them
-keep class com.tapaya.** { *; }Повідомлення про інцидент безпеки
Якщо ви виявили вразливість безпеки або підозрюєте інцидент безпеки, пов'язаний із Tapaya Accept SDK або вашою інтеграцією, повідомте про це конфіденційно, як описано в розділі Контакти. За потреби вкажіть версію SDK, якої це стосується, та інформацію про пристрій.
Чогось бракує на цій сторінці?Надішліть запит на функцію. Ми додамо цю сторінку, щоб команда бачила контекст.