如何在 Mac OS X 中显示 & 验证应用程序的代码签名
目录:
代码签名的应用程序允许有安全意识的用户验证特定应用程序的创建者和哈希值,以帮助确认它没有被破坏或篡改。这对于普通 Mac 用户来说几乎没有必要,尤其是那些从 Mac App Store 或其他受信任来源获取软件的用户,因为这些应用程序是经过认证的,但验证应用程序的数字签名对于从第三方获取应用程序的用户来说非常有帮助来源。
验证代码签名对于那些从p2p 和分布式源(可能是种子站点或新闻组、IRC、公共ftp 或其他网络资源)获取软件和安装程序的人来说尤为重要。举一个实际的例子,假设用户出于某种原因无法访问 Mac App Store,但需要下载 Mac OS X 安装程序应用程序,因此依赖于第三方来源。在这种情况下,了解并验证安装程序未被篡改并且合法地来自 Apple 非常重要,除了直接检查 sha1 哈希之外,最简单的方法是检查代码签名和密码有问题的应用程序的哈希值。
如何在Mac上检查应用程序的代码签名
要开始,请启动位于/Applications/Utilities/ 中的终端。我们将使用恰当命名的“codesign”命令,并使用 -dv 和 –verbose=4 标志来显示有关任何应用程序的标识信息,包括它的哈希类型、哈希校验和和签名权限。
基本语法如下:
codesign -dv --verbose=4 /Path/To/Application.app
例如,让我们检查Terminal.app 上的签名,位于/Applications/Utilities/
codesign -dv --verbose=4 /Applications/Utilities/Terminal.app Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal Identifier=com.apple.Terminal Format=bundle with Mach-O thin (x86_64) CodeDirectory v=20100 size=5227 flags=0x0(none) hashes=255+3 location=embedded Platform identifier=1 Hash type=sha1 size=20 CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23 签名大小=4105 权限=软件签名权限=Apple 代码签名证书权限权限=Apple Root CA Info.plist 条目=34 TeamIdentifier=未设置密封资源版本=2 规则=13 文件=996 内部要求计数=1 大小=68
你要找的是哈希类型、哈希和权限条目。在这种情况下,哈希类型是 sha1,签名授权是 Apple,这是你所期望的。
是的,您还可以使用命令行仅检查应用程序安装程序和下载的sha1 或md5 哈希并将它们与合法来源进行比较,但这不会泄露代码签名和证书详细信息。
请记住,大多数被未经授权方修改的代码签名软件将被 Mac OS X 中的 Gatekeeper 拒绝,除非 Gatekeeper 已被禁用或以其他方式规避,但即使 Gatekeeper 留在其上从理论上讲,一个有进取心的暴徒可能会找到绕过它的方法,当然,无论如何,无论如何都可以在 Gatekeeper 周围启动未经确定的开发人员认证的软件。
您可以在维基百科和此处的Apple 开发人员代码签名指南上了解代码签名。
您检查过应用程序是否已签名吗?它可以是确定某些进程和应用程序是什么的有效方法,也有助于故障排除。下次你想知道什么是什么,是否签名时,试试吧!