![](https://help.apple.com/assets/6537FB06A074DBB5E802EA07/6537FB31280588A5490B6E1D/da_DK/52d714626638d3391623c853be0c593b.png)
Databeskyttelse af nøglering
Mange apps skal kunne håndtere adgangskoder og andre korte, men følsomme, datasekvenser, f.eks. nøgler og login-tokens. Med nøgleringen kan disse emner opbevares på en sikker måde. Apples operativsystemer bruger forskellige mekanismer til at håndhæve de garantier, der er knyttet til de forskellige klasser til beskyttelse af nøgleringen. I macOS (også på en Mac med Apple Silicon) bruges Databeskyttelse ikke direkte til at håndhæve disse garantier.
Oversigt
Emner i nøgleringen krypteres vha. to forskellige AES-256-GCM-nøgler: en tabelnøgle (metadata) og en rækkenøgle (hemmelig nøgle). Nøgleringsmetadata (alle attributter undtagen kSecValue) krypteres med metadatanøglen for at øge hastigheden ved søgninger, og den hemmelige værdi (kSecValueData) krypteres med den hemmelige nøgle. Metadatanøglen beskyttes af Secure Enclave, men indlæses i app-processorens buffer for at tillade hurtige nøgleringsforespørgsler. Den hemmelige nøgle kræver altid en rundtur gennem Secure Enclave.
Nøgleringen implementeres som en SQLite-database, der opbevares i arkivsystemet. Der er kun én database, og securityd
-dæmonen bestemmer, hvilke emner i nøgleringen hver proces eller app har adgang til. API’er til nøgleringsadgang afsender kald til dæmonen, som sender forespørgsler om appens værdi for berettigelserne “Keychain-access-groups”, “application-identifier” og “application-group”. Adgangsgrupper gør det muligt at dele emner i nøgleringen mellem apps, i stedet for at adgangen begrænses til en enkelt proces.
Emner i nøgleringen kan kun deles mellem apps fra samme udvikler. For at kunne dele emner i nøgleringen bruger apps fra tredjeparter adgangsgrupper med et præfiks, de har fået tildelt via Apple Developer Program i deres app-grupper. Præfikskravet og app-gruppernes forskellighed opretholdes ved hjælp af kodesignering, programprofiler og Apple Developer Program.
Data i nøgleringe beskyttes med en klassestruktur, som ligner den, der bruges til databeskyttelse af arkiver. Disse klassers funktionsmåde ligner den for klasserne til beskyttelse af arkivdata, men de bruger særlige nøgler og funktioner.
Tilgængelighed | Databeskyttelse af arkiver | Databeskyttelse af nøglering | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Når låst op | NSFileProtectionComplete | kSecAttrAccessibleWhenUnlocked | |||||||||
Når låst | NSFileProtectionComplete UnlessOpen | ||||||||||
Efter enheden er låst op første gang | NSFileProtectionComplete UntilFirstUserAuthentication | kSecAttrAccessibleAfterFirstUnlock | |||||||||
Altid | NSFileProtectionNone | kSecAttrAccessibleAlways | |||||||||
Kode slået til | kSecAttrAccessibleWhen PasscodeSetThisDeviceOnly |
Apps, som bruger opdateringstjenester i baggrunden, kan bruge kSecAttrAccessibleAfterFirstUnlock til emner i nøgleringen, der skal være adgang til under opdateringer i baggrunden.
Klassen kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly opfører sig på samme måde som kSecAttrAccessibleWhenUnlocked, men den er kun tilgængelig, når enheden er konfigureret med en kode. Denne klasse eksisterer kun i systemnøglesamlingen. Den:
Synkroniserer ikke til iCloud-nøgleringen
Sikkerhedskopieres ikke
Er ikke omfattet af depotnøglesamlinger
Hvis koden fjernes eller nulstilles, bliver emnerne ubrugelige, fordi klassenøglerne kasseres.
Andre nøgleringsklasser har en modpart af typen “Kun denne enhed”, hvor et emne altid beskyttes med UID, når det kopieres fra enheden under en sikkerhedskopiering, så det er ubrugeligt, hvis det gendannes på en anden enhed. Apple har nøje afvejet sikkerhed og anvendelighed og valgt nøgleringsklasser, som varierer afhængigt af den type oplysninger, der skal sikres, og det tidspunkt, hvor iOS og iPadOS har brug for dem.
Klassebeskyttelse til data i nøglering
De klassebeskyttelsesforanstaltninger, der er anført nedenfor, håndhæves for emner i nøgleringen:
Emne | Tilgængeligt |
---|---|
Wi-Fi-adgangskoder | Efter enheden er låst op første gang |
E-mailkonti | Efter enheden er låst op første gang |
Microsoft Exchange ActiveSync-konti | Efter enheden er låst op første gang |
VPN-adgangskoder | Efter enheden er låst op første gang |
LDAP, CalDAV, CardDAV | Efter enheden er låst op første gang |
Tokens til sociale netværkskonti | Efter enheden er låst op første gang |
Annonceringskrypteringsnøgler til Handoff | Efter enheden er låst op første gang |
iCloud-token | Efter enheden er låst op første gang |
iMessage-nøgler | Efter enheden er låst op første gang |
Adgangskode til deling i hjemmet | Når låst op |
Safari-adgangskoder | Når låst op |
Safari-bogmærker | Når låst op |
Finder-/iTunes-sikkerhedskopiering | Når låst op, ikke-flytbar |
VPN-certifikater | Efter enheden er låst op første gang, ikke-flytbar |
Bluetooth®-nøgler | Altid, ikke-flytbar |
Token for APNs (Apple Push Notification service) | Altid, ikke-flytbar |
Certifikater og privat nøgle til iCloud | Altid, ikke-flytbar |
PIN-kode til SIM | Altid, ikke-flytbar |
Token til Find | Altid |
Telefonsvarer | Altid |
I macOS er alle emner i nøgleringen, der installeres af konfigurationsprofiler, altid tilgængelige. I iOS og iPadOS er tilgængeligheden af emner i nøgleringen, der installeres af en konfigurationsprofil, forskellig afhængigt af deres type, måden, de refereres til, og hvornår de blev installeret. Som standard er emner i nøgleringen, der installeres vha. konfigurationsprofiler, tilgængelige efter første oplåsning og ikke-flytbare. Et emne i nøgleringen, der installeres vha. en konfigurationsprofil, er dog altid tilgængeligt, hvis det:
Blev installeret før opgradering til iOS 15, iPadOS 15 eller nyere versioner
Er et certifikat (ikke en identitet)
Er en identitet, der refereres til af
IdentityCertificateUUID
icom.apple.mdm
-data
Adgangskontrol for nøglering
Nøgleringe kan bruge adgangskontrollister (ACL'er) til at indstille strategier for tilgængelighed og godkendelseskrav. Emner kan fastlægge betingelser for brugerens tilstedeværelse ved at angive, at der ikke er adgang til emnerne, medmindre brugeren legitimerer sig vha. Face ID eller Touch ID eller ved at indtaste enhedens kode eller adgangskode. Adgang til emner kan også begrænses via en angivelse af, at Face ID- eller Touch ID-registreringen ikke er ændret, siden emnet blev tilføjet. Begrænsningen bidrager til at forhindre en person med ondsindede hensigter i at tilføje sit eget fingeraftryk for at få adgang til et emne i nøgleringen. Adgangskontrollister evalueres i Secure Enclave og frigives kun til kernen, hvis deres angivne betingelser er opfyldt.
Arkitektur med nøgleringe i macOS
macOS giver også adgang til nøgleringen, så brugernavne og adgangskoder, digitale identiteter, krypteringsnøgler og sikre noter kan opbevares praktisk og sikkert. Der kan opnås adgang ved at åbne appen Hovednøglering i /Apps/Hjælpeapps/. Når der bruges en nøglering, er det ikke længere nødvendigt at skrive – og heller ikke at huske – godkendelsesoplysningerne til hver enkelt ressource. Til hver Mac-bruger oprettes i starten en standardnøglering, men brugerne kan oprette andre nøgleringe til særlige formål.
Ud over nøgleringe til brugere benytter macOS en række nøgleringe på systemniveau til at vedligeholde godkendelsesaktiver, der ikke er brugerspecifikke, f.eks. godkendelsesoplysninger til netværk og PKI-identiteter (Public Key Infrastructure). En af disse nøgleringe, System Roots, er uforanderlig og opbevarer PKI-rodcertifikater fra en certifikatmyndighed til brug på internettet til almindelige opgaver som netbank og internethandel. På tilsvarende vis kan brugeren implementere certifikater fra en intern certifikatmyndighed (CA) på administrerede Mac-computere som hjælp til godkendelse af interne websteder og tjenester.