首页 > 解决方案 > 为什么使用自制软件安装的可执行文件在 MacOS 上受信任?

问题描述

我有一个关于自制软件的愚蠢问题:为什么我通过自制软件安装的可执行文件受 MacOS(网守)信任?即安装后我可以运行一个可执行文件并且没有安全弹出窗口并且不必允许异常 - 为什么会这样?

我最初认为 homebrew 可能会在他们的 CI 中对二进制文件进行签名/公证,但是查看一些随机的可执行文件,它看起来不像他们有签名:spctl -a -v $(which <some-executable-installed-with-homebrew>).

编辑:意思是从瓶子安装的可执行文件(预编译的二进制文件,而不是在我的本地机器上编译的源包)

标签: macoshomebrewosx-gatekeepernotarize

解决方案


使用 curl 下载的 CLI 应用程序没有隔离标志。Home-brew,使用 UNIX 核心工具来下载瓶子,因此他们没有设置这个标志。

Next home-brew 还特别标记二进制文件。

不要将代码签名与公证混淆。

公证是 Apple 担保使用开发证书私钥签名的软件的地方。

根据定义,他们不能对临时签名的软件(如自制瓶)进行公证。

现在,当我的可执行文件未经过公证时,它会以“Killed: 9”终止,无论是否有隔离属性。

这种情况正在发生,我推测是因为这里的二进制文件不是临时签名的。与公证无关。

我敢打赌你在使用 Apple Silicon 对吗?


推荐阅读