LocalPolicy imzalama anahtarı yaratma ve yönetme
Yaratma
macOS ilk kez fabrikada yüklendiğinde veya paylaşımlı silip yükleme işlemi gerçekleştirildiğinde Mac, saptanmış durumu ilklendirmek için geçici geri yükleme RAM’inden bir kod çalıştırır. Bu işlem sırasında geri yükleme ortamı, Secure Enclave’de tutulan yeni bir açık ve gizli anahtar çifti yaratır. Gizli anahtar Sahip Kimliği Anahtarı (OIK) olarak adlandırılır. Önceden var olan OIK’ler bu işlemin bir parçası olarak yok edilir. Geri yükleme ortamı, Etkinleştirme Kilidi için kullanılan anahtarı da sıfırlar: Kullanıcı Kimliği Anahtarı (UIK). Bu işlemin Apple Silicon yongalı Mac’e özgü kısmı, Etkinleştirme Kilidi için UIK sertifikası istendiğinde LocalPolicy’de doğrulama zamanında zorunlu tutulması istenen bir grup kısıtlamanın dahil edilmesidir. Aygıt, Etkinleştirme Kilidi için bir UIK alamazsa (örneğin aygıt o anda bir Mac’imi Bul hesabıyla ilişkiliyse ve kayıp olarak belirtilmişse) bir Yerel Politika yaratmak için daha fazla ilerleyemez. Aygıta bir Kullanıcı Kimliği Sertifikası (ucrt) verilmişse bu ucrt, sunucu tarafından dayatılan politika kısıtlamalarını ve kullanıcı tarafından istenen politika kısıtlamalarını bir X.509 v3 genişletmesinde içerir.
Başarılı bir şekilde alınan Etkinleştirme Kilidi/ucrt
, sunucu tarafındaki bir veri tabanında saklanır ve aygıta da geri verilir. Aygıt bir ucrt aldıktan sonra, Temel Onay Otoritesi (BAA) sunucusuna OIK’ye karşılık gelen açık anahtar için bir sertifika isteği gönderilir. BAA, OIK sertifika isteğini BAA tarafından erişilebilen bir veri tabanında saklanan ucrt’teki açık anahtarı kullanarak doğrular. BAA sertifikayı doğrulayabilirse açık anahtarı onaylar ve BAA tarafından imzalanan ve ucrt’te saklanan kısıtlamaları içeren Sahip Kimliği Sertifikası’nı (OIC) geri döndürür. Bu OIC, Secure Enclave’e geri gönderilir. Bundan sonra Secure Enclave yeni bir LocalPolicy’yi her imzaladığında bu OIC’yi Image4 dosyasına iliştirir. LLB’de BAA kök sertifikasına yerleşik güven vardır; bu da OIC’ye ve dolayısıyla genel LocalPolicy imzasına güvenilmesine neden olur.
RemotePolicy kısıtlamaları
Yalnızca yerel politikalar değil, tüm Image4 dosyaları, Image4 bildirisi değerlendirmesiyle ilgili kısıtlamalar içerir. Bu kısıtlamalar, kullanıcı sertifikasındaki özel nesne tanıtıcıları (OID’ler) kullanılarak kodlanır. Image4 doğrulama arşivi imza değerlendirme sırasında bir sertifikadan özel sertifika kısıtlama OID’sini arar ve daha sonra da içinde belirtilen kısıtlamaları mekanik olarak değerlendirir. Kısıtlamalar şu biçimdedir:
X var olmalıdır
X var olmamalıdır
X belirli bir değere sahip olmalıdır
Bu nedenle, örneğin sertifika kısıtlamaları, “kişiselleştirilmiş” imzalar için “ECID var olmalıdır”, “genel” imzalar içinse “ECID var olmamalıdır” kısıtlamasını içerir. Bu kısıtlamalar, verilen bir anahtar tarafından imzalanan tüm Image4 dosyalarının yanlış imzalı Image4 bildirisi oluşturmaktan kaçınmak amacıyla belirli gereksinimlere uymasını sağlamak için tasarlanmıştır.
LocalPolicy bağlamında, bu Image4 sertifika kısıtlamalarına RemotePolicy denir. Farklı başlatma ortamlarının LocalPolicy’leri için farklı bir RemotePolicy bulunabilir. RemotePolicy, recoveryOS LegalPolicy’sini sınırlamak için kullanılır, böylece recoveryOS başlatıldığında yalnızca Tam Güvenlik ile başlatılıyormuş gibi davranır. Bu, politikanın değiştirilebileceği bir yer olarak recoveryOS başlatma ortamının bütünlüğüne olan güveni artırır. RemotePolicy, LocalPolicy’yi oluşturulduğu Mac’in ECID’sini ve o Mac’teki güvenli saklama alanı bileşeninde saklanan belirli bir Uzaktaki Politika Nonce Özeti’ni (rpnh
) içerecek şekilde sınırlar. rpnh
ve dolayısıyla RemotePolicy; yalnızca Mac’imi Bul ve Etkinleştirme Kilidi için eylemler (kayıt, kaydı silme, uzaktan kilitleme ve uzaktan silme gibi) gerçekleştirildiğinde değişir. Uzaktaki Politika kısıtlamaları, Kullanıcı Kimliği Anahtarı (UIK) sertifikası verme zamanında belirlenip belirtilir ve verilen Kullanıcı Kimliği Sertifikası’na (ucrt) girilir. ECID, ChipID ve BoardID gibi bazı Uzaktaki Politika kısıtlamaları sunucu tarafından belirlenir. Bu, bir aygıtın başka bir aygıtın LocalPolicy dosyalarını imzalamasını engellemek için tasarlanmıştır. Hem şu anki OIK’ye erişmek için gereken yerel kimlik doğrulama hem de aygıtın Etkinleştirme Kilidi ile kilitlendiği hesabın uzaktaki kimlik doğrulaması sağlanmadan Yerel Politika’nın güvenlik modunun düşürülmesini engellemeye yardımcı olmak için aygıt tarafından başka Uzaktaki Politika kısıtlamaları belirtilebilir.