System ochrony danych iOS
W iOS są dwa systemy ochrony danych (Data Protection System). Device Encrypted Storage (DES) i Credential Storage (Keychain).
1. Device Encrypted Storage (DES).
- Mechanizm sprzętowego szyfrowania całego systemu plików, wbudowany w iOS.
- Oparty o UID Key + Secure Enclave + File Key + Class Key.
- Każdy plik jest chroniony przez system hierarchii kluczy.
- Właśnie na tym poziomie działa mechanizm "Data Protection Classes".
W ramach DES są 4 poziomy (klasy) ochrony danych (Data Protection Classes):
Każdy plik w systemie iOS może mieć przypisaną jedną z poniższych klas ochrony, które określają, kiedy dane mogą zostać odszyfrowane i udostępnione aplikacji. Mechanizm ten jest częścią Device Encrypted Storage (DES) i opiera się na hierarchii kluczy zarządzanych przez Secure Enclave.
| Klasa | Dostępność danych | Nazwa API |
|---|---|---|
| A | Tylko gdy urządzenie odblokowane | NSFileProtectionComplete |
| B | Dostępne, jeśli otwarte przed zablokowaniem | NSFileProtectionCompleteUnlessOpen |
| C | Dostępne po pierwszym odblokowaniu po reboocie | NSFileProtectionCompleteUntilFirstUserAuthentication |
| D | Zawsze dostępne, ale zaszyfrowane | NSFileProtectionNone |
Uwagi:
- Wszystkie dane są fizycznie zaszyfrowane, nawet w klasie D.
- Klasy A–C wymagają interakcji użytkownika (PIN, Face ID, Touch ID) do odszyfrowania.
- Domyślna klasa ochrony dla większości danych aplikacji to Class C.
2. Credential Storage (Keychain).
- Osobny, wysoko zabezpieczony kontener do przechowywania danych uwierzytelniających.
- Też używa Data Protection Classes, ale z dodatkowymi warstwami ochrony SEP: Kontrola biometryczna (Touch ID / Face ID), kSecAttrAccessControl, kSecAttrAccessible, ACL (Access Control List), Blokady typu „user presence required”
References
- Bezpieczeństwo aplikacji mobilnych (iOS) - Sekurak.Academy
27