Perlindungan Data di perangkat Apple
Di perangkat Apple dengan Perlindungan Data, setiap file dilindungi dengan kunci per file (atau per area) unik. Kunci, yang dibungkus menggunakan algoritme pembungkusan kunci NIST AED, dibungkus lebih jauh dengan salah satu kunci kelas, tergantung bagaimana file akan diakses. Kunci per file yang dibungkus lalu disimpan di metadata file.
Perangkat dengan format APFS dapat mendukung klon file (salinan bebas memori menggunakan teknologi penyalinan saat penulisan). Jika file diklon, setiap setengah klon mendapatkan kunci baru untuk menerima penulisan masuk sehingga data baru dituliskan ke media dengan kunci baru. Seiring berjalannya waktu, file dapat berisi berbagai area (atau potongan), masing-masing dipetakan ke kunci yang berbeda. Namun demikian, semua area yang terdiri dari file akan dilindungi oleh kunci dengan kelas yang sama.
Saat file dibuka, metadatanya akan didekripsi dengan kunci sistem file, mengungkapkan kunci per file yang dibungkus dan catatan mengenai kelas mana yang melindunginya. Pembungkusan kunci per file (atau per area) dibuka dengan kunci kelas, lalu dipasok ke Mesin AES perangkat keras, yang mendekripsi file saat file dibaca dari penyimpanan kilat. Semua penanganan kunci file yang dibungkus dilakukan di Secure Enclave; kunci file tidak pernah dipaparkan secara langsung ke Prosesor Aplikasi. Pada saat mulai, Secure Enclave menegosiasikan kunci jangka pendek dengan Mesin AES. Saat Secure Enclave membuka bungkus kunci file, kunci dibungkus kembali dengan kunci jangka pendek dan dikirimkan kembali ke Prosesor Aplikasi.
Metadata semua file di sistem file volume data dienkripsi dengan kunci volume acak, yang dibuat saat sistem operasi diinstal untuk pertama kalinya atau saat perangkat dihapus oleh pengguna. Kunci ini dienkripsi dan dibungkus oleh key wrapping key yang hanya diketahui oleh Secure Enclave untuk penyimpanan jangka panjang. Key wrapping key berubah setiap kali pengguna menghapus perangkat mereka. Pada SoC A9 (dan lebih baru), Secure Enclave mengandalkan entropi, dicadangkan oleh sistem anti pemutaran ulang, untuk mengaktifkan kemampuan untuk dihapus dan melindungi key wrapping key-nya, di antara aset lainnya. Untuk informasi lainnya, lihat Penyimpanan non-volatil aman.
Seperti kunci per file atau per area, kunci metadata volume data tidak pernah dipaparkan secara langsung ke Prosesor Aplikasi, sebagai gantinya, Secure Enclave menyediakan versi jangka pendek untuk setiap boot. Saat disimpan, kunci sistem file yang dienkripsi juga dibungkus oleh “kunci yang dapat dihapus” yang disimpan di Penyimpanan yang Dapat Dihapus atau oleh menggunakan key wrapping key media, yang dilindungi oleh mekanisme anti-pemutaran ulang Secure Enclave. Kunci ini tidak menyediakan kerahasiaan tambahan bagi data. Sebagai gantinya, kunci dirancang untuk dihapus dengan cepat saat diminta (oleh pengguna dengan pilihan Hapus Semua Konten & Pengaturan, atau oleh pengguna atau administrator yang menggunakan perintah penghapusan jarak jauh dari solusi mobile device management (MDM), Microsoft Exchange ActiveSync, atau iCloud). Jika kunci dihapus dengan cara ini, semua file akan menjadi tidak dapat diakses secara kriptografis.
Konten file mungkin dienkripsi dengan satu atau beberapa kunci per file (atau per area), yang dibungkus dengan kunci kelas dan disimpan di metadata file, yang pada gilirannya dienkripsi dengan kunci sistem file. Kunci kelas dilindungi dengan UID perangkat keras dan, untuk beberapa kelas, dengan kode sandi pengguna. Hierarki ini memberikan fleksibilitas dan kinerja. Misalnya, pengubahan kelas file hanya memerlukan pembungkusan ulang kunci per file-nya, dan perubahan kode sandi hanya membungkus ulang kelas kunci.