当一个已签名的程序试图在macOS 11或更高版本上运行时,将在设备上检查代码,看它是否带有有效的“Notarization”。如果没有,或者代码是第一次执行,那么将向苹果服务器发送一个请求,以查看代码是否经过苹果的公证。
如果有如下情况,设备会阻止其运行
指的是 Mac App Store以外的所有第三方软件都必须上传到苹果服务器,并检查是否有恶意软件。
如果是安全软件就会被添加到 Apple 的对应数据里面
Natarization
不会出现在 没有签名的程序中。
公证检查依赖于附加到包含代码的文件中的扩展属性的存在。无属性,无Notarization(或Gatekeeper)检查。
通过共同设计证书中的一个标志来表示,它告诉操作系统对待可执行文件.
该标志的存在将防止其他进程(如调试器或反编译器)附加到它,防止代码注入、DLL劫持和其他一些事情。
并不是所有文件格式都可以进行Notarization或 用ticket 据装订。特别是,这项新技术不会影响任何仅仅运行脚本或独立可执行程序的恶意软件。脚本在像Shlayer这样的广告软件和恶意软件安装程序中越来越普遍。虽然这些要面对通常的看门人检查,但它们不需要公证。
Natarization 的主要也只适用于隔离属性下的,和 Gatekeeprt 管理的 程序,简单的绕过方式就是移除 隔离属性
且 脚本
和 独立的二进制文件
也不需要公证
对于没有 进行 Natarization
的程序,