与Mac和Linux的Authenticode有什么相似之处吗?
如果是,有人可以指向一个示例片段,最好是在C中,如何检查签名是否匹配?
谢谢
编辑:here中的Mac部分有一个可能的答案,但我不知道这是否可以在普通的C中完成。
答案 0 :(得分:2)
验证在Linux系统上运行的代码的标准方法是在安装软件包时验证二进制文件,而不是每次运行时验证二进制文件。包(例如RPM)包含必须与文件内容匹配的加密签名,否则安装程序将拒绝安装。标准UNIX权限阻止普通用户随后修改磁盘上的这些文件。磁盘上的文件的校验和可以定期与它们应该是什么(使用RPM或TripWire或类似的东西)进行比较,以防它们被修改或损坏。
答案 1 :(得分:2)
在Mac上,您可以使用在Windows上使用的相同Authenticode证书对二进制文件进行签名(至少我们这样做并且工作正常)。
您需要将证书(包括私钥)导入钥匙串,然后使用Xcode或codesign签署二进制文件。