
เนื้อหาของไฟล์ LocalPolicy สำหรับ Mac ที่ใช้ Apple Silicon
LocalPolicy คือไฟล์ Image4 ที่ลงชื่อด้วย Secure Enclave Image4 อยู่ในรูปแบบโครงสร้างข้อมูลที่เข้ารหัส ASN.1 (Abstract Syntax Notation One) DER ซึ่งใช้สำหรับอธิบายข้อมูลเกี่ยวกับวัตถุลำดับการบูตอย่างปลอดภัยบนแพลตฟอร์ม Apple ในโมเดลการบูตอย่างปลอดภัยที่ใช้ Image4 ระบบจะขอนโยบายความปลอดภัยเมื่อเริ่มการติดตั้งซอฟต์แวร์โดยคำขอการลงชื่อไปยังเซิร์ฟเวอร์การลงชื่อส่วนกลางของ Apple ถ้านโยบายเป็นที่ยอมรับ เซิร์ฟเวอร์การลงชื่อจะส่งกลับไฟล์ Image4 ที่ลงชื่อ ซึ่งประกอบด้วยรหัสอักขระสี่ตัว (4CC) ที่หลากหลาย โดยไฟล์ Image4 ที่ลงชื่อและ 4CC เหล่านี้จะได้รับการประเมินเมื่อเริ่มต้นระบบโดยซอฟต์แวร์ เช่น Boot ROM หรือ LLB
การส่งต่อความเป็นเจ้าของระหว่างระบบปฏิบัติการต่างๆ
การเข้าถึง Owner Identity Key (OIK) เรียกว่า “ความเป็นเจ้าของ” ความเป็นเจ้าของเป็นสิ่งจำเป็นที่ทำให้ผู้ใช้สามารถลงชื่อ LocalPolicy อีกครั้งหลังจากเปลี่ยนแปลงนโยบายหรือซอฟต์แวร์ได้ OIK ได้รับการปกป้องด้วยลำดับชั้นกุญแจเดียวกันกับที่อธิบายใน Sealed Key Protection (SKP) โดยที่ OIK ได้รับการปกป้องด้วยกุญแจการเข้ารหัสกุญแจ (KEK) แบบเดียวกันกับกุญแจการเข้ารหัสดิสก์โวลุ่ม (VEK) ซึ่งหมายความว่าโดยปกติแล้วกุญแจจะได้รับการปกป้องจากทั้งรหัสผ่านของผู้ใช้และการวัดของระบบปฏิบัติการและนโยบาย ระบบปฏิบัติการทั้งหมดบน Mac มี OIK เพียงรายการเดียวเท่านั้น ดังนั้น เมื่อติดตั้งระบบปฏิบัติการที่สอง ผู้ใช้บนระบบปฏิบัติการแรกจะต้องให้การยินยอมอย่างชัดแจ้งเพื่อส่งต่อความเป็นเจ้าของให้กับผู้ใช้บนระบบปฏิบัติการที่สอง อย่างไรก็ตาม ยังไม่มีผู้ใช้สำหรับระบบปฏิบัติการที่สองเมื่อตัวติดตั้งทำงานจากระบบปฏิบัติการแรก โดยปกติแล้ว ผู้ใช้ในระบบปฏิบัติการจะไม่ถูกสร้างขึ้นจนกว่าจะมีการบูตระบบปฏิบัติการและผู้ช่วยตั้งค่าทำงานอยู่ การทำงานใหม่สองรายการที่ต้องใช้เมื่อติดตั้งระบบปฏิบัติการที่สองบน Mac ที่ใช้ Apple Silicon:
การสร้าง LocalPolicy สำหรับระบบปฏิบัติการที่สอง
การเตรียม “ติดตั้งผู้ใช้” เพื่อส่งต่อความเป็นเจ้าของ
เมื่อเรียกใช้ผู้ช่วยติดตั้งและกำหนดเป้าหมายการติดตั้งสำหรับดิสก์โวลุ่มที่สองที่ว่างเปล่า การแจ้งจะถามผู้ใช้ว่าต้องการคัดลอกผู้ใช้จากดิสก์โวลุ่มปัจจุบันไปเป็นผู้ใช้คนแรกของดิสก์โวลุ่มที่สองหรือไม่ ถ้าผู้ใช้ตอบตกลง “ติดตั้งผู้ใช้” ที่ถูกสร้างขึ้น แท้จริงแล้วจะเป็น KEK ซึ่งมาจากรหัสผ่านของผู้ใช้ที่เลือกอยู่และกุญแจฮาร์ดแวร์ ซึ่งต่อมาจะถูกใช้เพื่อเข้ารหัส OIK ขณะที่ถูกส่งไปยังระบบปฏิบัติการที่สอง จากนั้นจากภายในผู้ช่วยติดตั้งของระบบปฏิบัติการที่สอง กุญแจจะร้องขอรหัสผ่านของผู้ใช้คนนั้น เพื่อให้สามารถเข้าถึง OIK ใน Secure Enclave สำหรับระบบปฏิบัติการใหม่ได้ ถ้าผู้ใช้เลือกที่จะไม่คัดลอกผู้ใช้ ติดตั้งผู้ใช้จะยังคงถูกสร้างในลักษณะเดียวกัน แต่จะมีการใช้รหัสผ่านที่ว่างเปล่าแทนรหัสผ่านของผู้ใช้ วิธีการที่สองนี้จะเกิดขึ้นในสถานการณ์การจัดการระบบบางสถานการณ์ อย่างไรก็ตาม ผู้ใช้ที่ต้องการติดตั้งในหลายดิสก์โวลุ่มและต้องการดำเนินการส่งต่อความเป็นเจ้าของด้วยวิธีการที่ปลอดภัยที่สุดควรเลือกที่จะคัดลอกผู้ใช้จากระบบปฏิบัติการแรกไปยังระบบปฏิบัติการที่สองเสมอ
LocalPolicy บน Mac ที่ใช้ Apple Silicon
สำหรับ Mac ที่ใช้ Apple Silicon การควบคุมนโยบายความปลอดภัยภายในเครื่องได้ถูกมอบหมายไปยังแอปพลิเคชันที่ทำงานใน Secure Enclave ซอฟต์แวร์นี้สามารถใช้เอกสารสิทธิ์ของผู้ใช้และโหมดการบูตของ CPU หลักเพื่อกำหนดคนที่จะสามารถเปลี่ยนนโยบายความปลอดภัยและเปลี่ยนจากสภาพแวดล้อมการบูตแบบใดได้ กระบวนการนี้จะช่วยป้องกันไม่ให้ซอฟต์แวร์ที่ประสงค์ร้ายใช้การควบคุมนโยบายความปลอดภัยกับผู้ใช้โดยดาวน์เกรดการควบคุมเพื่อเพิ่มสิทธิ์มากขึ้นได้
คุณสมบัติรายการ LocalPolicy
ไฟล์ LocalPolicy ประกอบด้วย 4CC ในเชิงสถาปัตยกรรมบางรายการที่พบได้ในไฟล์ Image4 ส่วนใหญ่ทั้งหมด เช่น ID บอร์ดหรือโมเดล (BORD), การบ่งชี้ชิปของ Apple โดยเฉพาะ (CHIP) หรือ Exclusive Chip Identification (ECID) แต่ 4CC ที่อยู่ด้านล่างมุ่งเน้นเฉพาะนโยบายความปลอดภัยที่ผู้ใช้สามารถกำหนดค่าได้
หมายเหตุ: Apple ใช้คำว่า Paired One True recoveryOS (1TR) เพื่อระบุการบูตเข้าสู่ recoveryOS ที่จับคู่แล้วโดยใช้ปุ่มเปิด/ปิดทางกายภาพแบบกดครั้งเดียวค้างไว้ ซึ่งแตกต่างจากการบูต recoveryOS ปกติซึ่งเกิดขึ้นโดยใช้ NVRAM หรือการกดสองครั้งค้างไว้ หรืออาจเกิดขึ้นเมื่อเกิดข้อผิดพลาดในการเริ่มต้นระบบ การกดปุ่มทางกายภาพบางลักษณะจะช่วยเพิ่มความมั่นใจว่าสภาพแวดล้อมการบูตไม่สามารถเข้าถึงได้โดยผู้โจมตีเฉพาะซอฟต์แวร์ที่บุกเข้ามาใน macOS
แฮช Nonce ของ LocalPolicy (lpnh)
ประเภท: OctetString (48)
สภาพแวดล้อมที่ผันแปรได้: 1TR, recoveryOS, macOS
คำอธิบาย:
lpnh
ใช้สำหรับป้องกันการเล่นซ้ำของ LocalPolicy นี่คือแฮช SHA384 ของ LocalPolicy Nonce (LPN) ซึ่งจัดเก็บอยู่ในส่วนประกอบพื้นที่จัดเก็บข้อมูลอย่างปลอดภัย และสามารถเข้าถึงได้โดยใช้ Secure Enclave Boot ROM หรือ Secure Enclave หน่วยประมวลผลแอปพลิเคชันไม่สามารถมองเห็น Nonce แบบดิบ มีเพียง sepOS เท่านั้นที่มองเห็นได้ ผู้โจมตีที่ต้องการโน้มน้าว LLB ว่า LocalPolicy ที่ผู้โจมตีบันทึกไว้ก่อนหน้านี้ถูกต้องจะต้องวางค่าลงในส่วนประกอบพื้นที่จัดเก็บข้อมูลอย่างปลอดภัย ซึ่งจะแฮชเป็นค่าlpnh
เดียวกันที่พบใน LocalPolicy ที่ต้องการเล่นซ้ำ โดยปกติแล้วจะมี LPN เพียงรายการเดียวที่ถูกต้องบนระบบ ยกเว้นในระหว่างการอัปเดตซอฟต์แวร์ ซึ่งจะมี LPN สองรายการที่มีความถูกต้องพร้อมกันเพื่อให้มีโอกาสในการกลับไปยังการบูตซอฟต์แวร์เดิมในกรณีที่เกิดข้อผิดพลาดในการอัปเดต เมื่อ LocalPolicy สำหรับระบบปฏิบัติการใดๆ มีการเปลี่ยนแปลง นโยบายทั้งหมดจะถูกลงชื่อใหม่ด้วยค่า lpnh ใหม่ที่สอดคล้องกับ LPN ใหม่ที่พบในส่วนประกอบพื้นที่จัดเก็บข้อมูลอย่างปลอดภัย การเปลี่ยนแปลงนี้เกิดขึ้นเมื่อผู้ใช้เปลี่ยนการตั้งค่าความปลอดภัยหรือสร้างระบบปฏิบัติการใหม่ที่มี LocalPolicy สำหรับแต่ละระบบ
แฮช Nonce ของนโยบายระยะไกล (rpnh)
ประเภท: OctetString (48)
สภาพแวดล้อมที่ผันแปรได้: 1TR, recoveryOS, macOS
คำอธิบาย:
rpnh
นี้จะทำงานเหมือนกับlpnh
แต่จะได้รับการอัปเดตเฉพาะเมื่อนโยบายระยะไกลได้รับการอัปเดต เช่น เมื่อเปลี่ยนสถานะของการลงทะเบียน “ค้นหาของฉัน” การเปลี่ยนแปลงนี้เกิดขึ้นเมื่อผู้ใช้เปลี่ยนสถานะ “ค้นหาของฉัน” บน Mac ของตน
แฮช Nonce ของ recoveryOS (ronh)
ประเภท: OctetString (48)
สภาพแวดล้อมที่ผันแปรได้: 1TR, recoveryOS, macOS
คำอธิบาย:
ronh
ทำงานในลักษณะเดียวกับ lpnh แต่พบได้เฉพาะใน LocalPolicy สำหรับระบบ recoveryOS เท่านั้น จะมีการอัปเดตเมื่อมีการอัปเดตระบบ recoveryOS เช่น การอัปเดตซอฟต์แวร์ Nonce ที่แยกจากlpnh
และrpnh
จะถูกใช้เพื่อที่ว่าเมื่ออุปกรณ์ถูกบังคับปิดใช้งานโดย “ค้นหาของฉัน” แล้ว ระบบปฏิบัติการที่มีอยู่จะสามารถปิดใช้งานได้ (โดยเอา LPN และ RPN ออกจากส่วนประกอบพื้นที่จัดเก็บข้อมูลอย่างปลอดภัย) ในขณะที่ยังคงปล่อยให้ recoveryOS ระบบบูตได้ ด้วยวิธีนี้ ระบบปฏิบัติการจะสามารถเปิดใช้งานอีกครั้งได้เมื่อเจ้าของระบบพิสูจน์สิทธิ์ในการควบคุมระบบโดยใส่รหัสผ่าน iCloud ของตนที่ใช้กับบัญชี “ค้นหาของฉัน” การเปลี่ยนแปลงนี้เกิดขึ้นเมื่อผู้ใช้อัปเดตระบบ recoveryOS หรือสร้างระบบปฏิบัติการใหม่
แฮชรายการ Image4 ในขั้นตอนถัดไป (nsih)
ประเภท: OctetString (48)
สภาพแวดล้อมที่ผันแปรได้: 1TR, recoveryOS, macOS
คำอธิบาย: ช่อง nsih แสดงถึงแฮช SHA384 ของโครงสร้างข้อมูลรายการ Image4 ซึ่งอธิบาย macOS ที่บูต รายการ Image4 ใน macOS ประกอบด้วยการวัดวัตถุการบูตทั้งหมด เช่น iBoot, การแคชความเชื่อถือแบบคงที่, โครงสร้างอุปกรณ์, คอลเลกชั่นเคอร์เนลบูต และแฮชรากดิสก์โวลุ่มสำหรับดิสก์โวลุ่มระบบที่ลงชื่อ (SSV) เมื่อ LLB ถูกสั่งการให้บูต macOS ที่กำหนด LLB วิธีนี้ได้รับการออกแบบมาเพื่อให้แน่ใจว่ารายการ Image4 ใน macOS ที่แนบกับ iBoot ตรงกับที่บันทึกไว้ในช่อง
nsih
ของ LocalPolicy วิธีนี้nsih
จะบันทึกเจตนาของผู้ใช้เกี่ยวกับระบบปฏิบัติการที่ผู้ใช้ได้สร้าง LocalPolicy ไว้ ผู้ใช้จะเปลี่ยนค่าnsih
โดยนัยเมื่อดำเนินการอัปเดตซอฟต์แวร์
แฮชนโยบาย (auxp) คอลเลกชั่นเคอร์เนลเสริม (AuxKC)
ประเภท: OctetString (48)
สภาพแวดล้อมที่ผันแปรได้: macOS
คำอธิบาย:
auxp
คือแฮช SHA384 ของนโยบายรายการ kext ที่ผู้ใช้อนุญาต (UAKL) สิ่งนี้จะใช้ในระหว่างการสร้าง AuxKC เพื่อช่วยให้แน่ใจว่ามีเพียง kext ที่ผู้ใช้อนุญาตรวมอยู่ใน AuxKC เท่านั้นsmb2
เป็นข้อกำหนดเบื้องต้นสำหรับตั้งค่าช่องนี้ ผู้ใช้จะเป็นผู้เปลี่ยนค่าauxp
โดยนัยเมื่อเปลี่ยน UAKL ด้วยการอนุญาต kext จากบานหน้าต่างความปลอดภัยและความเป็นส่วนตัวในการตั้งค่าระบบ
แฮชรายการ Image4 (auxi) คอลเลกชั่นเคอร์เนลเสริม (AuxKC)
ประเภท: OctetString (48)
สภาพแวดล้อมที่ผันแปรได้: macOS
คำอธิบาย: หลังจากที่ระบบตรวจสอบยืนยันว่าแฮช UAKL ตรงกับแฮชที่พบในช่อง
auxp
ของ LocalPolicy ระบบจะขอให้ AuxKC ลงชื่อโดยแอปพลิเคชันหน่วยประมวลผล Secure Enclave ที่รับผิดชอบในการลงชื่อ LocalPolicy จากนั้นแฮช SHA384 ของลายเซ็นรายการ Image4 ของ AuxKC จะถูกวางลงใน LocalPolicy เพื่อหลีกเลี่ยงโอกาสในการผสมและจับคู่ AuxKC ที่ลงชื่อไว้ก่อนหน้านี้กับระบบปฏิบัติการเมื่อมีการบูต ถ้า iBoot พบช่องauxi
ใน LocalPolicy แล้ว iBoot จะพยายามโหลด AuxKC จากพื้นที่จัดเก็บข้อมูลแล้วตรวจสอบความถูกต้องของลายเซ็น iBoot ยังตรวจสอบยืนยันแฮชของรายการ Image4 ที่แนบมากับ AuxKC ว่าตรงกับค่าที่พบในช่องauxi
หรือไม่อีกด้วย ถ้า AuxKC โหลดไม่สำเร็จด้วยเหตุผลใดก็ตาม ระบบจะดำเนินการบูตต่อไปโดยไม่มีวัตถุการบูตนี้และ (ดังนั้น) ไม่มี kext ของบริษัทอื่นถูกโหลด ช่องauxp
เป็นข้อกำหนดเบื้องต้นสำหรับการตั้งค่าช่อง auxi ใน LocalPolicy ผู้ใช้จะเป็นผู้เปลี่ยนค่าauxi
โดยนัยเมื่อเปลี่ยน UAKL ด้วยการอนุญาต kext จากบานหน้าต่างความปลอดภัยและความเป็นส่วนตัวในการตั้งค่าระบบ
แฮชคำขอ (auxr) คอลเลกชั่นเคอร์เนลเสริม (AuxKC)
ประเภท: OctetString (48)
สภาพแวดล้อมที่ผันแปรได้: macOS
คำอธิบาย:
auxr
คือแฮช SHA384 ของคำขอ AuxKC ซึ่งระบุชุดที่ตรงกันของ kext ที่มีอยู่ใน AuxKC โดยคำขอ AuxKC อาจเป็นชุดย่อยของ UAKL เนื่องจาก kext สามารถแยกออกจาก AuxKC ได้แม้ว่าจะได้รับอนุญาตจากผู้ใช้ก็ตาม หากทราบว่าใช้สำหรับการโจมตี นอกจากนี้ kext บางรายการซึ่งสามารถใช้เพื่อทำลายขอบเขตเคอร์เนลของผู้ใช้อาจนำไปสู่ฟังก์ชั่นการทำงานที่ลดลง เช่น ไม่สามารถใช้ Apple Pay หรือเล่นเนื้อหา 4K และ HDR ได้ ผู้ใช้ที่ต้องการให้มีความสามารถเหล่านี้จะเลือกใช้การรวม AuxKC ที่มีข้อจำกัดเพิ่มเติม ช่องauxp
เป็นข้อกำหนดเบื้องต้นสำหรับการตั้งค่าช่องauxr
ใน LocalPolicy ผู้ใช้จะเป็นผู้เปลี่ยนค่าauxr
โดยนัยเมื่อสร้าง AuxKC ใหม่จากบานหน้าต่างความปลอดภัยและความเป็นส่วนตัวในการตั้งค่าระบบ
แฮชรายการ Image4 CustomOS (coih)
ประเภท: OctetString (48)
สภาพแวดล้อมที่ผันแปรได้: 1TR
คำอธิบาย:
coih
คือแฮช SHA384 ของรายการ Image4 CustomOS เพย์โหลดสำหรับรายการนั้นจะถูกใช้โดย iBoot (แทนที่จะเป็นเคอร์เนล XNU) ในการถ่ายโอนการควบคุม ผู้ใช้จะเป็นผู้เปลี่ยนค่าcoih
โดยนัยเมื่อใช้เครื่องมือบรรทัดสั่งkmutil configure-boot
ใน 1TR
UUID ของกลุ่มดิสก์โวลุ่ม APFS (vuid)
ประเภท: OctetString (16)
สภาพแวดล้อมที่ผันแปรได้: 1TR, recoveryOS, macOS
คำอธิบาย:
vuid
ระบุว่ากลุ่มดิสก์โวลุ่มที่เคอร์เนลควรใช้เป็นราก ช่องนี้แสดงข้อมูลพื้นฐานและไม่ได้ใช้เพื่อจำกัดด้านความปลอดภัยvuid
นี้ตั้งค่าโดยผู้ใช้โดยนัยเมื่อสร้างการติดตั้งระบบปฏิบัติการใหม่
UUID กลุ่ม (kuid) กุญแจการเข้ารหัสกุญแจ (KEK)
ประเภท: OctetString (16)
สภาพแวดล้อมที่ผันแปรได้: 1TR, recoveryOS, macOS
คำอธิบาย:
kuid
ระบุดิสก์โวลุ่มที่บูต โดยทั่วไปกุญแจการเข้ารหัสกุญแจจะถูกใช้สำหรับการปกป้องข้อมูล สำหรับ LocalPolicy นั้นจะใช้เพื่อปกป้องกุญแจการลงชื่อ LocalPolicykuid
ตั้งค่าโดยผู้ใช้โดยนัยเมื่อสร้างการติดตั้งระบบปฏิบัติการใหม่
การวัดนโยบายการบูตที่เชื่อถือของ recoveryOS ที่จับคู่ (prot)
ประเภท: OctetString (48)
สภาพแวดล้อมที่ผันแปรได้: 1TR, recoveryOS, macOS
คำอธิบาย: การวัดนโยบายการบูตที่เชื่อถือของ recoveryOS ที่จับคู่ (TBPM) คือการคำนวณแฮช SHA384 แบบทำซ้ำชนิดพิเศษผ่านรายการ Image4 ของ LocalPolicy แต่ไม่รวมถึง Nonce เพื่อมอบการวัดที่สอดคล้องกันเมื่อเวลาผ่านไป (เนื่องจาก Nonce แบบ
lpnh
จะได้รับการอัปเดตบ่อยครั้ง) ช่องprot
ที่พบอยู่ใน LocalPolicy แต่ละรายการสำหรับ macOS เท่านั้น จะมอบการจับคู่เพื่อระบุ LocalPolicy สำหรับ recoveryOS ซึ่งจะสอดคล้องกับ LocalPolicy สำหรับ macOS
นโยบายภายในเครื่อง recoveryOS ที่ลงชื่อด้วยแฮช Secure Enclave (hrlp)
ประเภท: บูลีน
สภาพแวดล้อมที่ผันแปรได้: 1TR, recoveryOS, macOS
คำอธิบาย:
hrlp
ระบุว่าค่าprot
(ด้านบน) คือการวัดของ recoveryOS LocalPolicy ที่ลงชื่อด้วย Secure Enclave หรือไม่ ถ้าไม่ใช่ แสดงว่า LocalPolicy สำหรับ recoveryOS มีการลงชื่อโดยเซิร์ฟเวอร์การลงชื่อทางออนไลน์ของ Apple ซึ่งเป็นเซิร์ฟเวอร์ที่ลงชื่อสิ่งต่างๆ เช่นไฟล์ Image4 ของ macOS
Local Operating System Version (love)
ประเภท: บูลีน
สภาพแวดล้อมที่ผันแปรได้: 1TR, recoveryOS, macOS
คำอธิบาย:
love
บ่งชี้เวอร์ชั่น OS ที่ LocalPolicy ถูกสร้างขึ้นเพื่อตอบรับเวอร์ชั่น OS นั้น เวอร์ชั่นนี้ได้มาจากรายการสถานะถัดไประหว่างการสร้าง LocalPolicy และใช้เพื่อบังคับใช้ข้อจำกัดในการจับคู่ recoveryOS
การบูตหลายรายการอย่างปลอดภัย (smb0)
ประเภท: บูลีน
สภาพแวดล้อมที่ผันแปรได้: 1TR, recoveryOS
คำอธิบาย: ถ้า
smb0
มีอยู่และเป็นจริง LLB จะอนุญาตให้รายการ Image4 ในขั้นตอนถัดไปได้รับการลงชื่อสากลแทนที่จะต้องใช้ลายเซ็นที่ปรับให้เป็นส่วนตัว ผู้ใช้สามารถเปลี่ยนแปลงช่องนี้ได้โดยใช้ยูทิลิตี้ความปลอดภัยของการเริ่มต้นระบบหรือbputil
เพื่อดาวน์เกรดเป็นความปลอดภัยแบบลดลง
การบูตหลายรายการอย่างปลอดภัย (smb1)
ประเภท: บูลีน
สภาพแวดล้อมที่ผันแปรได้: 1TR
คำอธิบาย: ถ้า
smb1
มีอยู่และเป็นจริง iBoot จะอนุญาตให้วัตถุ เช่น คอลเลกชั่นเคอร์เนลแบบกำหนดเองลงชื่อด้วย Secure Enclave โดยใช้กุญแจเดียวกันกับ LocalPolicy การมีอยู่ของsmb0
เป็นข้อกำหนดเบื้องต้นสำหรับการมีอยู่ของsmb1
ผู้ใช้สามารถเปลี่ยนแปลงช่องนี้ได้โดยใช้เครื่องมือบรรทัดคำสั่ง เช่นcsrutil
หรือbputil
เพื่อดาวน์เกรดเป็นความปลอดภัยที่อนุญาต
การบูตหลายรายการอย่างปลอดภัย (smb2)
ประเภท: บูลีน
สภาพแวดล้อมที่ผันแปรได้: 1TR
คำอธิบาย: ถ้า
smb2
มีอยู่และเป็นจริง iBoot จะอนุญาตให้คอลเลกชั่นเคอร์เนลเสริมลงชื่อด้วย Secure Enclave โดยใช้กุญแจเดียวกันกับ LocalPolicy การมีอยู่ของsmb0
เป็นข้อกำหนดเบื้องต้นสำหรับการมีอยู่ของsmb2
ผู้ใช้สามารถเปลี่ยนแปลงช่องนี้ได้โดยใช้ยูทิลิตี้ความปลอดภัยของการเริ่มต้นระบบหรือbputil
เพื่อดาวน์เกรดเป็นความปลอดภัยลดลงและเปิดใช้งาน kext ของบริษัทอื่น
การบูตหลายรายการอย่างปลอดภัย (smb3)
ประเภท: บูลีน
สภาพแวดล้อมที่ผันแปรได้: 1TR
คำอธิบาย: ถ้า
smb3
มีอยู่และเป็นจริง แสดงว่าผู้ใช้ที่อยู่ที่อุปกรณ์ได้เลือกที่จะควบคุมการจัดการอุปกรณ์เคลื่อนที่ (MDM) ของระบบของตนเองไว้ การมีอยู่ของช่องนี้ช่วยให้แอปพลิเคชันหน่วยประมวลผล Secure Enclave ที่ควบคุม LocalPolicy ยอมรับการตรวจสอบสิทธิ์ MDM แทนการใช้การตรวจสอบสิทธิ์ผู้ใช้ภายในเครื่อง ผู้ใช้สามารถเปลี่ยนแปลงช่องนี้ได้โดยใช้ยูทิลิตี้ความปลอดภัยของการเริ่มต้นระบบหรือbputil
เพื่อเปิดใช้งานการควบคุมที่ได้รับการจัดการผ่าน kext ของบริษัทอื่นและรายการอัปเดตซอฟต์แวร์ (ใน macOS 11.2 ขึ้นไป MDM ยังสามารถเริ่มต้นการอัปเดตเป็น macOS เวอร์ชั่นล่าสุดได้หากโหมดความปลอดภัยในขณะนั้นเป็นความปลอดภัยแบบเต็ม)
การบูตหลายรายการอย่างปลอดภัย (smb4)
ประเภท: บูลีน
สภาพแวดล้อมที่ผันแปรได้: macOS
คำอธิบาย: ถ้ามี
smb4
และเป็นจริง แสดงว่าอุปกรณ์ได้เลือกใช้การควบคุม MDM ของระบบปฏิบัติการโดยใช้ Apple School Manager, Apple Business Manager หรือ Apple Business Essentials การมีอยู่ของช่องนี้ช่วยให้แอปพลิเคชัน Secure Enclave ที่ควบคุม LocalPolicy ยอมรับการตรวจสอบสิทธิ์ MDM แทนการใช้การตรวจสอบสิทธิ์ผู้ใช้ภายในเครื่อง ช่องนี้จะมีการเปลี่ยนแปลงโดยโซลูชั่น MDM เมื่อตรวจพบว่าหมายเลขประจำเครื่องของอุปกรณ์แสดงในบริการใดๆ จากทั้งสามบริการนี้
การปกป้องความสมบูรณ์ของระบบ (sip0)
ประเภท: จำนวนเต็มที่ไม่ได้ลงชื่อ 64 บิต
สภาพแวดล้อมที่ผันแปรได้: 1TR
คำอธิบาย:
sip0
มีบิตนโยบายการปกป้องความสมบูรณ์ของระบบ (SIP) ที่มีอยู่ซึ่งเคยจัดเก็บไว้ใน NVRAM ก่อนหน้านี้ บิตนโยบาย SIP ใหม่จะถูกเพิ่มที่นี่ (แทนการใช้ช่อง LocalPolicy ตามด้างล่าง) หากใช้เฉพาะใน macOS และไม่ได้ใช้โดย LLB ผู้ใช้สามารถเปลี่ยนแปลงช่องนี้ได้โดยใช้csrutil
จาก 1TR เพื่อปิดใช้งาน SIP และดาวน์เกรดเป็นความปลอดภัยที่อนุญาต
การปกป้องความสมบูรณ์ของระบบ (sip1)
ประเภท: บูลีน
สภาพแวดล้อมที่ผันแปรได้: 1TR
คำอธิบาย: ถ้า
sip1
มีอยู่และเป็นจริง iBoot จะอนุญาตข้อผิดพลาดในการตรวจสอบยืนยันแฮชรากดิสก์โวลุ่ม SSV ผู้ใช้สามารถเปลี่ยนแปลงช่องนี้ได้โดยใช้csrutil
หรือbputil
จาก 1TR
การปกป้องความสมบูรณ์ของระบบ (sip2)
ประเภท: บูลีน
สภาพแวดล้อมที่ผันแปรได้: 1TR
คำอธิบาย: ถ้า sip2 มีอยู่และเป็นจริง iBoot จะไม่ล็อคการลงทะเบียนฮาร์ดแวร์ ภูมิภาคข้อความกำหนดค่าแบบอ่านได้อย่างเดียว (CTRR) ซึ่งทำเครื่องหมายให้หน่วยความจำเคอร์เนลเป็นหน่วยความจำที่ไม่สามารถเขียนได้ ผู้ใช้สามารถเปลี่ยนแปลงช่องนี้ได้โดยใช้
csrutil
หรือbputil
จาก 1TR
การปกป้องความสมบูรณ์ของระบบ (sip3)
ประเภท: บูลีน
สภาพแวดล้อมที่ผันแปรได้: 1TR
คำอธิบาย: ถ้า
sip3
มีอยู่และเป็นจริง iBoot จะไม่บังคับใช้รายการอนุญาตที่มีในตัวสำหรับตัวแปร boot-args ของตัวแปร NVRAM ซึ่งจะฟิลเตอร์ตัวเลือกที่ส่งผ่านไปยังเคอร์เนล ผู้ใช้สามารถเปลี่ยนแปลงช่องนี้ได้โดยใช้csrutil
หรือbputil
จาก 1TR
ใบรับรองและ RemotePolicy
ตามที่ได้อธิบายในการสร้างและการจัดการกุญแจที่ลงชื่อ LocalPolicy นั้น Image4 ของ LocalPolicy ยังมี Owner Identity Certificate (OIC) และ RemotePolicy ที่ฝังอยู่อีกด้วย