macos 自带命令可完成数字签名校验:用 codesign 查签名有效性、签发者及公证状态;spctl 模拟 gatekeeper 判定是否放行;xattr 和 spctl 交叉验证公证;codesign 或安装器界面核对 apple 官方指纹。

macOS 自带的终端命令就能完成数字签名校验,不需要额外安装工具。核心是验证三件事:签名是否存在且有效、是否由可信实体签发、是否通过苹果公证。
用 codesign 查签名基本信息
这是最直接的方式,适用于 .app 和 .pkg 文件:
- 查应用(如 Chrome):
codesign -dv --verbose=4 "/Applications/Google Chrome.app" - 查安装包(如 macOS 安装器):
codesign -dv --verbose=4 "~/Downloads/Install macOS Sequoia.pkg"
重点关注输出中的三项:
- valid on disk: yes → 文件没被篡改,签名完好
- Authority: 应显示类似 Developer ID Application: Google LLC 或 Apple Distribution: Apple Inc.;若为 unidentified developer 或为空,说明签名无效
- Notarized: yes → 已通过苹果公证(Ventura 及更新系统对未公证的 Intel 应用默认拦截)
用 spctl 快速判断 Gatekeeper 是否放行
这条命令模拟系统实际运行时的安全检查逻辑:
- 验证应用:
spctl --assess --type execute "/Applications/YourApp.app" - 验证安装包:
spctl --assess --type install "~/Downloads/YourInstaller.pkg"
执行后:
- 无输出 → Gatekeeper 全部通过,签名+公证均有效
- 输出 rejected 或含 source=Unnotarized → 系统会阻止运行或安装
确认是否已公证(尤其对 .pkg)
苹果公证信息会以扩展属性形式存在,可用两个命令交叉验证:
- 查公证票据:
xattr -pl com.apple.quarantine "/path/to/Your.pkg",输出含 ticket=1 表示已成功获取公证 - 让 Gatekeeper 做最终裁定:
spctl --assess --type install --verbose=4 "/path/to/Your.pkg",只有返回 accepted 才真正可信
查看证书指纹比对官方值(针对 Apple 官方安装包)
对从 Apple 官网下载的 macOS 更新或软件包,可进一步核验证书指纹:
- 提取 SHA-256 指纹:
codesign -d --requirements - "/path/to/Install macOS.app" | openssl sha256 - 或更直接地,双击 .pkg 文件,在安装器窗口点右上角锁形图标 → “详细信息” → 滚动到底部看 “SHA-256 指纹”
- 与 Apple 官方公布的指纹比对(例如 macOS 更新的指纹是:12 99 E9 BF E7 76 A2 9F F4 52 F8 C4 F5 E5 5F 3B 4D FD 29 34 34 9D D1 85 0B 82 74 F3 5C 71 74 5C)











