繁体   English   中英

签名二进制文件(不是代码签名)

[英]Signing binary files (not code signing)

有没有办法签名二进制文件? 我想对我的zip文件签名,以防止它们被修改(以防止安装恶意软件)。

对XML进行签名非常容易,但是我不确定二进制文件。 这有可能吗? 我只能找到代码签名(这不是我想要的)。 购买昂贵的证书没有用,只是确保更新文件在安装后不会被修改。

我认为我必须像这样工作:散列文件,生成密钥对(可能使用散列),然后将签名字节附加到文件中。

反之亦然,读取签名字节并针对签名的公钥验证哈希。

但是我认为不是那么简单。 我是否需要考虑某些事情(例如您需要规范化的XML)?

我不一定需要代码,但是需要有关该过程的一些详细说明(也可以完全解释任何资源)。

使用任意二进制文件时,您无法修改其内容,因此,如果要对其进行签名,则需要使用单独的外部文件,该文件包含要签名的文件的哈希值,并且还对其自身进行签名以防止其自身被修改。

然后,您阅读此单独的文件,验证其个人签名,然后验证其内容中列出的每个文件的哈希值。 您可以使用Windows内置的目录文件 (使用MakeCatSignTool创建它们),也可以按照相同的过程创建自己的目录文件

因为您只分发更新,并且如果允许您假定加载更新的程序尚未修改,则无需“购买”证书。 您可以创建自己的“专用CA”,在更新程序中分发该CA的证书,然后使用该专用CA的证书来验证目录文件。

我不确定您所说的“二进制文件”是什么意思,但是如果您谈论PE格式(Windows二进制可执行文件),则可以生成自己的签名(加密的哈希)并将其放入PE文件中,与Windows Authenticode证书位于同一位置去。 这是进行此类修改的开源工具: http : //blog.didierstevens.com/programs/disitool/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM