Pembuatan dan manajemen kunci penandatanganan LocalPolicy
Pembuatan
Saat macOS pertama kali diinstal di pabrik, atau saat hapus-instal tertambat dilakukan, Mac menjalankan kode dari disk RAM pemulihan sementara untuk memulai status default. Selama proses ini, lingkungan pemulihan membuat pasangan kunci publik dan pribadi baru yang disimpan di Secure Enclave. Kunci pribadi disebut sebagai Kunci Identitas Pemilik (OIK). Jika OIK sudah ada, OIK akan dihapus sebagai bagian dari proses ini. Lingkungan pemulihan juga memulai kunci yang digunakan untuk Kunci Aktivasi; Kunci Identitas Pengguna (UIK). Bagian proses tersebut yang unik bagi Mac dengan Apple silicon adalah saat sertifikasi UIK diminta untuk Kunci Aktivasi, sekumpulan batasan yang diminta untuk diberlakukan saat waktu validasi di LocalPolicy disertakan. Jika perangkat tidak dapat memperoleh UIK yang disertifikasi untuk Kunci Aktivasi (misalnya, karena perangkat saat ini diasosiasikan dengan akun Cari Mac Saya dan dilaporkan sebagai hilang), perangkat tidak dapat lanjut membuat Kebijakan Lokal. Jika perangkat diberikan Sertifikat Identitas Pengguna (ucrt), ucrt tersebut berisi batasan kebijakan yang diterapkan server dan batasan kebijakan yang diminta pengguna di ekstensi X.509 v3.
Saat berhasil didapatkan, Kunci Aktivasi/ucrt
disimpan di database di server dan juga dikembalikan ke perangkat. Setelah perangkat memiliki ucrt, permintaan sertifikasi untuk kunci publik yang terkait dengan OIK dikirim ke server Otoritas Pengesahan Dasar (BAA). BAA memverifikasi permintaan sertifikasi OIK menggunakan kunci publik dari ucrt yang disimpan di database yang dapat diakses oleh BAA. Jika BAA dapat memverifikasi sertifikasi, BAA menyertifikasi kunci publik, menghasilkan Sertifikat Identitas Pemilik (OIC) yang ditandatangani oleh BAA dan berisi batasan yang disimpan di ucrt. OIC dikirim kembali ke Secure Enclave. Dari saat itu, kapan pun Secure Enclave menandatangani LocalPolicy baru, Secure Enclave melampirkan OIC ke Image4. LLB memiliki kepercayaan internal di sertifikat dasar BAA, yang membuatnya memercayai OIC, yang lalu membuatnya memercayai tanda tangan LocalPolicy secara keseluruhan.
Batasan RemotePolicy
Semua file Image4, bukan hanya Kebijakan Lokal, berisi batasan di evaluasi manifes Image4. Batasan ini dikodekan menggunakan pengidentifikasi objek khusus (OID) di sertifikat ujung. Perpustakaan verifikasi Image4 mencari OID batasan sertifikat khusus dari sertifikat selama evaluasi tanda tangan, lalu secara mekanis mengevaluasi batasan yang ditetapkan di dalamnya. Batasan berupa:
X harus ada
X tidak boleh ada
X harus memiliki nilai tertentu
Misalnya, untuk tanda tangan yang “disesuaikan”, batasan sertifikat akan berisi “ECID harus ada”, dan untuk tanda tangan “global”, batasan akan berisi “ECID tidak boleh ada”. Batasan ini dirancang untuk memastikan bahwa semua file Image4 yang ditandatangani oleh kunci yang sesuai harus memenuhi persyaratan tertentu untuk menghindari kesalahan pembuatan manifes Image4 yang ditandatangani.
Pada konteks setiap LocalPolicy, batasan sertifikat Image4 ini dirujuk sebagai RemotePolicy. RemotePolicy yang berbeda dapat ada untuk LocalPolicies lingkungan boot yang berbeda. RemotePolicy digunakan untuk membatasi LocalPolicy recoveryOS sehingga saat di-boot, hanya dapat berperilaku layaknya di-boot dengan Keamanan Penuh. Ini meningkatkan kepercayaan pada integritas lingkungan boot recoveryOS sebagai tempat yang memungkinkan kebijakan diubah. RemotePolicy membatasi LocalPolicy agar tidak berisi ECID Mac tempat LocalPolicy dibuat, dan Hash Nonce Kebijakan Jarak Jauh (rpnh
) spesifik yang disimpan di Komponen Penyimpanan Aman di Mac tersebut. rpnh
, dan maka dari itu RemotePolicy, hanya diubah saat tindakan diambil untuk Cari Mac Saya dan Kunci Aktivasi—seperti pendaftaran, pembatalan pendaftaran, penguncian jarak jauh, dan penghapusan jarak jauh. Batasan Kebijakan Jarak Jauh ditetapkan dan ditentukan pada saat sertifikasi Kunci Identitas Pengguna (UIK) dan ditandatangani ke Sertifikat Identitas Pengguna (ucrt) yang diterbitkan. Beberapa batasan Kebijakan Jarak Jauh ditetapkan oleh server seperti ECID, ChipID, dan BoardID. Ini dirancang untuk mencegah suatu perangkat agar tidak menandatangani file LocalPolicy untuk perangkat lain. Batasan Kebijakan Jarak Jauh lain dapat ditentukan oleh perangkat untuk membantu mencegah penurunan Keamanan Kebijakan Lokal tanpa memberikan pengesahan lokal yang diperlukan untuk mengakses OIK saat ini dan pengesahan jarak jauh dari akun yang Dikunci Aktivasi oleh perangkat.