Säkerhet på Android-enheter
Adobe AIR 2.5 och senare
På Android, liksom på alla datorenheter, följer AIR den inbyggda säkerhetsmodellen. Samtidigt har AIR egna säkerhetsregler, som är avsedda att underlätta för utvecklare att skriva säkra, Internet-anslutna program.
Eftersom AIR-program på Android använder Androids paketformat lyder installationen under Androids säkerhetsmodell. AIR-programmets installationsprogram används inte.
De tre huvudsakliga aspekterna i Android-säkerhetsmodellen är:
Behörighet
Programsignaturer
Användar-ID för program
Android-behörigheter
Många Android-funktioner skyddas av operativsystemets behörighetsfunktioner. För att kunna använda en skyddad funktion måste AIR-programbeskrivningsfilen deklarera att programmet behöver den nödvändiga behörigheten. När en användare försöker installera programmet visar Android-operativsystemet alla begärda behörigheter för användaren innan installationen inleds.
De flesta AIR-program måste ange Android-behörigheter i programbeskrivningsfilen. Som standard ingår inga behörigheter. Följande behörigheter krävs för skyddade Android-funktioner som används av AIR-miljön:
- ACCESS_COARSE_LOCATION
- Tillåter programmet att komma åt platsdata för WIFI och mobilnätverk via klassen Geolocation.
- ACCESS_FINE_LOCATION
- Tillåter programmet att komma åt GPS-data via klassen Geolocation.
- ACCESS_NETWORK_STATE och ACCESS_WIFI_STATE
- Tillåter programmet att komma åt nätverksinformation via klassen NetworkInfo.
- CAMERA
- Tillåter programmet att komma åt kameran.
- INTERNET
- Tillåter programmet att utföra nätverksbegäranden och fjärrfelsökning.
- READ_PHONE_STATE
- Tillåter AIR-miljön att stänga av ljudet vid inkommande samtal.
- RECORD_AUDIO
- Tillåter programmet att komma åt mikrofonen.
- WAKE_LOCK och DISABLE_KEYGUARD
- Tillåter att programmet hindrar enheten från att försättas i viloläge via inställningarna för klassen SystemIdleMode.
- WRITE_EXTERNAL_STORAGE
- Tillåter programmet att skriva till enhetens externa minneskort.
Programsignaturer
Alla programpaket som skapas för Android-plattformen måste signeras. Eftersom AIR-program på Android paketeras i Androids APK-format signeras de i enlighet med Androids regler i stället för de som gäller i AIR. Även om Android och AIR använder kodsignering på liknande sätt, finns det betydande skillnader:
På Android verifierar signaturen att utvecklaren äger den privata nyckeln, men den används inte för att verifiera utvecklarens identitet.
För program som ska lanseras för Android måste certifikatet vara giltigt i minst 25 år.
Android saknar stöd för att migrera paketsignaturer till nya certifikat. Om en uppdatering signeras av ett annat certifikat måste användarna avinstallera det ursprungliga programmet innan de kan installera uppdateringen.
Två program som signerats med samma certifikat kan ange ett delat ID, som tillåter dem att komma åt varandras cacheminnen och datafiler. (Sådan delning medges inte av AIR. )
Användar-ID för program
Android använder en Linux-kärna. Alla installerade program tilldelas ett användar-ID av Linux-typ, och detta avgör vilka behörigheter som gäller för till exempel filåtkomst. Filer i programmet, programkatalogen och tillfälliga kataloger åtkomstskyddas av filsystemets behörigheter. Filer som skrivs till externa lagringsplatser (t.ex. SD-kortet) kan läsas, ändras och tas bort av andra program, eller av användaren, när SD-kortet monteras som en masslagringsenhet på en dator.
Cookies som tas emot med Internet-begäranden delas inte mellan olika AIR-program.
Krypterade data på Android
AIR-program på Android kan använda de krypteringsalternativ som finns i den inbyggda SQL-databasen för att spara krypterade data. Klassen EncryptedLocalStore stöds inte på mobilenheter.