macOS 中的 App 代码签名进程

App Store 中的所有 App 均已由 Apple 签名。此签名的设计旨在确保它们不会被篡改或修改。Apple 设备附带的所有 App 均由 Apple 签名。

在 macOS 10.15 中,不在 App Store 中分发的所有 App 必须由开发者使用 Apple 签发的开发者 ID 证书(和专用密钥)进行签名并由 Apple 公证,以便在默认的“门禁”设置中运行。企业内部开发的 App 也应使用 Apple 签发的开发者 ID 进行签名,以便用户可以验证其完整性。

macOS 中,代码签名和公证独立工作,并可由不同的实施者执行,以实现不同的目的。代码签名由开发者使用其开发者 ID 证书(由 Apple 签发)执行,对此签名的验证可向用户证明自开发者构建软件并签名以来,其软件未被篡改。公证可由软件分发链中的任何人执行,并证明已向 Apple 提供代码副本以检查恶意软件且未发现已知的恶意软件。公证的输出为票据,储存在 Apple 服务器上,可选择(由任何人)包含在 App 中,而不会使开发者的签名失效。

强制访问控制 (MAC) 需要代码签名以启用受系统保护的授权。例如,需要通过防火墙访问的 App 必须使用合适的 MAC 授权进行代码签名。


公证

公证是由 Apple 提供的恶意软件扫描服务。要在 App Store 之外分发 macOS 版 App 的开发者需提交其 App 以进行扫描,这是分发流程的一部分。Apple 会扫描此软件以检测已知恶意软件,如果未发现,则签发公证票据。开发者通常将此票据打包到其 App 中,这样即使处于离线状态,门禁也可验证并启动 App。

Apple 还可给已知的恶意 App 签发撤销票据,即使这些 App 之前曾通过公证。macOS 会定期检查新的撤销票据,使门禁拥有最新的信息并可阻止此类文件的启动。此流程可非常迅速地阻止恶意 App,因为更新在后台进行,并且比推送新 XProtect 签名的后台更新更加频繁。另外,此保护措施既可应用于曾通过公证的 App,也可应用于未通过公证的 App。


macOS 中的 App 代码签名进程


原文始发于微信公众号(Share My Learn):macOS 中的 App 代码签名进程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/242265.html

(0)
葫芦侠五楼的头像葫芦侠五楼

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!