Databeskyttelsesklasser
Når det opprettes en ny fil på enheter som støtter databeskyttelse, tilordnes den en klasse av appen som oppretter den. Hver klasse bruker ulike retningslinjer for å avgjøre når data er tilgjengelig. De grunnleggende klassene og retningslinjene er beskrevet nedenfor. Macer med Apple-chip støtter ikke klasse D: «Ingen beskyttelse», og det etableres en sikkerhetsgrense ved på- og avlogging (ikke låsing eller opplåsing som på iPhone og iPad).
Klasse | Beskyttelsestype |
---|---|
Klasse A: Komplett beskyttelse | NSFileProtectionComplete |
Klasse B: Beskyttet hvis de ikke er åpne | NSFileProtectionCompleteUnlessOpen |
Klasse C: Beskyttet fram til første brukerautentisering Merk: macOS bruker en volumnøkkel til å gjenskape FileVault-beskyttelsesegenskaper. | NSFileProtectionCompleteUntilFirstUserAuthentication |
Klasse D: Ingen beskyttelse Merk: Støttes ikke i macOS. | NSFileProtectionNone |
Komplett beskyttelse
NSFileProtectionComplete: Klassenøkkelen er beskyttet av en nøkkel avledet fra brukerkoden eller -passordet og enhetens UID. Kort tid etter at brukeren låser en enhet (10 sekunder hvis Krev passord-innstillingen er Umiddelbart), kastes den dekrypterte klassenøkkelen, som gjør alle dataene i denne klassen utilgjengelige før brukeren angir koden på nytt eller låser opp (logger på) enheten ved hjelp av Face ID eller Touch ID.
I macOS, kort tid etter at den siste brukeren er logget av, kastes den dekrypterte klassenøkkelen, som gjør alle dataene i denne klassen utilgjengelige frem til en bruker angir koden på nytt eller logger på enheten ved hjelp av Touch ID.
Beskyttet hvis de ikke er åpne
NSFileProtectionCompleteUnlessOpen: Det er mulig at noen filer må skrives mens enheten er låst eller når brukeren er logget av. Et godt eksempel på dette er et e-postvedlegg som lastes ned i bakgrunnen. Dette er det mulig å få til ved hjelp av asymmetrisk elliptisk kurve-kryptering (ECDH over Curve25519). Den vanlige filspesifikke nøkkelen er beskyttet av en nøkkel som er avledet med One-Pass Diffie-Hellman Key Agreement som beskrevet i NIST SP 800-56A.
Den kortvarige offentlige nøkkelen for avtalen lagres sammen med den innpakkede filspesifikke nøkkelen. KDF er Concatenation Key Derivation Function (Approved Alternative 1) som beskrevet i 5.8.1 i NIST SP 800-56A. AlgorithmID utelates. PartyUInfo og PartyVInfo er henholdsvis den kortvarige og den statiske offentlige nøkkelen. SHA256 brukes som hashing-funksjon. Med det samme filen lukkes, slettes den filspesifikke nøkkelen fra minnet. For å åpne filen igjen lages den delte hemmeligheten på nytt ved hjelp av den private nøkkelen for klassen «Beskyttet hvis de ikke er åpne» og filens kortvarige offentlige nøkkel, som brukes til å pakke ut den filspesifikke nøkkelen som igjen brukes til å dekryptere filen.
I macOS er den private delen av NSFileProtectionCompleteUnlessOpen tilgjengelig så lenge brukerne på systemet er pålogget eller autentisert.
Beskyttet fram til første brukerautentisering
NSFileProtectionCompleteUntilFirstUserAuthentication: Denne klassen oppfører seg på samme måte som «Komplett beskyttelse» med unntak av at den dekrypterte klassenøkkelen ikke fjernes fra minnet når enheten er låst eller brukeren er logget av. Beskyttelsen i denne klassen kan minne om volumkryptering for stasjonære enheter, og den beskytter data mot angrep som inkluderer omstart. Dette er standardklassen for alle appdata fra tredjeparter som ikke er tilordnet en annen databeskyttelsesklasse.
I macOS bruker denne klassen en volumnøkkel som er tilgjengelig så lenge volumet er aktivert, og oppfører seg akkurat som FileVault.
Ingen beskyttelse
NSFileProtectionNone: Denne klassenøkkelen beskyttes kun med UID-en og oppbevares i Effaceable Storage. Fordi alle nøklene som kreves for å dekryptere filer i denne klassen lagres på enheten, er den eneste fordelen med krypteringen rask fjernsletting. Hvis en fil ikke har fått tilordnet en databeskyttelsesklasse, lagres den likevel i kryptert form. (Det samme gjelder alle data på en iOS- og iPadOS-enhet.)
Dette støttes ikke i macOS.
Merk: I macOS, for volumer som ikke tilsvarer et oppstartet operativsystem, er alle databeskyttelsesklasser tilgjengelige så lenge volumet er aktivert. Standard databeskyttelsesklasse er NSFileProtectionCompleteUntilFirstUserAuthentication. Funksjonaliteten med filspesifikke nøkler er tilgjengelig for både Rosetta 2 og innebygde apper.