Kanıtlama ilkesi sürüm 1.0
Örnek sahipleri, kanıtlama akışı sırasında neyin doğrulanması gerektiğini tanımlamak için Azure Doğrulama ilkesini kullanabilir. Bu makalede kanıtlama hizmetinin ve ilke altyapısının çalışmalarına yer verilmiştir. Her kanıtlama türünün kendi kanıtlama ilkesi vardır. Desteklenen dil bilgisi ve işleme genel olarak aynıdır.
İlke sürümü 1.0
Hizmet tarafından desteklenen ilkenin en düşük sürümü 1.0 sürümüdür.
Kanıtlama hizmeti akışı aşağıdaki gibidir:
- Platform, kanıtlama çağrısındaki kanıtlama kanıtını kanıtlama hizmetine gönderir.
- Kanıtlama hizmeti, kanıtı ayrıştırarak kanıtlama değerlendirmesinde kullanılan taleplerin listesini oluşturur. Bu talepler mantıksal olarak gelen talep kümeleri olarak kategorilere ayrılmıştır.
- Karşıya yüklenen kanıtlama ilkesi, kanıtlama ilkesinde yazılan kurallar üzerinde kanıtı değerlendirmek için kullanılır.
İlke sürüm 1.0 üç segmente sahiptir:
- sürüm: Sürüm, takip edilen dil bilgisinin sürüm numarasıdır.
- authorizationrules: Kanıtlamanın verme işlemlerine devam etmesi gerekip gerekmediğini belirlemek için önce denetlenen talep kuralları koleksiyonu. Verme kurallarının uygulanmasını gerektirmeyen çağrıları filtrelemek için bu bölümü kullanın. Bu bölümden yanıt belirtecine hiçbir talep verilemiyor. Bu kurallar kanıtlamanın başarısız olması için kullanılabilir.
- verme kuralları: İlkede tanımlandığı gibi kanıtlama sonucuna bilgi eklemek için değerlendirilen talep kuralları koleksiyonu. Talep kuralları tanımlanma sırasına göre uygulanır. Ayrıca isteğe bağlıdır. Bu kurallar, giden talep kümesine ve yanıt belirtecine eklemek için kullanılabilir. Bu kurallar kanıtlamayı başarısız yapmak için kullanılamaz.
Aşağıdaki talepler, gelen taleplerin bir parçası olarak ilke sürümü 1.0 tarafından desteklenir.
TPM kanıtlama
Güvenilen Platform Modülü (TPM) kanıtlama ilkesinde yetkilendirme kurallarını tanımlamak için şu talepleri kullanın:
- aikValidated: Kanıtlama kimlik anahtarı (AIK) sertifikası doğrulandıysa veya doğrulanmadıysa bilgileri içeren Boole değeri.
- aikPubHash: DER biçiminde base64 (SHA256) AIK ortak anahtarını içeren dize.
- tpmVersion: TPM ana sürümünü içeren tamsayı değeri.
- secureBootEnabled: Güvenli önyüklemenin etkinleştirilip etkinleştirilmediğini gösteren Boole değeri.
- iommuEnabled:Giriş-çıkış bellek yönetim biriminin etkinleştirilip etkinleştirilmediğini gösteren Boole değeri.
- bootDebuggingDisabled: Önyükleme hata ayıklamanın devre dışı bırakılıp bırakılmadığını gösteren Boole değeri.
- notSafeMode: Windows'un güvenli modda çalışıp çalışmadığını gösteren Boole değeri.
- notWinPE: Windows'un WinPE modunda çalışıp çalışmadığını gösteren Boole değeri.
- vbsEnabled: Sanallaştırma tabanlı güvenliğin (VBS) etkinleştirilip etkinleştirilmediğini gösteren Boole değeri.
- vbsReportPresent: VBS kapanım raporunun kullanılabilir olup olmadığını gösteren Boole değeri.
VBS kanıtlama
VBS kanıtlama ilkesinde yetkilendirme kurallarını tanımlamak için aşağıdaki talepleri kullanın:
- enclaveAuthorId: Kapanım yazar kimliğinin Base64Url kodlanmış değerini içeren dize değeri. Bu, kapanım için birincil modülün yazar tanımlayıcısıdır.
- enclaveImageId: Kapanım görüntüsü kimliğinin Base64Url kodlanmış değerini içeren dize değeri. Bu, kapanım için birincil modülün görüntü tanımlayıcısıdır.
- enclaveOwnerId: Kapanım sahibi kimliğinin Base64Url kodlanmış değerini içeren dize değeri. Bu, kapanım sahibinin tanımlayıcısıdır.
- enclaveFamilyId: Kapanım ailesi kimliğinin Base64Url kodlanmış değerini içeren dize değeri. Bu, kapanım için birincil modülün aile tanımlayıcısıdır.
- enclaveSvn: Kapanım için birincil modülün güvenlik sürüm numarasını içeren tamsayı değeri.
- enclavePlatformSvn: Kapanım barındıran platformun güvenlik sürüm numarasını içeren tamsayı değeri.
- enclaveFlags: enclaveFlags talebi, kapanım için çalışma zamanı ilkesini açıklayan bayraklar içeren bir tamsayı değeridir.
Çeşitli kanıtlama türleri için örnek ilkeler
TPM için örnek ilke:
version=1.0;
authorizationrules {
=> permit();
};
issuancerules
{
[type=="aikValidated", value==true]&&
[type=="secureBootEnabled", value==true] &&
[type=="bootDebuggingDisabled", value==true] &&
[type=="notSafeMode", value==true] => issue(type="PlatformAttested", value=true);
};