Tapaya
Prijímanie platieb v predajniZabezpečenie zariadeniaZabezpečenie zariadenia

Zabezpečenie zariadenia

Zistite, ako Tapaya Accept SDK zabezpečuje transakcie pomocou kontrol integrity zariadenia a ochrany údajov a ako ho integrovať a nasadiť v konfigurácii pripravenej na produkčné prostredie.

Tapaya Accept SDK mení bežné spotrebiteľské zariadenia (COTS, consumer off-the-shelf) na zabezpečené platobné terminály. Keďže tieto zariadenia nie sú špecializovaným platobným hardvérom, SDK uplatňuje prísne bezpečnostné opatrenia, ktoré zmierňujú hrozby a zaisťujú súlad so štandardmi PCI.

Atestácia zariadenia

Aby bolo platobné prostredie bezpečné, SDK priebežne kontroluje stav hostiteľského zariadenia. Ak zistí akékoľvek porušenie zabezpečenia, odmietne sa inicializovať alebo spracúvať transakcie.

Detekcia rootu a jailbreaku

SDK sleduje v prostredí známky eskalácie oprávnení. Zahŕňa to detekciu binárnych súborov rootu alebo frameworkov na správu oprávnení, ako sú Magisk alebo SuperSU. Kontroluje tiež neoprávnený prístup na čítanie alebo zápis do chránených systémových adresárov. Okrem toho rozpoznáva neštandardné zostavenia operačného systému vrátane vlastných ROM alebo upravených podpisov jadra.

Detekcia ladenia

Aby zabránilo reverznému inžinierstvu a neoprávnenému testovaniu, SDK zisťuje, či je k aplikácii pripojený debugger, a overuje, že beží na fyzickom zariadení. Beh v emulátore alebo vo virtuálnom prostredí je obmedzený.

Google Play Integrity API

Na Androide SDK využíva Play Integrity API na overenie, že Google binárny súbor zariadenia rozpoznáva a že s ním nebolo manipulované.

Zabezpečenie aplikácie

Obfuskácia kódu

Tapaya Accept SDK používa pokročilé obfuskačné techniky, ktoré znižujú riziko reverzného inžinierstva. Symboly v kóde sú premenované na nič nehovoriace identifikátory, logika programu je zámerne zahmlená a citlivé reťazce alebo vložené kľúče sú šifrované.

Ochrana proti manipulácii

SDK za behu overuje vlastnú integritu. Kontroluje digitálny podpis aplikácie a knižníc SDK. Ak APK upravila alebo znova zabalila tretia strana, SDK sa nespustí.

Ochrana údajov

End-to-end šifrovanie (E2EE)

Údaje o karte sú zašifrované hneď po načítaní z NFC radiča. Používa sa silné šifrovanie podľa odvetvových štandardov a dešifrovacie kľúče sú uložené iba v zabezpečených HSM. Mobilné zariadenie nikdy nemá prístup k nezašifrovaným údajom o karte.

Zabezpečené zadávanie

Pri transakciách s PIN zaisťuje SDK bezpečné zadávanie. Obrazovka na PIN je chránená proti útokom prekrytím, rozloženie klávesnice je náhodné a pri každom dotykovom vstupe sa overuje, že pochádza z fyzického zariadenia.

Monitorovanie prostredia

Zamedzenie záznamu obrazovky

Na ochranu citlivých údajov SDK blokuje snímky obrazovky, záznam obrazovky a zdieľanie obrazovky tým, že na zariadení vynucuje zabezpečené zobrazenie.

Služby dostupnosti

Škodlivé aplikácie často zneužívajú služby dostupnosti na čítanie obsahu obrazovky alebo na vkladanie vstupov. SDK deteguje aktívne služby dostupnosti. Štandardné služby pre zrakovo postihnutých používateľov (napríklad TalkBack) povoľuje, ale neznáme alebo podozrivé služby môže počas platobného procesu zablokovať.

Atestácia a monitorovanie vo vašej aplikácii

Atestácia a monitorovanie nie sú komponentom, ktorý by ste inštalovali. Sú súčasťou Tapaya Accept SDK aj pluginovej aplikácie Tapaya Terminal, spúšťajú sa volaním Accept.initialize() a bežia počas celej doby, keď je SDK aktívne. Neexistuje žiadny konfiguračný príznak, žiadna možnosť ich vypnúť a žiadny režim, ktorý by ich zmiernil.

Obe časti musia prejsť nezávisle od seba. Vaša aplikácia hostí SDK a SDK odovzdáva každú platbu kartou aplikácii Tapaya Terminal, ktorá vykonáva vlastnú atestáciu samostatne. Zariadenie, ktoré splní podmienky jednej časti, ale nie druhej, nemôže prijímať platby.

Integrácia atestácie do vašej aplikácie

PovinnosťAko to vyzerá v kóde
Inicializujte raz a včasAccept.initialize(context, isProduction = true) vo vašej triede Application.
Deklarujte skutočné prostredieisProduction sa riadi typom zostavenia; nikdy nejde o hodnotu zadanú napevno pre pohodlie.
Udržiavajte Tapaya Terminal nainštalovaný a aktivovanýPred prijatím platby skontrolujte Accept.plugin.isInstalled() a potom zavolajte Accept.plugin.activateTerminal().
Považujte odmietnutie za konečnéOznámte ho obchodníkovi a skončite. Neskúšajte to znova a neprechádzajte na inú cestu v kóde.

