Databeskyttelsesklasser
Når der oprettes et nyt arkiv på enheder, der understøtter Databeskyttelse, tildeles det en klasse af den app, som opretter det. Hver klasse benytter forskellige strategier til at afgøre, hvornår der er adgang til dataene. De grundlæggende klasser og strategier er beskrevet i følgende afsnit. Apple Silicon-baserede Mac-computere understøtter ikke klasse D: Klassen Ingen beskyttelse og en sikkerhedsafgrænsning etableres, når der logges ind og ud (ikke ved låsning og oplåsning som på iPhone og iPad).
Klasse | Beskyttelsestype |
---|---|
Klasse A: Fuldstændig beskyttelse | NSFileProtectionComplete |
Klasse B: Beskyttet, hvis ikke åben | NSFileProtectionCompleteUnlessOpen |
Klasse C: Beskyttet indtil første brugergodkendelse Bemærk: macOS bruger en diskenhedsnøgle til at genskabe FileVaults beskyttelsesegenskaber. | NSFileProtectionCompleteUntilFirstUserAuthentication |
Klasse D: Ingen beskyttelse Bemærk: Understøttes ikke i macOS. | NSFileProtectionNone |
Fuldstændig beskyttelse
NSFileProtectionComplete: Klassenøglen beskyttes med en nøgle, der er afledt af brugerens kode eller adgangskode og enhedens UID. Kort efter at brugeren har låst en enhed (10 sekunder, hvis Bed om adgangskode er indstillet til Straks), kasseres den krypterede klassenøgle, hvorved adgangen til alle data i klassen fjernes, indtil brugeren indtaster koden igen eller låser enheden op (eller logger ind på enheden) ved hjælp af Face ID eller Touch ID.
I macOS kasseres den dekrypterede klassenøgle, kort tid efter at den sidste bruger er logget ud, hvorved adgangen til alle data i klassen fjernes, indtil en bruger indtaster koden igen eller logger ind på enheden ved hjælp af Touch ID.
Beskyttet, hvis ikke åben
NSFileProtectionCompleteUnlessOpen: Det kan være nødvendigt at skrive visse arkiver, mens enheden er låst, eller brugeren er logget ud. Et godt eksempel er et e-mailbilag, der hentes i baggrunden. Denne funktionsmåde opnås ved at bruge asymmetrisk elliptisk kurvekryptografi (ECDH over Curve25519). Den sædvanlige arkivnøgle beskyttes af en nøgle, der er dannet ved hjælp af en One-Pass Diffie-Hellman-nøgleaftale, som er beskrevet i NIST SP 800-56A.
Den midlertidige offentlige nøgle til aftalen opbevares sammen med den indpakkede arkivnøgle. KDF er Concatenation Key Derivation Function (godkendt alternativ 1) som beskrevet under 5.8.1 i NIST SP 800-56A. AlgorithmID er udeladt. PartyUInfo og PartyVInfo er henholdsvis den midlertidige og den statiske offentlige nøgle. SHA256 bruges som hashing-funktion. Så snart arkivet lukkes, slettes arkivnøglen fra hukommelsen. Når arkivet skal åbnes igen, oprettes nøglen (“shared secret”) igen ved hjælp af den private nøgle til klassen NSFileProtectionCompleteUnlessOpen (Beskyttet, hvis ikke åben) og arkivets midlertidige offentlige nøgle, som bruges til at pakke arkivnøglen ud. Derefter dekrypteres arkivet med arkivnøglen.
I macOS er den private del af NSFileProtectionCompleteUnlessOpen tilgængelig, så længe alle brugere i systemet er logget ind eller godkendt.
Beskyttet indtil første brugergodkendelse
NSFileProtectionCompleteUntilFirstUserAuthentication: Denne klasse fungerer på samme måde som NSFileProtectionComplete (Fuldstændig beskyttelse), bortset fra at den dekrypterede klassenøgle ikke fjernes fra hukommelsen, når enheden låses, eller brugeren logger ud. Beskyttelsen i denne klasse har stort set samme egenskaber som fuld diskbeskyttelse på skrivebordscomputere og beskytter data mod angreb, der omfatter genstart af enheden. Det er standardklassen til alle data i apps fra tredjeparter, som ikke er tildelt en anden databeskyttelsesklasse.
I macOS benytter denne klasse en diskenhedsnøgle, der er tilgængelig, så længe enheden er aktiveret, og fungerer præcis som FileVault.
Ingen beskyttelse
NSFileProtectionNone: Denne klassenøgle er kun beskyttet med UID og opbevares i Effaceable Storage. Eftersom alle de nøgler, der skal bruges til at dekryptere arkiver i denne klasse, opbevares på enheden, er den eneste fordel ved krypteringen, at enheden hurtigt kan slettes eksternt. Selvom et arkiv ikke tildeles en databeskyttelsesklasse, opbevares det stadig i krypteret format (det gælder alle data på iOS- og iPadOS-enheder).
Det understøttes ikke i macOS.
Bemærk: I macOS gælder, at for enheder, der ikke svarer til et startet operativsystem, er alle databeskyttelsesklasser tilgængelige, så længe enheden er aktiveret. Databeskyttelsesklassen NSFileProtectionCompleteUntilFirstUserAuthentication er standard. Funktioner til nøgler pr. område findes til både Rosetta 2 og lokale apps.