Về cơ bản ký ad-hoc trong bối cảnh này có nghĩa là nhị phân được ký mà không có bất kỳ bằng chứng mật mã nào cả.
Về bản chất, thông thường các tệp nhị phân được ký bằng cách thêm một cái gọi là CMS (một thông điệp mật mã) trong đó hàm băm của CodeDirectory là thông điệp được ký bởi danh tính ký. Điều này có nghĩa là người ngoài có thể xác minh rằng mã thực sự đã được ký bởi ai đó đang giữ khóa riêng cho danh tính đó.
Khi chạy các chương trình, hệ thống macOS có thể xác minh rằng các chữ ký này là hợp lệ và nó tin tưởng vào danh tính ký - và nếu có, hãy chạy chương trình. Đây là những điều cơ bản của chức năng GateKeeper.
Các tệp nhị phân có chữ ký đặc biệt khác nhau rất nhiều vì chúng không chứa CMS như vậy. Thay vào đó, nó chỉ đơn giản giữ giá trị băm SHA-1 của CodeDirectory mà không có bất kỳ bằng chứng mật mã nào về tính hợp lệ của nó và không có đường dẫn chứng nhận / danh tính để xác minh.
CodeDirectory là một đối tượng mô tả một thể hiện cụ thể của mã tĩnh bằng cách có các giá trị băm cho các đoạn mã khác nhau mà ứng dụng được tạo từ đó. Bằng cách đảm bảo rằng CodeDirectory không bị làm phiền bằng cách xác minh chữ ký mã hóa và các bit mã khác nhau của ứng dụng khớp với các giá trị băm được lưu trữ trong thư mục, bạn có thể xác định rằng mã không bị giả mạo.
Nếu không có bằng chứng mật mã, việc kiểm tra "không bị làm phiền" này không thể được thực hiện theo cách thông thường.
Thay vào đó, các nhị phân có chữ ký đặc biệt được kiểm tra bằng cách so sánh giá trị băm SHA-1 với danh sách các giá trị băm "đã biết" được lưu trữ trong bộ đệm tin cậy tĩnh bên trong kernel.
Về bản chất, điều này có nghĩa là "những hạn chế đáng kể" được đặt trên bất kỳ ứng dụng nào bạn tự ký là nó sẽ không vượt qua bất kỳ loại xác minh nào ở bất cứ đâu. Về cơ bản nó giống như một nhị phân không ký.
Tuy nhiên, nếu bạn là Apple, bạn có thể tạo các ứng dụng không được mã hóa theo cách thông thường và thay vào đó được hạt nhân tin cậy rõ ràng. Ví dụ, nếu Apple muốn đảm bảo rằng ứng dụng không bị xáo trộn khi chạy ở giai đoạn đầu khi khởi động hệ thống, nơi xác minh nhận dạng ký đầy đủ không hoạt động (hoặc không khả dụng) thì họ có thể sử dụng ký quảng cáo. Các ứng dụng này luôn có thể được xác minh bằng bộ đệm tin cậy tĩnh, bất kể kho lưu trữ chứng chỉ của bạn có bị hos hay bất cứ thứ gì tương tự không.
Trong thực tế, việc tạo các tệp nhị phân có chữ ký đặc biệt chỉ có giá trị thực tế cho các nhà phát triển của Apple.
Bạn có thể tìm thấy tài liệu nhỏ về việc đăng nhập đặc biệt trong phần nhà phát triển của Apple. Ví dụ:
https://developer.apple.com/documentation/security/seccodesignatureflags/kseccodesignatureadhoc
Nhưng bạn cũng có thể tìm thấy các đoạn tài liệu trong mã nguồn cho chính tiện ích Codeign và trong mã nguồn cho libsecurance.