Kompletné API, ktoré stojí za každým z týchto bodov, nájdete v časti Integrácia mobilného SDK.

Nasadenie v konfigurácii pripravenej na produkčné prostredie

Produkčné zostavenie nesmie byť laditeľné, nesmie logovať a nesmie oslabovať zabezpečenie prenosu. SDK väčšinu z toho vynucuje samo: laditeľné zostavenie alebo pripojený debugger úplne zabráni jeho inicializácii.

NastavenieVývojProdukcia
android:debuggabletruefalse
Accept.initialize(isProduction = …)falsetrue
Accept.setDebugLoggingEnabled(…)truefalse
Podpisový kľúčladiace úložisko kľúčov (debug keystore)produkčné úložisko kľúčov (release keystore)
R8 / ProGuardvypnutézapnuté, s nedotknutými consumer pravidlami SDK
Konfigurácia zabezpečenia sietemôže dôverovať certifikačným autoritám nainštalovaným používateľomžiadna dôvera v používateľské certifikačné autority, žiadne obchádzanie pinningu
Ladenie cez USB na zariadenízapnutévypnuté

Prostredie riaďte zo zostavenia namiesto toho, aby ste ho pred vydaním ručne upravovali:

Accept.initialize(context = this, isProduction = !BuildConfig.DEBUG)
Accept.setDebugLoggingEnabled(BuildConfig.DEBUG)

Súlad s predpismi

Zostavenie vydané so zapnutým ladením, s ponechaným ladiacim logovaním alebo s obídeným certificate pinningom je mimo konfigurácie, pre ktorú je Tapaya Accept certifikovaný, bez ohľadu na to, či stále spracúva platby. Pred každým produkčným vydaním overte každý riadok vyššie uvedenej tabuľky.

Predpoklady platformy

Každá z vyššie uvedených kontrol závisí od schopnosti hostiteľského zariadenia. Stránka Podporované zariadenia uvádza každú požiadavku, prečo ju atestácia potrebuje a čo sa stane, keď chýba. Dve z nich ovplyvňujú výber hardvéru:

  • Android 11 je pevná spodná hranica. Na zariadeniach so staršou verziou Androidu SDK vôbec nepobeží. Niekoľko špecializovaných modelov SoftPOS sa stále dodáva s Androidom 7 až 9 bez možnosti aktualizácie, preto overte verziu OS konkrétneho kusu, nie celého modelového radu.
  • Google Mobile Services sú voliteľné. Ak sú GMS k dispozícii, SDK k svojim vlastným kontrolám pridá verdikt Play Integrity API. Špecializované terminály dodávané bez GMS, bežné u výrobcov ako Sunmi a iMin, sú plne podporované.

Keď kontrola zlyhá

Neúspešná kontrola je pre dané zariadenie konečná, nejde o prechodnú chybu, ktorú možno skúsiť znova. SDK sa odmietne inicializovať, alebo odmietne spracovať transakciu, ak sa porušenie objaví počas relácie. Nič vo vašej integrácii to nemôže zmeniť a akýkoľvek pokus o obídenie tohto správania vyradí vaše nasadenie z certifikovanej konfigurácie.

Postupujte rovnako ako pri neopraviteľnej poruche zariadenia: oznámte obchodníkovi, že zariadenie nemôže prijímať platby, a nasmerujte ho na podporu. Neopakujte pokusy v slučke a neprechádzajte na inú platobnú cestu.

Zodpovednosti vývojára

Väčšinu práce síce odvedie SDK, vy ako integrátor však musíte zabezpečiť:

  1. Nevypínajte bezpečnostné varovania: V produkčných zostaveniach sa nepokúšajte obísť SSL pinning ani detekciu rootu.
  2. Udržiavajte SDK aktuálne: Bezpečnostné opravy vychádzajú pravidelne. Zabezpečte, aby vaša aplikácia používala najnovšiu verziu Tapaya Accept SDK.
  3. Obfuskujte svoju aplikáciu: Na vlastný kód aplikácie použite ProGuard alebo R8, aby ste zabránili odhaleniu API kľúčov alebo logiky, ktorá komunikuje so SDK.
proguard-rules.pro
# The Tapaya Accept SDK includes its own consumer rules, but ensure you do not strip them
-keep class com.tapaya.** { *; }

Nahlásenie bezpečnostného incidentu

Ak objavíte bezpečnostnú zraniteľnosť alebo máte podozrenie na bezpečnostný incident týkajúci sa Tapaya Accept SDK alebo vašej integrácie, nahláste ho neverejne podľa postupu v časti Kontakty. Ak je to relevantné, uveďte dotknutú verziu SDK a informácie o zariadení.

Chýba vám niečo na tejto stránke?Navrhnite funkciu. Pripojíme túto stránku, aby tím videl súvislosti.