Védje felhasználói adatvédelmét: Android-alkalmazások biztonsága a fejlesztők számára

Szerző: Peter Berry
A Teremtés Dátuma: 20 Lang L: none (month-012) 2021
Frissítés Dátuma: 16 Június 2024
Anonim
Védje felhasználói adatvédelmét: Android-alkalmazások biztonsága a fejlesztők számára - Alkalmazások
Védje felhasználói adatvédelmét: Android-alkalmazások biztonsága a fejlesztők számára - Alkalmazások

Tartalom


Ha a közönségre akarsz lógni és megbízható Android fejlesztői hírnevét, akkor az Android alkalmazás biztonságát fejlesztőként komolyan kell vennie.

Ha alkalmazásod valaha kiszivárogtat magán adatokat, akkor fennáll annak a veszélye, hogy elveszíti a közönség nagy részét. A mai tech-hozzáértésű mobil felhasználók megértik, hogy a legbiztosabb módja annak, hogy megvédjék magukat egy nem biztonságos alkalmazástól, ha eltávolítják az eszközéről. A súlyos adatsértéseket a média is egyre gyakrabban jeleníti meg, így a mobilbiztonság hanyag megközelítése nagyon rossz nyilvánosságot eredményezhet.

A tét magas, és az új rosszindulatú alkalmazások folyamatos megjelenésekor egyre növekszik annak esélye, hogy az alkalmazás megoszthatja egy eszközt rosszindulatú szoftverekkel és rosszindulatú harmadik fél kódokkal.


Ha hanyagul veszi a mobilbiztonságot, nagyon rossz nyilvánosságot eredményezhet.

Szerencsére az Android számos beépített biztonsági funkcióval rendelkezik, amelyek segítenek tartani a felhasználók adatait szorosan. Ebben a cikkben megvizsgáljuk az összes főbb adatvédelmi funkciót, amelyek az Android platformon vannak beépítve, valamint további eszközöket, technikákat és bevált gyakorlatokat, amelyek segítségével biztosíthatja, hogy a személyes alkalmazásadatai továbbra is privátak maradjanak.

Tartsa naprakészen a függőségeket

Nem ritka, hogy a modern mobilalkalmazások több könyvtárat, SDK-t és sok egyéb különféle függőséget használnak. Ezen függőségek új kiadásai gyakran tartalmaznak hibajavításokat, javításokat és egyéb biztonsági funkciókat, ezért biztosítania kell, hogy alkalmazásának fejlesztésekor a legújabb verziót használja.


Mielőtt telepítené az alkalmazását, jó ötlet egy utolsó ellenőrzést elvégezni, csak annak ellenőrzése érdekében, hogy nem állnak rendelkezésre frissítések.

Ha az alkalmazás használja a Google Play szolgáltatásokat, akkor ellenőrizheti, hogy a felhasználó eszközére van-e telepítve a legújabb verzió, és szükség esetén indíthat frissítést.

Annak teszteléséhez, hogy az eszköz Google Play szolgáltatásai naprakészek-e, hívja fel a ProviderInstaller osztály telepítőfájlt (installIfNeeded ()). Ha elérhető frissítés, akkor ez a módszer engedélyezési kivételt jelenít meg, és a felhasználót felszólítja a Google Play Szolgáltatások frissítésére a készüléken.

Korlátozza az engedélykérelmeit

Ha az alkalmazásának nincs hozzáférése engedélyhez, akkor nincs esély arra, hogy helytelenül kezelje az engedélyhez kapcsolódó bármely érzékeny adatot vagy funkciót. Az érzékeny engedélyekhez való hozzáférés korlátozása az alkalmazását is kevésbé vonzó célpontjává teheti a hackerek számára, ezért fontos, hogy a lehető legkevesebb engedélyt kérje.

A készítés előtt bármilyen engedélykérelmeket, fontolóra kell vennie, hogy lehet-e ugyanazt az eredményt elérni anélkül, hogy hozzáférjen ehhez az engedélyhez. Például, ha valamilyen adatot kell mentenie, akkor a helyi tárhelyhez bármilyen engedély kérése nélkül hozzáférhet, az adatok külső megmentésének megkísérelése helyett, amihez a WRITE_EXTERNAL_STORAGE engedély szükséges.

