โดยทั่วไปการเซ็นชื่อแบบเฉพาะกิจในบริบทนี้หมายความว่าไบนารีได้รับการลงชื่อโดยไม่มีการพิสูจน์การเข้ารหัสใด ๆ เลย
ในสาระสำคัญโดยปกติไบนารีมีการลงนามโดยเพิ่ม CMS ที่เรียกว่า (ข้อความเข้ารหัสลับ) ที่แฮชของ CodeDirectory เป็นข้อความที่ลงนามโดยเอกลักษณ์การลงนาม ซึ่งหมายความว่าบุคคลภายนอกสามารถตรวจสอบได้ว่ามีการเซ็นรหัสโดยผู้ที่ถือกุญแจส่วนตัวสำหรับตัวตนนั้นจริงๆ
เมื่อเรียกใช้โปรแกรมระบบ macOS สามารถตรวจสอบว่าลายเซ็นเหล่านี้ถูกต้องและเชื่อถือได้ในการเซ็นชื่อ - และถ้าเป็นเช่นนั้นให้เรียกใช้โปรแกรม นี่คือพื้นฐานของการทำงานของ GateKeeper
ไบนารีที่เซ็นชื่อแบบเฉพาะกิจมีความแตกต่างกันอย่างมากเนื่องจากไม่มี CMS ดังกล่าว แต่มันก็เก็บค่าแฮช SHA-1 ของ CodeDirectory โดยไม่มีการพิสูจน์การเข้ารหัสที่ถูกต้องและไม่มีเส้นทางของใบรับรอง / ข้อมูลประจำตัวเพื่อตรวจสอบ
CodeDirectory เป็นวัตถุที่อธิบายถึงอินสแตนซ์เฉพาะของรหัสคงที่โดยมีค่าแฮชสำหรับส่วนต่าง ๆ ของรหัสที่ทำจากแอปพลิเคชัน โดยการทำให้มั่นใจว่า CodeDirectory ไม่ได้รับการแก้ไขโดยการตรวจสอบลายเซ็นการเข้ารหัสลับและบิตรหัสต่างๆของแอปพลิเคชันตรงกับค่าแฮชที่เก็บไว้ในไดเรกทอรีคุณสามารถตรวจสอบได้ว่ารหัสนั้นไม่ได้ถูกดัดแปลง
หากไม่มีหลักฐานการเข้ารหัสลับการตรวจสอบ "ไม่ได้แก้ไข" นี้จะไม่สามารถดำเนินการตามปกติ
แทนไบนารีที่เซ็นชื่อแบบเฉพาะกิจแล้วจะถูกตรวจสอบโดยการเปรียบเทียบค่าแฮช SHA-1 กับรายการของค่าแฮช "รู้จักดี" ที่เก็บไว้ในแคชความน่าเชื่อถือแบบคงที่ภายในเคอร์เนล
ในสาระสำคัญซึ่งหมายความว่า "ข้อ จำกัด ที่สำคัญ" ที่วางไว้ในแอปพลิเคชันใด ๆ ที่คุณเฉพาะกิจลงชื่อด้วยตัวคุณเองก็คือมันจะไม่ผ่านการตรวจสอบใด ๆ โดยทั่วไปมันจะเหมือนกับไบนารีที่ไม่ได้ลงชื่อ
อย่างไรก็ตามหากคุณเป็น Apple คุณสามารถสร้างแอปพลิเคชันที่ไม่ได้รับรหัสในลักษณะปกติและเคอร์เนลจะไว้วางใจแทนอย่างชัดเจน เช่นถ้า Apple ต้องการให้แน่ใจว่าแอปพลิเคชันไม่ได้รับการแก้ไขเมื่อทำงานในช่วงเริ่มต้นของการเริ่มต้นระบบโดยที่การตรวจสอบตัวตนการลงชื่อแบบเต็มไม่ทำงานและ (หรือไม่สามารถใช้งานได้) แอปพลิเคชันเหล่านี้สามารถตรวจสอบได้โดยแคชความน่าเชื่อถือแบบคงที่เสมอไม่ว่าที่เก็บใบรับรองของคุณจะถูกซ่อนหรืออะไรแบบนั้น
ในทางปฏิบัติการสร้างไบนารีที่เซ็นชื่อแบบ ad-hoc นั้นมีคุณค่าสำหรับผู้พัฒนา Apple เท่านั้น
คุณสามารถค้นหาเอกสารย่อยได้ที่การลงโฆษณาแบบเฉพาะกิจในส่วนนักพัฒนาของ Apple ตัวอย่างเช่น:
https://developer.apple.com/documentation/security/seccodesignatureflags/kseccodesignatureadhoc
แต่คุณยังสามารถค้นหาตัวอย่างของเอกสารในซอร์สโค้ดสำหรับยูทิลิตี้ Codeign เองและในซอร์สโค้ดสำหรับ libsecurity