Kelas Perlindungan Data
Saat file baru dibuat di perangkat yang mendukung Perlindungan Data, file akan diberi kelas oleh app yang membuatnya. Setiap kelas menggunakan kebijakan yang berbeda untuk menentukan kapan data dapat diakses. Kelas dan kebijakan dasar dijelaskan di bagian berikut. Komputer Mac berbasis Apple silicon tidak mendukung Kelas D: Tidak Ada Perlindungan, dan batas keamanan dibangun di sekitar masuk dan keluar (bukan mengunci atau membuka seperti di iPhone dan iPad).
Kelas | Jenis perlindungan |
---|---|
Kelas A: Perlindungan Menyeluruh | NSFileProtectionComplete |
Kelas B: Dilindungi Kecuali Terbuka | NSFileProtectionCompleteUnlessOpen |
Kelas C: Dilindungi Hingga Pengesahan Pengguna Pertama Catatan: macOS menggunakan kunci volume untuk membuat ulang karakteristik perlindungan FileVault. | NSFileProtectionCompleteUntilFirstUserAuthentication |
Kelas D: Tidak Ada Perlindungan Catatan: Tidak didukung di macOS. | NSFileProtectionNone |
Perlindungan Menyeluruh
NSFileProtectionComplete: Kunci kelas dilindungi dengan kunci turunan dari kode sandi atau kata sandi pengguna dan UID perangkat. Tidak lama setelah pengguna mengunci perangkat (10 detik, jika pengaturan Memerlukan Kata Sandi adalah Segera), kunci kelas yang didekripsi dihapus, membuat semua data di kelas ini tidak dapat diakses hingga pengguna memasukkan kode sandi lagi atau membuka (masuk ke) perangkat dengan Face ID atau Touch ID.
Di macOS, tidak lama setelah pengguna terakhir keluar, kunci kelas yang didekripsi dihapus, membuat semua data di kelas ini tidak dapat diakses hingga pengguna memasukkan kode sandi lagi atau masuk ke perangkat menggunakan Touch ID.
Dilindungi Kecuali Terbuka
NSFileProtectionCompleteUnlessOpen: Beberapa file mungkin harus dituliskan saat perangkat dikunci atau pengguna keluar. Contohnya, lampiran email yang sedang diunduh di latar belakang. Perilaku ini dicapai dengan menggunakan kriptografi kurva eliptis (ECDH alih-alih Curve25519). Kunci per file yang biasa dilindungi oleh kunci yang diturunkan menggunakan Persetujuan Kunci Diffie-Hellman Satu Pass sebagaimana yang dijelaskan di NIST SP 800-56A.
Kunci publik jangka pendek untuk Persetujuan disimpan bersama kunci per file yang dibungkus. KDF adalah Fungsi Derivasi Kunci Rangkaian (Alternatif yang Disetujui 1) sebagaimana yang dijelaskan di 5.8.1 pada NIST SP 800-56A. AlgorithmID dihilangkan. PartyUInfo dan PartyVInfo masing-masing adalah kunci jangka pendek dan kunci publik statis. SHA256 digunakan sebagai fungsi hash. Segera setelah file ditutup, kunci per file akan dihapus dari memori. Untuk membuka file lagi, rahasia bersama dibuat ulang menggunakan kunci pribadi kelas Dilindungi Kecuali Terbuka dan kunci publik jangka pendek milik file, yang digunakan untuk membuka kunci per file yang kemudian digunakan untuk mendekripsi file.
Di macOS, bagian pribadi NSFileProtectionCompleteUnlessOpen dapat diakses selama pengguna apa pun di sistem masuk atau disahkan.
Dilindungi Hingga Pengesahan Pengguna Pertama
NSFileProtectionCompleteUntilFirstUserAuthentication: Kelas ini berfungsi dengan cara yang sama dengan Perlindungan Menyeluruh, kecuali bahwa kunci kelas yang didekripsi tidak dihapus dari memori saat perangkat dikunci atau pengguna keluar. Perlindungan di kelas ini memiliki properti yang mirip dengan enkripsi volume penuh desktop, dan melindungi data dari serangan yang melibatkan boot ulang. Ini adalah kelas default untuk semua data app pihak ketiga yang tidak ditetapkan ke kelas Perlindungan Data.
Di macOS, kelas ini menggunakan kunci volume yang dapat diakses asalkan volume dipasang, dan bertindak seperti FileVault.
Tidak Ada Perlindungan
NSFileProtectionNone: Kunci kelas ini hanya dilindungi dengan UID, dan disimpan di Penyimpanan Dapat Dihapus. Karena semua kunci yang diperlukan untuk mendekripsi file di kelas ini disimpan di perangkat, enkripsi hanya dapat memanfaatkan fitur penghapusan jarak jauh cepat. Jika file tidak diberi kelas Perlindungan Data, file masih akan disimpan dalam format yang dienkripsi (sebagaimana semua data di perangkat iOS dan iPadOS).
Ini tidak didukung di macOS.
Catatan: Di macOS, untuk volume yang tidak terkait dengan sistem operasi yang di-boot, semua kelas perlindungan data dapat diakses selama volume dipasang. Kelas perlindungan data default adalah NSFileProtectionCompleteUntilFirstUserAuthentication. Fungsionalitas kunci per area tersedia di Rosetta 2 dan app asli.