Tüm bilgisayar aygıtlarında olduğu gibi Android'de AIR yerel güvenlik modeline uyum sağlar. Aynı zamanda, AIR kendi güvenlik kurallarını da korur. Bunların amacı geliştiricilerin güvenli, İnternete bağlı uygulamalar yazmasını kolaylaştırmaktır.
Android'deki AIR uygulamaları Android paketi biçimini kullandığından yükleme Android güvenlik modeli altındadır. AIR uygulaması yükleyicisi kullanılmaz.
Android güvenlik modelinin üç ana yönü vardır:
Android izinleri
Android'in birçok özelliği işletim sistemi izin mekanizması tarafından korunur. Korunan bir özelliği kullanmak için AIR uygulama açıklayıcısı uygulamanın gerekli izni gerektirdiğini belirtmelidir. Bir kullanıcı uygulamayı yüklemeyi denediğinde, Android işletim sistemi yüklemeye devam etmeden önce tüm istenen izinleri kullanıcıya gösterir.
Çoğu AIR uygulamasının uygulama açıklayıcısında Android izinleri belirtmesi gerekir. Varsayılan olarak izinler dahil edilmez. AIR çalışma zamanı ile kullanılan korunan Android özellikleri için aşağıdaki izinler gereklidir:
-
ACCESS_COARSE_LOCATION
-
Geolocation sınıfı aracılığıyla uygulamanın WIFI ve hücresel ağ konumu verilerine erişmesine izin verir.
-
ACCESS_FINE_LOCATION
-
Uygulamanın Geolocation sınıfı aracılığıyla GPS verilerine erişmesine izin verir.
-
ACCESS_NETWORK_STATE ve ACCESS_WIFI_STATE
-
Uygulamanın NetworkInfo sınıfının ağ bilgilerine erişmesine izin verir.
-
CAMERA
-
Uygulamanın kameraya erişmesine izin verir.
-
INTERNET
-
Uygulamanın ağ isteği yapmasına izin verir. Ayrıca uzaktan hata ayıklamaya izin verir.
-
READ_PHONE_STATE
-
AIR çalışma zamanının gelen çağrı olması durumunda sesi kapatmasına izin verir.
-
RECORD_AUDIO
-
Uygulamanın mikrofona erişmesine izin verir.
-
WAKE_LOCK ve DISABLE_KEYGUARD
-
Uygulamanın SystemIdleMode sınıfı ayarlarını kullanarak aygıtın uyku moduna girmesini engellemesine izin verir.
-
WRITE_EXTERNAL_STORAGE
-
Uygulamanın aygıttaki harici bellek kartına yazmasına izin verir.
Uygulama imzaları
Android platformu için oluşturulan tüm uygulama paketleri imzalanmalıdır. Android'deki AIR uygulamaları yerel Android APK biçiminde paketlendiğinden, AIR kuralları yerine Android kurallarına göre imzalanır. Android ve AIR kod imzalamayı benzer şekilde kullansa da önemli farklılıklar vardır:
-
Android'de imza özel anahtara geliştiricinin sahip olduğunu doğrular ancak geliştiricinin kimliğini doğrulamak için kullanılmaz.
-
Android pazarına gönderilmiş uygulamalar için sertifika en az 25 yıl geçerli olmalıdır.
-
Android paket imzasının başka bir sertifikaya taşınmasını desteklemez. Bir güncelleme farklı bir sertifika tarafından imzalıysa, kullanıcıların güncellenmiş uygulamayı yükleyebilmeleri için orijinal uygulamayı kaldırmaları gerekir.
-
Aynı sertifikaya sahip iki uygulama birbirlerinin önbelleğine ve veri dosyalarına erişmelerine izin veren ortak bir kimlik belirtebilirler. (AIR bu tarz bir paylaşım sunmaz. )
Uygulama kullanıcısı kimlikleri
Android Linux çekirdeği kullanır. Yüklü her uygulamaya dosya erişimi gibi işlemler için izinlerini belirleyen Linux türü bir kullanıcı kimliği atanır. Uygulamadaki, uygulama deposundaki ve geçici dizinlerdeki dosyalara erişim dosya sistemi izinleri tarafından korunur. Harici depoya yazılan dosyalar (diğer bir deyişle SD karta) SD kartı bilgisayara yığın depolama aygıtı olarak takıldığında diğer uygulamalar veya kullanıcı tarafından okunabilir, değiştirilebilir ve silinebilir.
İnternet istekleriyle alınan tanımlama bilgileri AIR uygulamaları arasında paylaşılmaz.
Arka plan görüntüsü gizliliği
Kullanıcı, bir uygulamayı arka plana geçirdiğinde bazı Android sürümleri, son uygulamalar listesinde minik resim olarak kullanan bir ekran görüntüsü alır. Bu ekran görüntüsü cihazın belleğinde saklanır ve cihazın fiziksel kontrolüne sahip bir saldırgan bu görüntüye erişebilir.
Uygulamanız hassas bilgiler görüntülüyorsa, bu tür bilgilerin arka plan ekran görüntüsü tarafından yakalanmasına karşı korunmalısınız. NativeApplication nesnesi tarafından gönderilen
deactivate
olayı bir uygulamanın arka plana geçmek üzere olduğunu gösterir. Hassas bilgileri temizlemek veya gizlemek için bu olayı kullanın.
Android'de şifrelenmiş veriler
Android'deki AIR uygulamaları şifrelenmiş verileri kaydetmek için yerleşik SQL veri tabanında bulunan şifreleme seçeneklerini kullanabilir. En uygun güvenlik için, şifreleme anahtarını, uygulamanın her çalıştırılışında girilen kullanıcı girişli bir şifre üzerine temellendirin. Yerel olarak depolanmış şifreleme anahtarının ya da şifrenin uygulama dosyalarına erişimi olan bir saldırgandan "saklanması" zor veya imkansızdır. Saldırgan anahtarı alabilirse, bu durumda verileri şifrelemek, Android sistemi tarafından sağlanan kullanıcı kimliği bazlı dosya sistemi güvenliği dışında hiçbir ek koruma sağlayamaz.
EncryptedLocalStore sınıfı veri kaydetmek için kullanılabilir ancak bu veri Android cihazlarında şifreli değildir. Bunun yerine, Android güvenlik modeli, verileri diğer uygulamalardan korumak için uygulama kullanıcı kimliğine güvenir. Paylaşılan bir kullanıcı kimliği kullanan ve aynı kod imzalama dosyası ile imzalanan uygulamalar aynı şifrelenmiş yerel depoyu kullanır.
Önemli:
Root edilmiş bir telefonda, kök kullanıcı yetkileri ile çalışan her uygulama, diğer her uygulamanın dosyalarına erişebilir. Bu nedenle, şifreli yerel depo kullanılarak depolanan veriler root edilmiş bir cihazda güvende değildir.