Zabezpečení zařízení
Zjistěte, jak Tapaya Accept SDK zabezpečuje transakce pomocí kontrol integrity zařízení a ochrany údajů a jak jej integrovat a nasadit v konfiguraci připravené pro produkční prostředí.
Tapaya Accept SDK mění běžná spotřebitelská zařízení (COTS, consumer off-the-shelf) na zabezpečené platební terminály. Protože tato zařízení nejsou specializovaným platebním hardwarem, SDK uplatňuje přísná bezpečnostní opatření, která zmírňují hrozby a zajišťují soulad se standardy PCI.
Atestace zařízení
Aby bylo platební prostředí bezpečné, SDK průběžně kontroluje stav hostitelského zařízení. Pokud zjistí jakékoli porušení zabezpečení, odmítne se inicializovat nebo zpracovávat transakce.
Detekce rootu a jailbreaku
SDK sleduje v prostředí známky eskalace oprávnění. To zahrnuje detekci binárních souborů rootu nebo frameworků pro správu oprávnění, jako jsou Magisk nebo SuperSU. Kontroluje také neoprávněný přístup pro čtení nebo zápis do chráněných systémových adresářů. Kromě toho rozpoznává nestandardní sestavení operačního systému, včetně vlastních ROM nebo upravených podpisů jádra.
Detekce ladění
Aby zabránilo reverznímu inženýrství a neoprávněnému testování, SDK zjišťuje, zda je k aplikaci připojen debugger, a ověřuje, že běží na fyzickém zařízení. Běh v emulátoru nebo ve virtuálním prostředí je omezen.
Google Play Integrity API
Na Androidu SDK využívá Play Integrity API k ověření, že Google binární soubor zařízení rozpoznává a že s ním nebylo manipulováno.
Zabezpečení aplikace
Obfuskace kódu
Tapaya Accept SDK používá pokročilé obfuskační techniky, které snižují riziko reverzního inženýrství. Symboly v kódu jsou přejmenovány na nic neříkající identifikátory, logika programu je záměrně znejasněna a citlivé řetězce nebo vložené klíče jsou šifrovány.
Ochrana proti manipulaci
SDK za běhu ověřuje vlastní integritu. Kontroluje digitální podpis aplikace a knihoven SDK. Pokud byl APK upraven nebo znovu zabalen třetí stranou, SDK se nespustí.
Ochrana údajů
End-to-end šifrování (E2EE)
Údaje o kartě jsou zašifrovány hned po načtení z NFC řadiče. Používá se silné šifrování podle oborových standardů a dešifrovací klíče jsou uloženy pouze v zabezpečených HSM. Mobilní zařízení nikdy nemá přístup k nezašifrovaným údajům o kartě.
Zabezpečené zadávání
U transakcí s PIN zajišťuje SDK bezpečné zadávání. Obrazovka pro PIN je chráněna proti útokům překrytím, rozložení klávesnice je náhodné a u každého dotykového vstupu se ověřuje, že pochází z fyzického zařízení.
Monitorování prostředí
Zamezení záznamu obrazovky
Pro ochranu citlivých údajů SDK blokuje snímky obrazovky, záznam obrazovky a sdílení obrazovky tím, že na zařízení vynucuje zabezpečené zobrazení.
Služby usnadnění přístupu
Škodlivé aplikace často zneužívají služby usnadnění přístupu ke čtení obsahu obrazovky nebo k vkládání vstupů. SDK detekuje aktivní služby usnadnění přístupu. Standardní služby pro zrakově postižené uživatele (například TalkBack) povoluje, ale neznámé nebo podezřelé služby může během platebního procesu zablokovat.
Atestace a monitorování ve vaší aplikaci
Atestace a monitorování nejsou komponentou, kterou byste instalovali. Jsou součástí Tapaya Accept SDK i pluginové
aplikace Tapaya Terminal, spouštějí se voláním Accept.initialize() a běží po celou dobu, kdy je SDK aktivní.
Neexistuje žádný konfigurační příznak, žádná možnost je vypnout a žádný režim, který by je zmírnil.
Obě části musí projít nezávisle na sobě. Vaše aplikace hostuje SDK a SDK předává každou platbu kartou aplikaci Tapaya Terminal, která provádí vlastní atestaci samostatně. Zařízení, které splní podmínky jedné části, ale ne druhé, nemůže přijímat platby.
Integrace atestace do vaší aplikace
| Povinnost | Jak to vypadá v kódu |
|---|---|
| Inicializujte jednou a včas | Accept.initialize(context, isProduction = true) ve vaší třídě Application. |
| Deklarujte skutečné prostředí | isProduction se řídí typem sestavení; nikdy nejde o hodnotu natvrdo zadanou pro pohodlí. |
| Udržujte Tapaya Terminal nainstalovaný a aktivovaný | Před přijetím platby zkontrolujte Accept.plugin.isInstalled() a poté zavolejte Accept.plugin.activateTerminal(). |
| Považujte odmítnutí za konečné | Oznamte je obchodníkovi a skončete. Nezkoušejte to znovu a nepřecházejte na jinou cestu v kódu. |
Kompletní API, které stojí za každým z těchto bodů, najdete v části Integrace mobilního SDK.
Nasazení v konfiguraci připravené pro produkční prostředí
Produkční sestavení nesmí být laditelné, nesmí logovat a nesmí oslabovat zabezpečení přenosu. SDK většinu z toho vynucuje samo: laditelné sestavení nebo připojený debugger zcela zabrání jeho inicializaci.
| Nastavení | Vývoj | Produkce |
|---|---|---|
android:debuggable | true | false |
Accept.initialize(isProduction = …) | false | true |
Accept.setDebugLoggingEnabled(…) | true | false |
| Podpisový klíč | ladicí úložiště klíčů (debug keystore) | produkční úložiště klíčů (release keystore) |
| R8 / ProGuard | vypnuto | zapnuto, s nedotčenými consumer pravidly SDK |
| Konfigurace zabezpečení sítě | může důvěřovat certifikačním autoritám nainstalovaným uživatelem | žádná důvěra v uživatelské certifikační autority, žádné obcházení pinningu |
| Ladění přes USB na zařízení | zapnuto | vypnuto |
Prostředí řiďte ze sestavení, místo abyste je před vydáním ručně upravovali:
Accept.initialize(context = this, isProduction = !BuildConfig.DEBUG)
Accept.setDebugLoggingEnabled(BuildConfig.DEBUG)Soulad s předpisy
Sestavení vydané se zapnutým laděním, s ponechaným ladicím logováním nebo s obejitým certificate pinningem je mimo konfiguraci, pro kterou je Tapaya Accept certifikován, bez ohledu na to, zda stále zpracovává platby. Před každým produkčním vydáním ověřte každý řádek výše uvedené tabulky.
Předpoklady platformy
Každá z výše uvedených kontrol závisí na schopnosti hostitelského zařízení. Stránka Podporovaná zařízení uvádí každý požadavek, proč jej atestace potřebuje a co se stane, když chybí. Dva z nich ovlivňují výběr hardwaru:
- Android 11 je pevná spodní hranice. Na zařízeních se starší verzí Androidu SDK vůbec nepoběží. Několik specializovaných modelů SoftPOS se stále dodává s Androidem 7 až 9 bez možnosti aktualizace, proto ověřte verzi OS konkrétního kusu, nikoli celé modelové řady.
- Google Mobile Services jsou volitelné. Pokud jsou GMS k dispozici, SDK ke svým vlastním kontrolám přidá verdikt Play Integrity API. Specializované terminály dodávané bez GMS, běžné u výrobců jako Sunmi a iMin, jsou plně podporovány.
Když kontrola selže
Neúspěšná kontrola je pro dané zařízení konečná, nejde o přechodnou chybu, kterou lze zkusit znovu. SDK se odmítne inicializovat, nebo odmítne zpracovat transakci, pokud se porušení objeví v průběhu relace. Nic ve vaší integraci to nemůže přebít a pokus o její obejití vyřadí vaše nasazení z certifikované konfigurace.
Postupujte stejně jako u neopravitelné závady zařízení: sdělte obchodníkovi, že zařízení nemůže přijímat platby, a nasměrujte jej na podporu. Neopakujte pokusy ve smyčce a nepřecházejte na jinou platební cestu.
Odpovědnosti vývojáře
Většinu práce sice odvede SDK, vy jako integrátor však musíte zajistit:
- Nevypínejte bezpečnostní varování: V produkčních sestaveních se nepokoušejte obejít SSL pinning ani detekci rootu.
- Udržujte SDK aktuální: Bezpečnostní opravy vycházejí pravidelně. Zajistěte, aby vaše aplikace používala nejnovější verzi Tapaya Accept SDK.
- Obfuskujte svou aplikaci: Na vlastní kód aplikace použijte ProGuard nebo R8, abyste zabránili odhalení API klíčů nebo logiky, která komunikuje se SDK.
# The Tapaya Accept SDK includes its own consumer rules, but ensure you do not strip them
-keep class com.tapaya.** { *; }Nahlášení bezpečnostního incidentu
Pokud objevíte bezpečnostní zranitelnost nebo máte podezření na bezpečnostní incident týkající se Tapaya Accept SDK nebo vaší integrace, nahlaste jej neveřejně podle postupu v části Kontakty. Pokud je to relevantní, uveďte dotčenou verzi SDK a informace o zařízení.
Chybí vám něco na této stránce?Navrhněte funkci. Připojíme tuto stránku, aby tým viděl souvislosti.