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.

KlasaDostępność danychNazwa API
ATylko gdy urządzenie odblokowaneNSFileProtectionComplete
BDostępne, jeśli otwarte przed zablokowaniemNSFileProtectionCompleteUnlessOpen
CDostępne po pierwszym odblokowaniu po reboocieNSFileProtectionCompleteUntilFirstUserAuthentication
DZawsze dostępne, ale zaszyfrowaneNSFileProtectionNone

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