html
在 macOS 13 Ventura 中执行政务类 ID 软件(如国家政务服务平台客户端、某省CA认证工具、社保/公积金专用身份认证组件)卸载时,双击 Uninstall.app 或运行 uninstall.sh 后,系统弹出红色警告框:““XXX”已损坏,无法打开。您应该将它移到废纸篓。”或“无法验证开发者”。该提示并非程序真被破坏,而是 Gatekeeper 在启动阶段主动拦截——这是 Apple 安全模型的第一道守门人。
Gatekeeper 并非简单检查签名有效性,而执行一套分层验证逻辑:
- 签名完整性:验证开发者证书是否由 Apple 颁发且未吊销(需联网校验 OCSP)
- 公证状态(Notarization):Ventura 强制要求所有非 Mac App Store 分发的带辅助工具(如卸载器)必须经 Apple Notary Service 扫描并附加公证票证(notarization ticket)
- 隔离元数据(com.apple.quarantine):下载/解压后自动注入的扩展属性,标记文件来源(如来自 Safari、Chrome),触发首次运行时强制校验
Uninstall.app 直接分发给办事大厅终端混合分发路径主App通过MAS安装,但卸载脚本单独提供ZIP下载(触发 quarantine)国家医保平台Mac客户端 + 独立
uninstall.sh 压缩包签名剥离残留企业IT用脚本批量重签名后未重新公证,导致签名与ticket不匹配政务云桌面镜像预装时执行了
codesign --force 但跳过 notarize
- 用户级绕过(推荐首选):右键点击卸载程序 → “显示简介” → 点击“打开”按钮(非双击),在弹窗中点击“仍要打开”。此操作仅对当前文件生效,不降低系统级防护。
- 策略级授权(时效敏感):当第①步无效时,立即前往 系统设置 → 隐私与安全性 → 安全性 底部,查找对应程序名称旁的“仍要打开”按钮(⚠️ 仅在警告出现后60分钟内可见)。
- 系统级清理(需sudo权限):若前两者均失效(常见于脚本类卸载器),执行终端命令清除隔离属性:
sudo xattr -rd com.apple.quarantine "/Applications/XXX Identity Client/Uninstall.app"
或针对Shell脚本:
sudo xattr -d com.apple.quarantine ~/Downloads/uninstall.sh
作为拥有20年跨平台交付经验的技术专家,我强烈建议政务IT团队建立以下基线:
- 所有第三方ID组件必须纳入「软件准入白名单」流程,要求供应商提供包含
–deep和–timestamp参数的完整签名日志 - 构建自动化公证流水线:使用
xcodebuild archive+altool –notarize-app(Ventura 已弃用,应迁至notarytool) - 终端管控策略中禁用
spctl –master-disable全局关闭Gatekeeper,改用spctl –add –label “GovID-Trusted”创建自定义规则
codesign -dv /path] B --> C2[公证票证存在性
xattr -l /path | grep ticket] B --> C3[证书链完整性
security find-certificate -p] B --> C4[文件哈希比对
shasum -a 256 /path] B --> C5[供应商公开签名公钥验证
openssl verify -CAfile ca.pem] C1 --> D[全部通过?] C2 --> D C3 --> D C4 --> D C5 --> D D -->|Yes| E[可安全执行] D -->|No| F[立即中止并溯源]
值得注意的是,macOS 13 引入了更严格的 hardened runtime 限制:即使绕过Gatekeeper,若卸载程序试图调用 task_for_pid() 注入政务客户端进程(常见于强制退出残留服务),仍会被Mandatory Access Control(MAC)框架拦截。这意味着真正的“彻底卸载”还需配合 launchctl bootout gui/$(id -u) /Library/LaunchAgents/gov.xxx.plist 清理持久化任务——这已超出Gatekeeper范畴,进入SIP(System Integrity Protection)与Apple Events权限控制域。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/270566.html