Tietojen suojausluokat
Kun Tietojen suojausta tukevassa laitteessa luodaan uusi tiedosto, tiedoston luonut appi määrittää sille luokan. Jokainen luokka määrittää erilaisilla käytännöillä, milloin tietoja voidaan käyttää. Seuraavissa osioissa kuvaillaan perusluokat ja -käytännöt. Apple silicon -pohjaiset Mac-tietokoneet eivät tue luokkaa D: Ei suojausta, ja suojaus muodostetaan sisään- ja uloskirjautumisen yhteydessä (ei lukittaessa tai lukitusta avattaessa kuten iPhonessa ja iPadissa).
Luokka | Suojaustyyppi |
---|---|
Luokka A: Täysi suojaus | NSFileProtectionComplete |
Luokka B: Suojattu ellei avoimena | NSFileProtectionCompleteUnlessOpen |
Luokka C: Suojattu ensimmäiseen käyttäjän todentamiseen saakka Huomaa: macOS luo taltioavaimen avulla FileVault-suojauksen ominaisuudet. | NSFileProtectionCompleteUntilFirstUserAuthentication |
Luokka D: Ei suojausta Huomaa: Ei tuettu macOS:ssä. | NSFileProtectionNone |
Täysi suojaus
NSFileProtectionComplete: Luokka-avain on suojattu avaimella, joka on johdettu käyttäjän pääsykoodista tai salasanasta ja laitteen UID:stä. Pian sen jälkeen, kun käyttäjä lukitsee laitteen (10 sekunnin kuluessa, jos Vaadi salasana -asetukseksi on asetettu Välittömästi), purettu luokka-avain poistetaan, jolloin mitään kyseisen luokan tietoja ei voida käyttää, ennen kuin käyttäjä syöttää pääsykoodinsa uudelleen tai avaa laitteen (kirjautuu siihen sisään) Face ID:llä tai Touch ID:llä.
Pian sen jälkeen, kun viimeinen käyttäjä on kirjautunut macOS:ssä ulos laitteelta, purettu luokka-avain poistetaan, jolloin mitään kyseisen luokan tietoja ei voida käyttää, ennen kuin joku käyttäjä taas syöttää pääsykoodinsa tai kirjautuu laitteeseen Touch ID:llä.
Suojattu ellei avoimena
NSFileProtectionCompleteUnlessOpen: Joitakin tiedostoja täytyy ehkä kirjoittaa, kun laite on lukittuna tai käyttäjä on kirjautunut ulos. Hyvä esimerkki tästä on sähköpostiliitteiden lataaminen taustalla. Tämä toiminta saadaan aikaan käyttämällä epäsymmetristä elliptisen käyrän salausta (ECDH over Curve25519). Tavallista tiedostokohtaista avainta suojataan avaimella, joka on johdettu käyttämällä yksivaiheista Diffie-Hellman-avaimen sopimista NIST SP 800-56A:ssa kuvatulla tavalla.
Sopimuksen lyhytaikainen julkinen avain tallennetaan yhdessä pakatun tiedostokohtaisen avaimen kanssa. Käytetty avaimen derivointifunktio (KDF) on ketjuavaimen derivointifunktio (Concatenation Key Derivation Function) (hyväksytty vaihtoehto 1), kuten on kuvattu osiossa 5.8.1 NIST SP 800-56A:ssa. AlgorithmID jää pois. PartyUInfo ja PartyVInfo ovat lyhytaikaisia ja staattisia julkisia avaimia. SHA256:ta käytetään hajautusfunktioon. Kun tiedosto suljetaan, tiedostokohtainen avain poistetaan muistista. Kun tiedosto avataan uudelleen, jaettu salaisuus luodaan uudelleen Suojattu ellei avoimena -luokan yksityisellä avaimella ja tiedoston lyhytaikaisella julkisella avaimella, joita käytetään purkamaan tiedostokohtainen avain, jota käytetään sitten tiedoston salauksen purkamiseen.
macOS:ssä NSFileProtectionCompleteUnlessOpen-avaimen yksityinen osa on käytettävissä niin kauan kun joku järjestelmän käyttäjistä on kirjautunut sisään tai todennettu.
Suojattu ensimmäiseen käyttäjän todentamiseen saakka
NSFileProtectionCompleteUntilFirstUserAuthentication: Tämä luokka toimii samalla tavalla kuin Täysi suojaus, paitsi että purettua luokka-avainta ei poisteta muistista, kun laite lukitaan tai käyttäjä kirjautuu ulos. Tämän luokan suojauksessa on samanlaisia ominaisuuksia kuin pöytätietokoneen koko taltion salauksessa, ja se suojaa tietoja hyökkäyksiltä, joihin liittyy uudelleenkäynnistys. Tämä on oletusluokka kaikille muiden valmistajien appitiedoille, joille ei ole määritetty tietojen suojausluokkaa.
macOS:ssä tämä luokka käyttää taltioavainta, joka on käytettävissä niin kauan kuin taltio on näkyvissä, ja se toimii aivan kuten FileVault.
Ei suojausta
NSFileProtectionNone: Tätä luokka-avainta suojaa vain UID, ja sitä säilytetään pyyhittävässä tallennustilassa. Koska kaikki avaimet, joita tarvitaan tämän luokan tiedostojen salauksen purkamiseen, on tallennettu laitteeseen, salauksesta on hyötyä vain nopeassa etätyhjennyksessä. Jos tiedostolle ei ole määritetty tietojen suojausluokkaa, se säilytetään silti salattuna (kuten kaikki tiedot iOS- ja iPadOS-laitteessa).
Tätä ei tueta macOS:ssä.
Huomaa: macOS:n taltioissa, jotka eivät vastaa käynnistettyä käyttöjärjestelmää, kaikkiin tietojen suojausluokkiin pääsee niin kauan kuin taltio on näkyvissä. Tietojen oletussuojausluokka on NSFileProtectionCompleteUntilFirstUserAuthentication. Tilakohtainen avaintoiminta on käytettävissä sekä Rosetta 2- että natiiviapeille.