Beveiliging op Android-apparaten

Adobe AIR 2.5 of hoger

AIR past zich op Android net als op alle andere apparaten aan het native beveiligingsmodel aan. Tegelijkertijd houdt AIR zich aan de eigen beveiligingsregels die zijn ontworpen om het ontwikkelaars gemakkelijk te maken om veilige internettoepassingen te schrijven.

Aangezien AIR-toepassingen op Android gebruikmaken van de Android-pakketindeling, valt de installatie onder het Android-beveiligingsmodel. Het installatieprogramma van de AIR-toepassing wordt niet gebruikt.

Het Android-beveiligingsmodel bestaat uit drie primaire aspecten:

  • Bevoegdheden

  • Handtekeningen van toepassingen

  • Gebruiker-id's van toepassingen

Android-machtigingen

Vele Android-functies worden beschermd door het bevoegdhedenmechanisme van het besturingssysteem. Om een beschermde functie te gebruiken, moet de descriptor van de AIR-toepassing declareren dat de toepassing de vereiste bevoegdheid nodig heeft. Wanneer een gebruiker probeert de toepassing te installeren, geeft het Android-besturingssysteem alle gewenste bevoegdheden weer voordat de installatie wordt uitgevoerd.

De meeste AIR-toepassingen moeten Android-machtigingen opgeven in het descriptorbestand van de toepassing. Standaard zijn geen bevoegdheden opgenomen. De volgende bevoegdheden zijn vereist voor beveiligde Android-functies die via de AIR-runtime worden getoond:

ACCESS_COARSE_LOCATION
Hiermee geeft u de toepassing via de klasse Geolocation toegang tot locatiegevens van het WiFi- en mobiele-telefoonnetwerk.

ACCESS_FINE_LOCATION
Hiermee krijgt de toepassing via de klasse Geolocation toegang tot GPS-gegevens.

ACCESS_NETWORK_STATE and ACCESS_WIFI_STATE
Hiermee geeft u de toepassing via de klasse NetworkInfo toegang tot netwerkgegevens.

CAMERA
Hiermee krijgt de toepassing toegang tot de camera.

INTERNET
Hiermee kan de toepassing netwerkverzoeken indienen en wordt foutopsporing op afstand mogelijk gemaakt.

READ_PHONE_STATE
Hiermee kan de AIR-runtime het geluid dempen in geval van een binnenkomende oproep.

RECORD_AUDIO
Hiermee krijgt de toepassing toegang tot de microfoon.

WAKE_LOCK en DISABLE_KEYGUARD
Hiermee voorkomt de toepassing via de instellingen voor de klasse SystemIdleMode dat het apparaat inactief wordt.

WRITE_EXTERNAL_STORAGE
Hiermee kan de toepassing naar de externe geheugenkaart op het apparaat schrijven.

Handtekeningen van toepassingen

Alle toepassingspakketten die voor het Android-platform worden gemaakt, moeten worden ondertekend. Aangezien AIR-toepassingen voor Android in de native APK-indeling van Android worden opgenomen, worden ze ondertekend in overeenkomst met de Android-regels in plaats van met de AIR-regels. Android en AIR maken vergelijkbaar gebruik van codeondertekeningen, maar er zijn enkele belangrijke verschillen:

  • Op Android controleert de ondertekening of de privésleutel in bezit is van de ontwikkelaar. De identiteit van de ontwikkelaar wordt echter niet geverifieerd.

  • Het certificaat van Android-toepassingen dient minstens 25 jaar geldig te zijn.

  • Android biedt geen ondersteuning voor het migreren van de pakketondertekening naar een ander certificaat. Wanneer een update door een ander certificaat wordt ondertekend, dienen gebruikers de oorspronkelijke toepassing te verwijderen voordat ze de bijgewerkte toepassing kunnen installeren.

  • Twee toepassingen die met hetzelfde certificaat zijn ondertekend, kunnen een gedeelde id opgeven die ze toestemming geeft elkaars cache- en gegevensbestanden te openen. (Het delen van deze bestanden is niet mogelijk op AIR. )

Gebruiker-id's van toepassingen

Android maakt gebruik van een Linux-kernel. Aan elke geïnstalleerde toepassing wordt een gebruikers-id van het Linux-type toegewezen die de bevoegdheden voor bewerkingen als het openen van bestanden bepaalt. Bestanden in de toepassingsmap, tijdelijke mappen en de opslagmap zijn beveiligd tegen benadering door bestandssysteembevoegdheden. Naar externe opslag (met andere woorden: naar een SD-kaart) geschreven bestanden kunnen worden gelezen, gewijzigd en verwijderd door andere toepassingen of door de gebruiker wanneer de SD-kaart als een apparaat voor massaopslag wordt aangesloten op een computer.

Met internetverzoeken ontvangen cookies worden niet uitgewisseld door AIR-toepassingen.

Privacy achtergrondafbeelding

Wanneer een gebruiker een toepassing op de achtergrond plaatst, leggen enkele Android-versies een schermafbeelding vast die als miniatuur in de lijst met onlangs gebruikte toepassingen wordt gebruikt. Deze schermafbeelding wordt opgeslagen in het apparaatgeheugen en kan worden geopend door een aanvaller die de fysieke besturing heeft van het apparaat.

Als in uw toepassing gevoelige informatie wordt weergegeven, moet u ervoor zorgen dat dergelijke informatie niet wordt vastgelegd in de schermafbeelding van de achtergrond. De gebeurtenis deactivate die door het object NativeApplication wordt verzonden, geeft aan dat een toepassing op het punt staat om naar de achtergrond te worden verplaatst. Gebruik deze gebeurtenis om eventuele gevoelige informatie te wisssen of te verbergen.

Gecodeerde gegevens op Android

AIR-toepassingen op Android kunnen de beschikbare coderingsopties in de geïntegreerde SQL-database gebruiken om gecodeerde gegevens op te slaan. Voor optimale beveiliging baseert u de coderingssleutel op een door de gebruiker ingevoerd wachtwoord dat altijd wordt ingevoerd wanneer de toepassing wordt gestart. Het is lastig of onmogelijk een lokaal opgeslagen coderingssleutel of wachtwoord te verbergen voor een hacker die toegang heeft tot de toepassingsbestanden. Als een hacker de sleutel kan ophalen, biedt het coderen van de gegevens niet meer bescherming dan de op de gebruikers-id gebaseerde bestandssysteembeveiliging van het Android-systeem.

Met de klasse EncryptedLocalStore kunt u gegevens opslaan, maar deze gegevens worden niet gecodeerd op Android-apparaten. Android-beveiliging is in plaats daarvan gebaseerd op de gebruikers-id van de toepassing die de gegevens moet beschermen tegen andere toepassingen. Toepassingen die een gemeenschappelijke gebruikers-id gebruiken en die zijn ondertekend met hetzelfde certificaat, maken gebruik van dezelfde gecodeerde lokale opslag.

Belangrijk: Op een telefoon met rooting kan elke toepassing met rootingbevoegdheden de bestanden uit alle andere toepassingen openen. Gegevens die aan de hand van de gecodeerde lokale opslag worden opgeslagen, zijn dus niet veilig op een apparaat met rooting.