Alternatív megoldásként felhasználhatja szándékát egy feladat átadására egy olyan alkalmazásnak, amely már rendelkezik a szükséges engedélyekkel. Például a READ_CONTACTS és WRITE_CONTACTS engedélyek kérése helyett egy feladatot átruházhat a Contacts alkalmazásra:

Intent contactIntent = új szándék (Intent.ACTION_INSERT); contactIntent.setType (ContactsContract.Contacts.CONTENT_TYPE); if (contactIntent.resolveActivity (getPackageManager ())! = null) {startActivity (contactIntent); }

Ezenkívül le kell mondania minden olyan engedélyről, amelyre az alkalmazásához már nincs szüksége, ami jelentősen csökkentheti az érzékeny adatok és funkciók mennyiségét, amelyekhez az alkalmazás egyszerre hozzáférhet.

Hagyja, hogy a felhasználók döntsenek: Az alkalmazásválasztó megjelenítése

Miért pazarolja az időt és az energiát a kerék újra feltalálása? A közvetett szándékok lehetővé teszik a feladatok elvégzését harmadik féltől származó alkalmazásokkal együttműködve, csökkentve az írott kód mennyiségét, amely az alkalmazás összes funkciójának teljesítéséhez szükséges. Ha egy feladatot átad egy másik alkalmazásnak, csökkentheti az alkalmazásához szükséges engedélyek számát.

A közvetett szándékok tonna időt takaríthatnak meg, de ők is adnak nulla annak ellenőrzése, hogy mely alkalmazás válaszol a kérésére. Ha egy bizonytalan vagy rosszindulatú harmadik féltől származó alkalmazás válaszol a hallgatólagos szándékára, akkor van esély arra, hogy akaratlanul átadja a felhasználó személyes adatait harmadik fél számára.Ha egy harmadik fél által benyújtott alkalmazás eredményeként megsértik a felhasználó adatvédelmét, akkor az alkalmazásod társulásnak tekinthető bűnösnek.

Implicit szándék kiadásakor az Android alkalmazásválasztóját, ahol csak lehetséges, meg kell jelenítenie.

Ha eljuttatja a felhasználót azon alkalmazások listájához, amelyek reagálhatnak erre a szándékra, akkor lehetőséget ad nekik egy alkalmazás kiválasztására, amelyben személyesen bíznak. Bár nincs garancia arra, hogy minden egyes felhasználó okosan választ, ez csökkentheti annak esélyét, hogy megoszthassa az adatokat egy megbízhatatlan alkalmazással.

Egy szándék kiadásakor ellenőriznie kell, hogy a felhasználónak több alkalmazás rendelkezik-e ezzel a szándékkal. Feltételezve, hogy több kompatibilis alkalmazás érhető el, ezután megjelenítheti az alkalmazásválasztót a createChooser () meghívásával és az startActivity () -re továbbításával:

Intent myIntent = új szándék (Intent.ACTION_SEND); Lista lehetségesActivitiesList = queryIntentActivities (szándék, PackageManager.MATCH_ALL); // Ellenőrizze, hogy egynél több alkalmazás képes-e kezelni ezt a szándékot // if (possibleActivitiesList.size ()> 1) {// Az alkalmazásválasztó megjelenítése // String title = getResources (). GetString (R.string.app_chooser_title); Intent Chooser = Intent.createChooser (szándék, cím); startActivity (kiválasztó); } else if (intent.resolveActivity (getPackageManager ())! = null) {startActivity (szándék); }

Vegye figyelembe, hogy soha ne használjon közvetett szándékot a szolgáltatás indításához, mivel nem tudja ellenőrizni, hogy melyik szolgáltatás reagál az implicit szándékára.

Kerülje a külső tárolást

Gondoskodnia kell arról, hogy a felhasználói eszközön tárolt adatok nem érhetők el más alkalmazások számára - kivéve, ha kifejezetten jóváhagyja ezeket az alkalmazásokat.

A külső tárolóba mentett fájlok globálisan olvashatók és írhatók, így a külső tárolóba mentett adatokhoz bármilyen más alkalmazás hozzáférhet és módosítható. Nem garantáljuk továbbá, hogy egy külső adathordozó továbbra is csatlakozik az aktuális okostelefonhoz vagy táblagéphez. Ha az alkalmazás külső tárolóba ír, akkor potenciálisan érzékeny felhasználói adatokat menthet egy SD-kártyára, amelyet később eltávolítanak és behelyeznek valaki más készülékébe!

