Tietojen suojauksen avainvarastot
Sekä tiedostojen että avainnipun Tietojen suojauksen luokkien avaimet kootaan avainvarastoihin niissä hallittaviksi iOS:ssä, iPadOS:ssä, tvOS:ssä ja watchOS:ssä. Nämä käyttöjärjestelmät käyttävät seuraavia avainvarastoja: käyttäjä, laite, varmuuskopio, vara-avain ja iCloud-varmuuskopio.
Käyttäjän avainvarasto
Käyttäjän avainvarastoon on tallennettu laitteen normaalikäytössä tarvittavat salatut luokka-avaimet. Esimerkiksi kun pääsykoodi syötetään, NSFileProtectionComplete ladataan käyttäjän avainvarastosta, ja sen salaus puretaan. Se on binäärinen ominaisuusluettelo (.plist) -tiedosto, joka on tallennettu Ei suojausta -luokkaan.
Laitteissa, joissa on A9-järjestelmäpiiriä vanhemmat järjestelmäpiirit, .plist-tiedoston sisältö on salattu avaimella, jota säilytetään pyyhittävässä tallennustilassa. Jotta suojausta voidaan välittää eteenpäin avainvarastoille, tämä avain poistetaan ja luodaan uudelleen joka kerta, kun käyttäjä muuttaa pääsykoodinsa.
Laitteissa, joissa on A9 tai uudempi järjestelmäpiiri, .plist-tiedosto sisältää avaimen, joka ilmoittaa, että avainvarasto on tallennettu lokeroon, jota suojaa Secure Enclaven hallitsema toiston estävä arvo.
Secure Enclave hallitsee käyttäjän avainvarastoa, ja siltä voidaan kysellä laitteen lukitustilaa. Se raportoi laitteen olevan lukitsematon vain, jos kaikki käyttäjän avainvaraston luokka-avaimet ovat käytettävissä ja ne on avattu onnistuneesti.
Laitteen avainvarasto
Laitteen avainvarastoon tallennetaan salatut luokka-avaimet, joita käytetään laitekohtaisiin tietoihin liittyviin toimintoihin. Jaettuun käyttöön määritetyt iPadOS-laitteet tarvitsevat joskus pääsyä tunnistetietoihin, ennen kuin kukaan käyttäjä on kirjautunut sisään. Siksi vaaditaan avainvarasto, jota ei ole suojattu käyttäjän pääsykoodilla.
iOS ja iPadOS eivät tue käyttäjäkohtaisen tiedostojärjestelmäsisällön kryptografista erottelua, minkä vuoksi järjestelmä salaa laitteen avainvaraston luokka-avaimien avulla tiedostokohtaiset avaimet. Avainnippu kuitenkin käyttää luokka-avaimia käyttäjän avainvarastosta käyttäjän avainnipun kohteiden suojaamiseksi. Yhden käyttäjän käytettäviksi määritetyissä iPhone- ja iPad-laitteissa (oletusmääritys) laitteen avainvarasto ja käyttäjän avainvarasto ovat sama varasto, ja niitä suojataan käyttäjän pääsykoodilla.
Varmuuskopion avainvarasto
Varmuuskopion avainvarasto luodaan, kun Finder (macOS 10.15:ssä tai uudemmassa) tai iTunes (macOS 10.14:ssä tai aiemmassa) tekee salatun varmuuskopion, ja se tallennetaan tietokoneelle, jolle laite varmuuskopioidaan. Luodaan uusi avainvarasto, jossa on uudet avaimet, ja sen jälkeen varmuuskopioidut tiedot salataan uudelleen näihin uusiin avaimiin. Kuten aiemmin kerrottiin, ei-siirrettävät avainnipun kohteet pysyvät salattuina UID:stä muodostetulla avaimella, jolloin ne voidaan palauttaa laitteeseen, josta ne alun perin varmuuskopioitiin, mutta jolloin niitä ei voida käyttää muissa laitteissa.
Avainvarastoa suojataan asetetulla salasanalla, ja se suoritetaan PBKDF2:n 10 miljoonalla toistolla. Suuresta toistomäärästä huolimatta sitä ei ole sidottu tiettyyn laitteeseen, ja siten useisiin tietokoneisiin samaan aikaan kohdistettua väsytyshyökkäystä voitaisiin teoreettisesti käyttää varmuuskopion avainvarastoon käsiin pääsemiseksi. Tätä uhkaa voidaan lieventää tarpeeksi vahvalla salasanalla.
Jos käyttäjä päättää olla salaamatta varmuuskopiota, varmuuskopiotiedostoja ei salata riippumatta niiden tietojen suojausluokasta, mutta avainnippu pysyy suojattuna UID:stä muodostetulla avaimella. Tämän vuoksi avainnipun kohteet siirtyvät uuteen laitteeseen vain, jos varmuuskopiolle on asetettu salasana.
Avainvarastotallenne
Avainvarastotallennetta käytetään synkronointiin Finderin kanssa (macOS 10.15 tai uudemmat) tai iTunesin kanssa (macOS 10.14 tai vanhemmat) USB:n kautta ja mobiililaitteiden hallintaan (MDM). Tämän avainvaraston avulla Finder tai iTunes voi varmuuskopioida ja synkronoida edellyttämättä, että käyttäjä syöttää pääsykoodin, ja sen ansiosta MDM-ratkaisu voi tyhjentää etänä käyttäjän pääsykoodin. Se on tallennettu tietokoneeseen, jota käytetään Finder- tai iTunes-synkronointiin, tai MDM-ratkaisuun, joka hallitsee laitetta etänä.
Avainvarastotallenne parantaa käyttökokemusta laitteen synkronoinnissa, jolloin mahdollisesti tarvitaan pääsy kaikkiin tietoluokkiin. Kun pääsykoodilla lukittu laite yhdistetään ensimmäistä kertaa Finderiin tai iTunesiin, käyttäjää kehotetaan syöttämään pääsykoodi. Laite luo sitten avainvarastotallenteen, jossa on samat luokka-avaimet, joita käytetään laitteessa ja jota suojataan äsken luodulla avaimella. Avainvarastotallenne ja sitä suojaava avain on jaettu laitteen ja isännän tai palvelimen välille siten, että tiedot on tallennettu laitteeseen Suojattu ensimmäiseen käyttäjän todentamiseen saakka -luokkaan. Tämän vuoksi laitteen pääsykoodi täytyy syöttää, ennen kuin käyttäjä varmuuskopioi Finderilla tai iTunesilla ensimmäistä kertaa uudelleenkäynnistyksen jälkeen.
Jos ohjelmistopäivitys ladataan langattomasti, käyttäjältä pyydetään pääsykoodia, kun päivitys aloitetaan. Tätä käytetään luomaan turvallisesti kertakäyttöinen avaustunniste, joka avaa käyttäjän avainvaraston päivityksen jälkeen. Tunnistetta ei voida luoda syöttämättä käyttäjän pääsykoodia, ja aiemmin luotu tunniste mitätöidään, jos käyttäjän pääsykoodi muuttuu.
Kertakäyttöiset avaustunnisteet on tarkoitettu joko ohjelmistopäivityksen valvottuun tai itsenäiseen asennukseen. Ne salataan avaimella, joka muodostetaan Secure Enclavessa olevan monotonisen laskurin nykyisestä arvosta, avainvaraston UUID:stä ja Secure Enclaven UID:stä.
A9-järjestelmäpiireissä (tai uudemmissa) kertakäyttöinen avaustunniste ei enää käytä laskureita tai pyyhittävää tallennustilaa. Sen sijaan sitä suojaa Secure Enclave, jota ohjaa toiston estävä arvo.
Valvottuihin ohjelmistopäivityksiin tarkoitettu kertakäyttöinen avaustunniste vanhenee 20 minuutissa. iOS 13:ssa ja iPadOS 13.1:ssä ja uudemmissa tunniste tallennetaan nyt Secure Enclaven suojaamaan lokeroon. Ennen iOS 13:a tämä tunniste vietiin Secure Enclavesta ja kirjoitettiin pyyhittävään tallennustilaan tai suojattiin Secure Enclaven uudelleentoiston estomekanismilla. Käytäntöajastin lisäsi laskurin lukemaa, jos laitetta ei uudelleenkäynnistetty 20 minuutin kuluessa.
Valvomattomia ohjelmistopäivityksiä tehdään, kun järjestelmä havaitsee, että päivitys on saatavilla, ja jokin seuraavista toteutuu:
Automaattiset päivitykset on määritetty käyttöön iOS 12:ssa (tai uudemmassa).
Käyttäjä valitsee Asenna myöhemmin, kun käyttäjälle ilmoitetaan päivityksestä.
Kun käyttäjä on syöttänyt pääsykoodinsa, luodaan kertakäyttöinen avaustunniste. Se voi pysyä voimassa Secure Enclavessa enintään 8 tuntia. Jos päivitystä ei ole vielä tehty, tämä kertakäyttöinen avaustunniste tuhotaan jokaisen lukituksen yhteydessä ja luodaan uudelleen aina seuraavan avauksen yhteydessä. Jokainen avaaminen aloittaa 8 tunnin aikaikkunan. Kahdeksan tunnin kuluttua käytäntöajastin mitätöi kertakäyttöisen avaustunnisteen.
iCloud-varmuuskopion avainvarasto
iCloud-varmuuskopion avainvarasto on samanlainen kuin varmuuskopion avainvarasto. Kaikki tämän avainvaraston luokka-avaimet ovat epäsymmetrisiä (käyttäen Curve25519:ää, kuten Suojattu ellei avoimena -tiedonsuojausluokka). Epäsymmetristä avainvarastoa käytetään myös suojaamaan varmuuskopioitua avainnippua iCloud-avainnipun palautusta varten.