我们希望我们的用户下载我们的Windows软件的预配置安装程序。预先配置的数据由基于用户帐户数据的设置组成。定制将在运行在Linux上的Java服务器中完成。我们需要让那些安装程序进行数字签名。不幸的是,由于安全策略,我们无法在这些服务器上拥有私有签名密钥。
,您能想出在保存数字签名或其他实现用例的方法的同时,将一些元数据放入MSI或EXE的方法吗?
编辑:要求只有一个文件下载,所以不幸的是并行ini文件不能满足它。它主要是关于提供一组连接点(特定于用户)--我们不会打扰用户,因为我们已经知道了。
发布于 2014-06-03 08:46:17
同时,我找到了一种方法,可以将数据添加到签名的EXE中,而不会使签名无效。是的,我也认为这是不可能的。这是一种可怕的攻击,它通过修改证书部分来工作,而证书部分不是签名的一部分,它位于文件的末尾。所以你可以附加到EXE的末尾,只需做一些节大小的固定。我检查了它的工作,签名是有效的,程序运行,AntiVirus也没有抱怨。
对该办法的说明:
添加有效载荷的工作程序:
显然,由于被黑客攻击,它随时可能停止工作。
发布于 2014-05-22 14:29:23
不,你要什么是不可能的。如果文件的签名无效,就不能修改它。这就是签约的全部意义。如果没有执行签名的私钥,您也不能对文件进行签名。
发布于 2014-05-22 15:19:03
我相信克里斯是对的。然而,为了为进一步调查提供一个有用的起点,以下是一些想法:
虽然这可能是一个有问题的设计,但您可以生成一封包含服务器上配置信息的电子邮件,并将其发送给用户,这样他们就可以通过单击电子邮件中的链接,从您的网站上自动启动已签名的安装程序,并在属性中设置适当的设置。我从未尝试过这一点,但MSI确实讨论过:基于URL的Windows安装程序安装示例和编写经过完全验证的签名安装。
我想您也可以生成一个INI文件,通过电子邮件发送,可以放在签名的MSI旁边,并且MSI可以设计成在安装期间读取INI文件并应用设置。您将添加一个启动条件来要求这个INI。
如果您在未签名的自解压缩器中包装了带有签名MSI的配置文件,我认为您几乎消除了签名过程中的所有好处。我怀疑它是否有用,但应该可以对未签名的MSI使用的外部cab文件进行签名。再说一遍,我没有试过这个,所以我只是猜测。我不知道如果MSI是在签署cab后处理的话会发生什么。就安全而言,我认为这种做法也是胡说八道--几乎没有什么好处。
https://stackoverflow.com/questions/23806564
复制相似问题