Hacsak nincs konkrét oka, ha nem szeretné, akkor az adatokat mindig a belső tárolóhelyre kell mentenie, ahol azok homokdobozban vannak, és csak az alkalmazáshoz lesz elérhető alapértelmezés szerint. Ezenkívül, ha a felhasználó eltávolítja az alkalmazását, akkor az összes alkalmazás fájlja automatikusan törlődik a belső tárolóból, így nem kell aggódnia, hogy érzékeny információkat hagyjon hátra.

A következő részben az adatokat belső tárolóhelyre írjuk:

végső karakterlánc: FILE_NAME = "user_data.txt"; String fileContents = "Ez a szöveges fájl érzékeny felhasználói adatokat tartalmaz"; próbálja (BufferedWriter író = új BufferedWriter (új FileWriter (új fájl (getFilesDir (), FILE_NAME))))) {wrote.write (fileContents); } fogás (IOException e) {// Teendő: Kivétel kezelése //}

Ha az adatok különösen érzékenyek, akkor biztosíthat további Android-alkalmazásbiztonságot a fájlok titkosításával olyan kulccsal, amely nem érhető el az alkalmazásának, például egy kulccsal, amelyet a Kulcstárolóba helyez, és egy olyan jelszóval véd, amelyet nem tárol az eszköz.

Használja az Android új hatókörű könyvtárakhoz való hozzáférését

Időnként egy alkalmazás megkövetelheti a hozzáférést az eszköz külső tárhelyén belüli meghatározott könyvtárakhoz, például hozzáférést biztosíthat az eszköz külső Képek könyvtárához.

Noha kérheti a READ_EXTERNAL_STORAGE engedélyt, ez gyakran biztosítja az alkalmazásának a szükségesnél több adathoz való hozzáférést. Lehetetlen, hogy egy alkalmazás helytelenül kezelje azokat az adatokat, amelyekhez nem fér hozzá, ezért meg kell próbálnia minimalizálni az alkalmazások által elérhető információk mennyiségét, amennyire csak lehetséges.

A READ_EXTERNAL_STORAGE engedély kérése helyett hozzáférést kérhet egy adott könyvtárhoz. Ez hatókörű könyvtár-hozzáférés megköveteli, hogy használja a StorageManager osztályt, majd hozzon létre egy szándékot az adott példány StorageVolume.createAccessIntent () metódusának meghívásával. Például a következő részletben hozzáférünk a külső Képek könyvtárhoz:

StorageManager newStorageManager = ((StorageManager) getSystemService (Context.STORAGE_SERVICE); StorageVolume volume = newStorageManager.getPrimaryStorageVolume (); Szándék szándéka = volume.createAccessIntent (Environment.DIRECTORY_PICTURES); startActivityForResult (szándék, kérési kód);

Ha a felhasználó hozzáférést biztosít az alkalmazásának ehhez a külső könyvtárhoz, akkor az Android felhívja az onActivityResult () felülírását RESULT_OK eredménykóddal, valamint egy olyan szándékkal, amely tartalmazza a kért könyvtár URI-jét.

Soha ne gyorsítótárba helyezzen érzékeny felhasználói adatokat

Nem érzékeny alkalmazási adatok kezelésekor javíthatja a felhasználói élményt, ha ezeket az adatokat az eszköz gyorsítótárába tárolja.

Az 1 MB-nál nagyobb gyorsítótárakhoz használhatja a getExternalCacheDir () fájlt, amely az alkalmazás-specifikus könyvtár elérési útját adja vissza, ahol tárolhatja a gyorsítótárazott tartalmat.

Ha úgy dönt, hogy gyorsítótárazza, akkor csak vegye figyelembe, hogy minden olyan alkalmazás, amely rendelkezik a WRITE_EXTERNAL_STORAGE engedéllyel, potenciálisan írhat ezekbe a fájlokba, ezért érdemes soha tároljon személyes vagy érzékeny információkat a gyorsítótárban, ha törődik az Android alkalmazás biztonságával.

Védje kulcsait illetéktelen használat ellen

Az Android Keystore rendszer lehetővé teszi a kriptográfiai kulcsok tárolását egy tárolóban, ami megnehezíti ezeket a kulcsokat az eszközből.

Az Android billentyűzettár biztosítja, hogy a kulcsfontosságú anyagok soha ne kerüljenek be az alkalmazási folyamatba, így akkor is, ha az alkalmazás folyamatainak veszélybe kerülnek, és a támadónak sikerül hozzáférnie a kulcsokhoz, akkor nem képesek kibontani a kulcsot tartalmazó anyagot.

A Kulcstároló segítségével korlátozhatja a kulcsok használatának idejét és használatát is, például korlátozhatja a kulcsok használatát bizonyos kriptográfiai módokra, vagy megkövetelheti a felhasználó hitelesítését.

Tegye magáévá a ContentProviders szolgáltatót

A ContentProviders egy strukturált tárolómechanizmus, amelyet privátvá tehet az alkalmazásában, vagy választhat az exportáláskor, amikor más alkalmazások számára hozzáférhetővé válnak.

Ha kifejezetten nem kell megosztania adatokat harmadik féltől származó alkalmazásokkal, akkor minden ContentProvideort magántulajdonossá kell tennie, androidosként jelölve őket: export = false az alkalmazás manifesztumában. Ha az alkalmazás kompatibilis az Android 4.1.1-es vagy újabb verziójával, akkor különösen fontos, hogy a privát ContentProvideo-kat Androidon jelölje meg: export = false, mivel alapértelmezés szerint minden ContentProvideer nyilvános.

A felhasználók ujjlenyomata biometrikus hitelesítéssel

Mielőtt engedélyezné a felhasználó számára az alkalmazásának bármely érzékeny információjához vagy funkciójához való hozzáférést, ellenőrizze személyazonosságát és kérje meg hitelesítő adatait.

A felhasználói hitelesítő adatok PIN vagy jelszó formájában készülhetnek, de ahol lehetséges, sokkal biztonságosabb a biometrikus hitelesítés elvégzése, például a felhasználó ujjlenyomatának igénylésekor.

Kövesse minden a bevált gyakorlatok hálózatba szervezése

A kevésbé hordozható eszközökkel (például asztali számítógépekkel) ellentétben okostelefonjainkat és táblagépeinket gyakran nem biztonságos vezeték nélküli hálózatokhoz, például ingyenes nyilvános Wi-Fi-hez csatlakoztatjuk. A felhasználó magánéletének megőrzése érdekében minden hálózati tranzakciót természetéből fakadóan kockázatosnak kell tekintenie, különösen amikor felhasználói adatokat továbbít.

Amikor hálózati tranzakciót kell végrehajtania, fontos, hogy kövesse az összes Android hálózati bevált gyakorlatát:

  • Használjon HTTPS-t a HTTP helyett, amikor csak a szerver támogatja.
  • Soha ne bízzon a nem biztonságos protokollokból letöltött adatokban, ideértve a HTTP elleni válaszokat is.
  • Használjon megfelelő protokollokat az érzékeny adatokhoz, például a HttpsURLConnection.
  • Amennyiben lehetséges a hitelesítés, használjon Android IPC mechanizmust, például egy szolgáltatást.
  • Használja a nyílt forrású Nogotofail hálózati biztonsági eszközt az alkalmazás teszteléséhez az ismert TLS / SSL biztonsági rések és téves konfigurációk ellen. A Nogotofail magában foglalja a szokásos SSL-tanúsítvány-ellenőrzési kérdések, a HTTPS és a TLS / SSL könyvtár hibáinak, a szöveges kérdéseknek, valamint az SSL és a STARTTLS eltávolításának kérdéseit. További információkért nézze meg a Nogotofail GitHub oldalát.
  • Ahol lehetséges, kerülje a kód betöltése az APK-ból kívülről, mivel ez növeli annak esélyét, hogy valaki a hálózaton módosítsa az Ön kódját, miközben az átvitele folyamatban van.

A WebViews szoftvert óvatosan használja

A WebView összetevő felhasználhatja a HTML-t és a JavaScriptet, így ha helytelenül használja a WebView-kat, akkor az alkalmazás ki lesz téve a szokásos internetes biztonsági problémáknak, például a webhelyek közötti szkripteknek.

Ha helytelenül használja a WebView-programokat, akkor az alkalmazás kiszolgáltatott lesz a általános webbiztonsági problémákkal szemben.

Az Android felhasználók biztonságának megőrzése érdekében a WebView összetevő alapértelmezés szerint nem hajtja végre a JavaScriptet. Szükség esetén engedélyezheti a JavaScriptet a getSettings () használatával a WebSettings letöltéséhez, majd a setJavaScriptEnabled () módszer futtatásával:

WebView myWebView = (WebView) findViewById (R.id.webview); WebSettings webSettings = myWebView.getSettings (); webSettings.setJavaScriptEnabled (true);

Még akkor is, ha engedélyeznie kell a JavaScriptet, kerülje az addJavaScriptInterface () használatát, ahol csak lehetséges, mivel ez a módszer a mellékelt Java objektumot injektálja a WebView összetevőbe. Ha alkalmazásod az Android 4.2 vagy régebbi verziót futtató eszközre van telepítve, akkor ez a módszer lehetővé teheti a JavaScript számára az alkalmazás manipulálását.

Ha Ön a WebView-eket használja, akkor nem szabad engednie a felhasználóknak, hogy navigáljanak olyan webhelyekre, amelyeket Ön nem irányít, de különösen soha használja az addJavascriptInterface () metódust, ha a felhasználó potenciálisan navigálhat egy megbízhatatlan weboldalra, mivel ez hatalmas Android-alkalmazásbiztonsági kockázatot jelent.

Soha ne használja az addJavascriptInterface () metódust, ha a felhasználó potenciálisan nem megbízható weboldalra navigálhat.

Ha a WebView komponens bármilyen személyes adatot elér, akkor érdemes lehet törölni a helyileg tárolt fájlokat a clearCache () módszer használatával. Alternatív megoldásként megakadályozhatja az alkalmazás számára az érzékeny tartalmak gyorsítótárazását a gyorsítótár nélküli kiszolgálóoldali fejléc segítségével.

Kezelje alkalmazásának biztonságos socket rétegét (SSL)

Az SSL az ügyfelek és a kiszolgálók közötti titkosított kommunikáció általános alkotóeleme. Ha az alkalmazás helytelenül használja az SSL-t, akkor a rosszindulatú harmadik felek elfoghatják az alkalmazás adatait, amikor azt hálózaton továbbítják.

A kiszolgálót általában nyilvános kulcsot és egyező magánkulcsot tartalmazó tanúsítvánnyal konfigurálják. Az SSL kliens és a szerver közötti kommunikáció részeként a szerver nyilvános kulcsú kriptográfiával aláírja a tanúsítványt. Harmadik felek számára azonban előállíthat saját tanúsítványt és magánkulcsot, tehát az ügyfélnek rendelkeznie kell egy vagy több tanúsítvánnyal, amelyben bízik. Ha a tanúsítvány nincs beállítva, akkor az alkalmazásnak nem szabad megbíznia a szerverben.

A folyamat könnyebbé tétele érdekében a kiszolgálókat gyakran jól ismert tanúsító hatóságok (CA) tanúsítványaival konfigurálják. Az API 17. szintjétől kezdve az Android több mint 100 CA-t támogat, amelyeket minden egyes kiadással frissítenek. Amikor egy szerverre tanúsítványt állít ki, a CA aláírja a szerver tanúsítványát a saját kulcsával, majd az ügyfél ellenőrizheti, hogy a tanúsítványt kibocsátotta-e egy CA, amelyet az Android platform ismert és megbízott.

Ha az alkalmazás egy olyan webszerverrel kommunikál, amelynek megbízható hitelesítésszolgáltató által kiállított tanúsítvánnyal rendelkezik, akkor kérését néhány kódsorban is megteheti:

URL url = új URL ("https://www.google.com"); HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection (); urlConnection.connect (); InputStream = urlConnection.getInputStream ();

Vannak azonban olyan esetek, amikor a fenti kód kivételt eredményez:

  • A kiszolgálói tanúsítványt kiállító CA ismeretlen. Ebben a forgatókönyvben megtaníthatja a HttpsURLConnection-et, hogy bízjon a CA-k ezen halmazában.
  • A kiszolgálói tanúsítványt saját aláírásával írták alá, ami azt jelenti, hogy a kiszolgáló saját CA-ként működik. Saját aláírással ellátott tanúsítványokhoz létrehozhat saját TrustManager alkalmazást, bár biztosítania kell, hogy az önaláírt tanúsítványának erős kulcsa legyen.
  • A kiszolgálókonfigurációból hiányzik egy közbenső CA. Sok nyilvános CA nem írja alá közvetlenül a szerver tanúsítványait. Az Android csak a gyökér CA-kban bíz meg, így a kiszolgálónak a gyökér eléréséhez szükséges köztes termékeken keresztül el kell küldenie a tanúsítványok láncát a kiszolgáló CA-tól. Ha nem tudja úgy konfigurálni a kiszolgálót, hogy a közbenső CA-t felvegye a kiszolgálóláncba, akkor az egyik lehetséges megoldás a saját TrustManager létrehozása.

Hálózati biztonsági konfigurációs fájl létrehozása: Az egyedi CA-k megbízhatósága

Ha azt akarja, hogy az alkalmazás új vagy egyedi CA-t használjon, akkor hozzon létre egy hálózati biztonsági konfigurációs fájlt, ahol megadja a hálózati biztonsági beállításokat.

Hálózati biztonsági konfigurációs fájl létrehozása:

  • Ha a projekt még nem tartalmaz XML mappát, akkor létre kell hoznia azt. Kattintson a vezérlőgombra a projekt res mappájára, és válassza az Új> Android Resource Directory menüpontot.
  • Hozzon létre egy új XML erőforrás fájlt az XML könyvtárban, amely hálózati biztonsági konfigurációs fájlként fog szolgálni. Ezt a fájlt nevezem network_config.
  • Nyissa meg a hálózati konfigurációs fájlt, és határozza meg, hogy a következő domainekhez történő teljes forgalomnak HTTPS-t kell használnia:

// A szöveg törlése letiltása // // Alkalmazza ezt a szabályt a domainre és annak összes aldomainjére // my.domain.com ... ... ...

Most meghatározhatja az egyéni hitelesítésszolgáltatók halmazát, amelyben az alkalmazásának megbíznia kell. Például, ha egy olyan gazdagéphez szeretne csatlakozni, amely önaláírt CA-t használ, akkor a következőt adja hozzá a hálózati biztonsági konfigurációs fájlhoz:

my.domain.com // Biztonsági horgonykészlet a biztonságos kapcsolatokhoz // // Tanúsítványkészlet a megbízhatósági elemekhez és ezeknek a tanúsítványoknak a forrása //

Ne felejtse el bejelenteni a hálózati biztonsági konfigurációs fájlt a manifesztben:

Ezután hozzá kell adnia a megbízható CA-kat a projekt res / raw / trusted_cas-hoz PEM vagy DER formátumban.

Bízzon további CA-kban, ahol lehetséges

Végül érdemes lehet megbízni további CA-kban, amelyek az Android platformon nem ismertek. Az alkalmazás által megbízott CA-k számának növeléséhez több tanúsítványforrást kell megadnia:

Soha ne küldjön érzékeny adatokat SMS-ben

Ha adatokat kell továbbítania egy szerverről az alkalmazásra, akkor a Google Cloud Messaging (GCM) és az IP üzenetküldést kell használnia, és soha nem a titkosítatlan SMS protokollt.

Olvassa el: Android fejlesztés: Hívások kezdeményezése, SMS fogadása és a felhasználói névjegyek letöltése

Soha ne végezzen érzékeny parancsokat SMS-ek használatával, mivel az SMS-ek sugárzási szándékként kerülnek továbbításra, vagyis minden olyan alkalmazás, amely rendelkezik a READ_SMS engedéllyel, hozzáférhet tartalmához.

Védje a biztonsági fenyegetéseket a SafetyNet API-kkal

A SafetyNet egy sor szolgáltatást és API-t biztosít, amelyek segítségével megvédheti alkalmazását olyan biztonsági fenyegetésekkel szemben, mint az eszköz hamisítása, rosszindulatú URL-ek és hamis felhasználók.

Az Android a következő SafetyNet API-kat támogatja:

  • SafetyNet Attestation API. Ez a visszaélés elleni API lehetővé teszi az Android-eszközhöz való hozzáférést, ahol az alkalmazás fut, így meghatározhatja, hogy a kiszolgálók kölcsönhatásba lépnek-e egy eredeti eszközzel.
  • SafetyNet Biztonságos Böngészés API. Az API segítségével meghatározhatja, hogy a Google besorolta-e egy adott URL-t ismert fenyegetésként.
  • SafetyNet reCAPTCHA API. Ez a szolgáltatás tartalmaz egy reCAPTCHA API-t, amelyet felhasználhat az alkalmazás védelmére olyan fenyegetések ellen, mint a spam és a rosszindulatú forgalom. Ha az API gyanítja, hogy az alkalmazás interakcióba lép egy botnal, akkor azt egy CAPTCHA kiszolgálónak kell kiszolgálnia, amelyet a címzettnek meg kell oldania, mielőtt folytathatja az Ön alkalmazásának használatát.
  • SafetyNet hitelesíti az alkalmazások API-ját. Ha az alkalmazás érzékeny felhasználói adatokat tartalmaz, akkor ezt az API-t arra használhatja, hogy kapcsolatba léphessen az eszköz Alkalmazások ellenőrzése funkciójával, és ellenőrizze, hogy az eszköz mentes-e a rosszindulatú alkalmazásoktól. Ha az eszköz nem biztonságos, akkor végrehajthatja bizonyos káros korlátozásokat az alkalmazás összes érzékeny funkciójának letiltásával. Ne feledje, hogy bár a SafetyNet figyelmezteti a felhasználókat az esetlegesen káros alkalmazásokra, amelyeket felfedezett, nem garantálja, hogy a felhasználó valóban eltávolítja ezeket az alkalmazásokat. Ezen túlmenően a rosszindulatú alkalmazásokat folyamatosan szabadítják fel, és a hackerek mindig új és ötletes módszerekkel állnak elő, hogy a radar alá csússzanak, tehát akkor is, ha egy eszköz megfelel a SafetyNet tesztnek, nem szabad azt feltételezni, hogy nincsenek káros alkalmazások az eszköz.

A SafetyNet API-kkal kapcsolatos további információkért, beleértve az alkalmazásukban történő alkalmazásuk útmutatóját, olvassa el a hivatalos Android-dokumentumokat.

Használjon Android védett megerősítést érzékeny tranzakciókhoz

Ha alkalmazásának érzékeny tranzakciót kell végrehajtania, például befizetést kell végrehajtania, akkor az Android Védett megerősítést az Android 9 (28-as API szintű) vagy újabb rendszert futtató eszközökön használhatja.

Minden alkalommal, amikor a felhasználó megkísérel végrehajtani egy érzékeny tranzakciót, az Android Protected Confirmation egy felszólítást jelenít meg, amelyben felkéri őket, hogy fogadjanak el egy rövid nyilatkozatot. Ha a felhasználó jóváhagyja ezt a nyilatkozatot, akkor a kulccsal aláírhatja az Android billentyűzetet.

További információt, valamint az Android védett megerősítés végrehajtásával kapcsolatos utasításokat, olvassa el a hivatalos Android-dokumentumokat.

Android 10: A beágyazott DEX-kód közvetlen futtatása

Az Android 10 (29-es szintű) és újabb verziót futtató eszközökön beágyazott DEX-kód futtatható közvetlenül az alkalmazás APK-fájljából, ami segíthet megelőzni a támadást akkor is, ha a hacker hajtja végre az eszköz helyileg összeállított kódját.

Olvassa el még: Az Android Q felfedezése: buborékos értesítések hozzáadása az alkalmazásához

Az új biztonsági szolgáltatás engedélyezéséhez nyissa meg a projekt manifesztját, és adja hozzá a következőket az elemhez:

Ezután létre kell hoznia egy olyan APK fájlt, amely tömörítetlen DEX kódot tartalmaz, amelyhez az ART közvetlenül hozzáférhet. Nyissa meg a build.gradle fájlt, és adja hozzá a következőket:

aaptOptions {noCompress dex}

Ne feledje, hogy az ART elindítja az alkalmazást a JIT-fordítóval, ami befolyásolhatja alkalmazásának teljesítményét.

Csomagolás

Ebben a cikkben ismertetjük a bevált gyakorlatokat, eszközöket, API-kat és technikákat, amelyek segítségével hozzájárulhat az Android-alkalmazásának biztonságához.

Van tanácsod az alkalmazás biztonságának növelésére? Mindenképpen ossza meg tippeit az alábbi megjegyzésekben!

Amint az IFA 2019 melegzik, néhány új Huawei P30 Pro zín kizivárgott (aWinFuture). Nagyon valózínű, hogy ez a két új zín - a ködö levendula ...

Üdvözöljük a! 277. kiadáában! Itt vannak a múlt heti nagy címorok:A Google Aitant jól halad tovább. Valójában a Google azt várja el, h...

Új Kiadványok