自 2019 年 macOS Catalina 起,所有第三方 App 若未完成开发者签名 + Notarization 流程,都会触发这条提示。 2 Gatekeeper & Notarization 工作机制 组件 作用 Gatekeeper macOS 的强制执行安全策略,默认只允许运行 Mac App Store 或 “已公证的已识别开发者 Notarization 公证服务 开发者将签名后的软件上传到 Apple 服务器,Apple 进行自动扫描(恶意软件、漏洞等)。 审核通过后返回一个公证票据 (notarization ticket),开发者将其“钉住”(staple) 在 App 内部。
gregoryszorc.com/blog/2022/08/08/achieving-a-completely-open-source-implementation-of-apple-code-signing-and-notarization
Compared with traditional notarization and other third-party deposit forms,blockchain deposit has the certificate deposit can gradually reduce the links of third-party authentication,authentication or notarization
iOS vs macOS 系统对比,所以开始讲解 macOS 系统目前分发 App 的方式: Mac App Store 第三方分发(公证) 第三方分发(不审核+不公证) 笔者注:Notarization (公证),从 macOS 10.15 起,所有从互联网下载的未进行 Notarization(公证) 的 App,默认将无法被打开,所以在 App Store 外分发的 App,必须在发布前将 App 更多公证的资料,可以查看苹果官方资料:All About Notarization - WWDC 2019 - Videos - Apple Developer。 [PDX-0081-20.png] 最后,教授通过比如 iOS 和 macOS 之间安全性的相同点和差异点,给出了结论,在 iOS 上实践 macOS 的安全性的三个技术点: Notarization 教授说的 iOS 增加 Notarization (公证)、Catekeeper(门禁,看门人)、Malware Scanners(恶意软件扫描器)后安全性与 macOS 相当,而 macOS 并没有大的安全问题
签名与公证:5.x 完整走 Apple Notarization + Staple 流程,首次运行无需手动 Gatekeeper 例外。 6.
发现应用既没有来自 Mac App Store,也没有 Developer ID + 公证票据 Developer ID 证书 为第三方开发者颁发的代码签名,用于证明身份 未签名或用过期/吊销证书签名 Notarization
保存 Credentials首先,不同于 xcrun altool --notarization-info以前的公证方式,notarytool 的公证步骤更加简洁,credentials 是一个 notarytool
签名和公证 (Code Signing and Notarization):为了在macOS上分发应用程序并避免“无法打开,因为来自未知开发者”的警告,你需要一个Apple Developer ID,并对你的应用程序进行代码签名和公证
触发环节 主要机制 典型标志 说明 Gatekeeper spctl 「已损坏」 校验开发者签名、苹果公证(Notarization)和安全策略 隔离属性 (Quarantine) com.apple.quarantine
Notarization 的问题 虽然我主要是在自己的 Mac 上开发游戏,但在开发的过程中苹果发明了「Notarization」,如果你在新版本的 MacOS 上运行任何应用程序,它会向苹果发出网络请求
developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues
我们将通过用户身份创建数字资产身份的过程命名为公证( notarization ),将验证完整性和信任级别的过程命名为身份验证( authentication )。
--macos-sign-notarization 在签署公证时,使用苹果公司的正确TeamID身份,使用所需的运行时签名选项,以便可以接受。