通过全新方式在 Apple 支持社区中投票!

你现在可以根据回复和用户使用技巧是否有用,来投出赞同票或反对票。进一步了解 <Apple 支持社区投票方式>的近期变更。

看上去一段时间内没有人回复。 要再次发起对话,只需提出一个新问题即可。

安全与隐私》某些系统软件已被阻止载入》允许 ...来自以下开发者的系统软件已被阻止载入!!!问题:怎么样取消这些被允许的开发者系统软件?

在mac系统偏好设置里:安全与隐私》某些系统软件已被阻止载入》允许 ... (跳出小对话框)来自以下开发者的系统软件已被阻止载入!!!

问题:怎么样取消这些开发者系统软件的允许和我不想允许的具体设置?

发布日期 2019年9月18日 下午11:56

回复
问题被标记为 最佳回复

发布日期 2019年9月20日 下午2:16

要想直到里面的来龙去脉,先啰嗦几句。从Mac OS X 10.7.3开始,它引入了一个叫做gatekeeper(看门人,或叫门禁)的安全子系统,它负责对用户机上的软件进行安全检查。对于它来说,一个软件有三个来源:Apple的应用商店(App Store);被认可的开发者签名的app;未签名的app。在图中,安全性和隐私系统便好设置中,只能选择或者应用商店,或者被认可的开发者签名的app。但是使用命令后可以设置它准许所有的app,也就是关闭gatekeeper的app签证验证功能。


啥是app签名呢?要说软件签名,要先说开发者帐户,每个开发者向Apple申请开发者帐户并缴纳年费,Apple向每个开发者发放一个由Apple签发的证书,开发者使用这个自己专有的证书给自己开发的app签名(数字签章),app有了这个签名,就可以被明确一一对应开发者并确保该app被验证签名有效时,它的代码不会被篡改;而Apple使用自己的一个私有“根”证书来给所有开发者签发证书,在macOS中有该私有根证书对应的公钥证书(私有证书a可以签发其它证书z,而a对应的公钥证书b可以用来验证由a签发的证书z是否有效),macOS使用公钥证书(有好多公认的根证书)来验证每个app是否是有谁开发的谁签发的那个证书机构认证的等等。


macOS默认对所有Apple应用商店的软件信任,因为这些软件不仅是有签名的,而且获得渠道也是Apple官方认可并且每个app在上架前都被甄选过的,可以说是最安全的渠道。如果用户愿意,可以信任特定的开发者的非应用商店的app,这些app没有经过Apple上架过程中的检测。最不安全的就是准许运行所有app,无论是否有app签名。


回到题主的问题,要想使用非应用商店的开发者签名软件,首先要信任(准许)非应用商店的开发者签名软件,也就是贴图中最下面的“准许从以下位置下载的应用”中的第二个选项“App Store和被认可的开发者”。之后,系统会让你选择是否准许一个开发者的软件app。


准许之后,一种方式就是用命令来列出已经被准许的app,或删除一个被准许的app。比如下面的命令:

sudo spctl --add "/path/to/the/app"
sudo spctl --remove "/path/to/the/app"
sudo spctl --list


第一行是准许一个app;第二行删除被准许的app;第三行是列出


另外,在即将发布的macOS 10.15 Catalina系统中,又有了进一步的安全加强,会使用一种叫做app notarization(app公正)的机制,来强调app的安全性。


回复量:1
问题被标记为 最佳回复

2019年9月20日 下午2:16 回应 linyf

要想直到里面的来龙去脉,先啰嗦几句。从Mac OS X 10.7.3开始,它引入了一个叫做gatekeeper(看门人,或叫门禁)的安全子系统,它负责对用户机上的软件进行安全检查。对于它来说,一个软件有三个来源:Apple的应用商店(App Store);被认可的开发者签名的app;未签名的app。在图中,安全性和隐私系统便好设置中,只能选择或者应用商店,或者被认可的开发者签名的app。但是使用命令后可以设置它准许所有的app,也就是关闭gatekeeper的app签证验证功能。


啥是app签名呢?要说软件签名,要先说开发者帐户,每个开发者向Apple申请开发者帐户并缴纳年费,Apple向每个开发者发放一个由Apple签发的证书,开发者使用这个自己专有的证书给自己开发的app签名(数字签章),app有了这个签名,就可以被明确一一对应开发者并确保该app被验证签名有效时,它的代码不会被篡改;而Apple使用自己的一个私有“根”证书来给所有开发者签发证书,在macOS中有该私有根证书对应的公钥证书(私有证书a可以签发其它证书z,而a对应的公钥证书b可以用来验证由a签发的证书z是否有效),macOS使用公钥证书(有好多公认的根证书)来验证每个app是否是有谁开发的谁签发的那个证书机构认证的等等。


macOS默认对所有Apple应用商店的软件信任,因为这些软件不仅是有签名的,而且获得渠道也是Apple官方认可并且每个app在上架前都被甄选过的,可以说是最安全的渠道。如果用户愿意,可以信任特定的开发者的非应用商店的app,这些app没有经过Apple上架过程中的检测。最不安全的就是准许运行所有app,无论是否有app签名。


回到题主的问题,要想使用非应用商店的开发者签名软件,首先要信任(准许)非应用商店的开发者签名软件,也就是贴图中最下面的“准许从以下位置下载的应用”中的第二个选项“App Store和被认可的开发者”。之后,系统会让你选择是否准许一个开发者的软件app。


准许之后,一种方式就是用命令来列出已经被准许的app,或删除一个被准许的app。比如下面的命令:

sudo spctl --add "/path/to/the/app"
sudo spctl --remove "/path/to/the/app"
sudo spctl --list


第一行是准许一个app;第二行删除被准许的app;第三行是列出


另外,在即将发布的macOS 10.15 Catalina系统中,又有了进一步的安全加强,会使用一种叫做app notarization(app公正)的机制,来强调app的安全性。


安全与隐私》某些系统软件已被阻止载入》允许 ...来自以下开发者的系统软件已被阻止载入!!!问题:怎么样取消这些被允许的开发者系统软件?

欢迎来到 Apple 支持社区
Apple 客户在其产品方面互相帮助的论坛。使用你的 Apple ID 开始畅游其中吧!