Apple iOS Biztonsági Funkciók
Az alábbi egymásra épülő rétegeket sorban végigvéve nézzük meg, miért is a legbiztonságosabb, vezető mobil platform az Apple iOS rendszere. Igyekszem a lehető legrövidebben, és közérthetően megfogalmazni a lényeget azok számára, akik nem jártasak ezen a területen.
1. App Security
2. OS Security
3. Data Protection
4. HW Security
iOS biztonság 1. - App Security
Azaz miért bízhatunk meg az iOS alkalmazásokban? Miért nem fertőzhető meg vírusokkal? Miért lehet teljesen kézben tartani a céges információkat, nehogy illetéktelen kezekbe jussanak a mobil eszközön keresztül?
Code Signing
Kizárólag Apple tanúsítvánnyal aláírt szoftver futhat iOS eszközön. Azonosítatlan, sérült, vagy fertőzött kód nem fut le. A digitálisan aláírt alkalmazások egyértelműen beazonosíthatóak.
Apple Developer Program
Kizárólag az Apple által regisztrált, azonosítható alkalmazás fejlesztők tudnak futtatható szoftvert készíteni iOS rendszerre. A regisztrált fejlesztők egyedi tanúsítványt kapnak az Appletől, ezzel írják alá szoftvereiket.
App Store publikálás
A regisztrált szoftver fejlesztőktől kizárólag az Apple által tesztelt appok kerülnek az App Storeba. A teszt kiszűri a veszélyes kódrészleteket és vizsgálja a fejlesztői irányelvek betartását.
Enterprise Developer Program
Kizárólag a regisztrált cégen belül felhasználható szoftverek fejlesztésére jogosító regisztráció. Az App Storeban nem terjeszthetők az ilyen alkalmazások, csak az adott cégen belül telepíthetők redemption kódok segítségével.
App Sandboxing és Address space layout randomization (ASLR)
Minden alkalmazás elkülönítetten fut és elkülönítetten tárolja az adatait. Az app telepítésekor random generált azonosító adja meg az alkalmazás és adatai helyét a háttértáron. Az app indításakor random meghatározott memória területet kap az alkalmazás. Csak az iOS által biztosított funkciókon keresztül lehetséges az alkalmazások és OS funkciók közötti adatok átadása.
A Code Signing és az Entitlements biztosítja, hogy csak a szoftver kódjában megszabott alkalmazásokkal, alkalmazáscsoportokkal, vagy funkciókkal lehetséges adatcsere.
Entitlements és Extensions
Nem csak az alkalmazások és sandboxuk, hanem a kommunikációjuk is egyedi digitális aláírást kap az operációs rendszerben. Így egyértelműen szabályozható, melyik app, milyen funkciókkal és appokkal kommunikálhat. Az app tesztelés vizsgálja a szabályok korrekt kialakítást.
A személyes adatok elérését az alkalmazások között a felhasználó (vagy az IT üzemeltetés) ezen belül tilthatja, szabályozhatja.
Az alkalmazások funkcióit hasonlóan szabályozott, beépülő Extension alkalmazások tudják kibővíteni.
App Groups
Az alkalmazások nem csak egyenként azonosíthatóak. A fejlesztő definiálhat App Groupot az együttműködő alkalmazásai számára. Ezzel biztosíthat nekik
- közös területet a háttértáron,
- közös beállításokat a Preferencesben
- közösen használt jelszavakat, hulcsokat a Keychainben
Managed vs. Non managed
A központilag szabályozott appok, funkciók és adatok szigorúan elkülönülnek a többi, Non managed alkalmazástól, funkciótól és adattól. Ezzel megakadályozzák az információ szivárgás lehetőségét.
Ha mindezt egymás mellé tesszük, az iOS eszközökön nem tud ellenőrizetlen kód futni; a jól azonosítható és szabályozott alkalmazásokból esélytelen megszerezni információkat „idegen” alkalmazásokkal.
Persze mindez még kevés a biztonsághoz, ha az alkalmazások alatt az operációs rendszer, a hardver, vagy az adatátvitel törhető lenne. Illetve ha nincs jó központi management, vagy az kikerülhető lenne. A folytatásban ezek jellemzőivel fogunk foglalkozni.
Ugrás a következő cikkre: OS Security