Dataskyddsklasser
När en ny fil skapas på enheter med stöd för dataskydd tilldelas den en klass av den app som skapar den. Varje klass har olika policyer för att avgöra när informationen i filen är tillgänglig. De grundläggande klasserna och policyerna beskrivs nedan. Apple Silicon-baserade Mac-datorer stöder inte Klass D: No Protection och en säkerhetsgräns upprättas runt in- och utloggning (inte låsning eller upplåsning som på iPhone och iPad).
Klass | Skyddstyp |
---|---|
Klass A: Complete Protection | NSFileProtectionComplete |
Klass B: Protected Unless Open | NSFileProtectionCompleteUnlessOpen |
Klass C: Protected Until First User Authentication Obs! macOS använder en volymnyckel till att återskapa egenskaperna för FileVault-skydd. | NSFileProtectionCompleteUntilFirstUserAuthentication |
Klass D No Protection Obs! Stöds inte i macOS. | NSFileProtectionNone |
Complete Protection
NSFileProtectionComplete: Klassnyckeln skyddas av en nyckel som härleds ur användarens lösenkod eller lösenord och enhetens UID. Strax efter att användaren har låst enheten (tio sekunder om inställningen Kräv lösenkod är Direkt) kastas den avkrypterade klassnyckeln. Det innebär att inga data i klassen går att komma åt förrän användaren anger lösenkoden igen eller låser upp (loggar in på) enheten med Face ID eller Touch ID.
Strax efter att den sista användaren loggat ut från macOS kastas den avkrypterade klassnyckeln. Det innebär att inga data i klassen går att komma åt förrän en användare anger lösenkoden igen eller loggar in på enheten med Touch ID eller Face ID.
Protected Unless Open
NSFileProtectionCompleteUnlessOpen: En del filer kanske måste skrivas medan enheten är låst eller när användaren inte är inloggad. Ett bra exempel är en e-postbilaga som hämtas i bakgrunden. Detta beteende uppnås genom att använda asymmetrisk kryptering med elliptiska kurvor (ECDH över Curve25519). Den vanliga filnyckeln skyddas av en nyckel som härleds genom One-Pass Diffie-Hellman Key Agreement enligt beskrivningen i NIST SP 800-56A.
Den tillfälliga publika nyckeln för överenskommelsen lagras tillsammans med den paketerade filnyckeln. KDF är Concatenation Key Derivation Function (Approved Alternative 1) enligt beskrivningen i 5.8.1 i NIST SP 800-56A. AlgorithmID utelämnas. PartyUInfo och PartyVInfo är den tillfälliga respektive den statiska publika nyckeln. SHA256 används som hashfunktion. Så fort filen stängs raderas filnyckeln från minnet. När filen ska öppnas igen återskapas den delade hemligheten med hjälp av den privata nyckeln till klassen Protected Unless Open och filens tillfälliga publika nyckel. Dessa används till att packa upp filnyckeln som i sin tur används till att avkryptera filen.
I macOS är den privata delen av NSFileProtectionCompleteUnlessOpen åtkomlig så länge någon användare på systemet är inloggad eller har autentiserat sig.
Protected Until First User Authentication
NSFileProtectionCompleteUntilFirstUserAuthentication: Den här klassen uppträder på samma sätt som Complete Protection, förutom att den avkrypterade klassnyckeln inte raderas från minnet när enheten låses eller användaren loggar ut. Skyddet i den här klassen har egenskaper som liknar kryptering av hela enheter på en dator och skyddar mot angrepp som innefattar en omstart. Det här är den förvalda klassen för alla data som tillhör tredjepartsappar och inte har tilldelats någon annan dataskyddsklass.
I macOS använder den här klassen en volymnyckel som är tillgänglig så länge som volymen är inlänkad och fungerar precis som FileVault.
No Protection
NSFileProtectionNone: Den här klassnyckeln skyddas endast med UID:t och förvaras i det raderingsbara lagringsutrymmet. Eftersom alla nycklar som behövs för att avkryptera filer i den här klassen förvaras på enheten ger kryptering bara den fördelen att fjärradering går snabbt. Om en fil inte har tilldelats någon dataskyddsklass sparas den ändå i krypterad form (precis som alla andra data på en iOS- och iPadOS-enhet).
Detta stöds inte i macOS.
Obs! För volymer i macOS som inte motsvarar ett startat operativsystem är alla dataskyddsklasser åtkomliga så länge volymen är inlänkad. Den förvalda dataskyddsklassen är NSFileProtectionCompleteUntilFirstUserAuthentication. Filextentnycklar fungerar för både Rosetta 2 och inbyggda appar.