Articles of 数字签名

在数字签名服务器上存储私钥的位置?

我正在开发一个客户端 – 服务器应用程序,需要在发送到客户端之前使用私钥对某些文件进行签名。 客户端将使用公钥validation签名。 因此,私钥需要始终在服务器上,并且可以由服务器应用程序读取。 问题是,我想知道在哪里存储我的私钥,以防万一服务器被泄露而更加安全。 我是否应该将其存储在数据库中,还是应该将其存储为文件并使用文件权限进行控制? 谢谢。

WinVerifyTrust检查特定的签名?

我正在实现Windows的进程提升帮助程序。 这是一个运行在提升模式下的程序,并以pipe理员权限启动其他程序,而不显示其他UAC提示。 出于安全原因,我想确保只能执行使用我公司的Authenticode密钥进行数字签名的二进制文件。 WinVerifyTrust函数在那里得到了一半,但它只能确保一个二进制文件是由一些属于微软信任链的密钥签名的。 是否有一个相对简单的方式来执行validation码validation,并确保它是由我们的私钥签名?

从Delphi中以编程方式检查数字签名

我需要在Delphi中的函数来validation外部EXE或DLL的数字签名。 在我的特定应用程序中,我偶尔会调用其他进程,但出于安全性考虑,我希望确保这些可执行文件是由我们的组织在运行之前创build的。 我已经看到微软在C语言中的例子 ,但是,如果别人已经有了,我不想浪费时间把它翻译成Delphi。 我更喜欢第三方库的片段或代码示例。 谢谢。

validation来自我们公司的自动更新程序的Authenticode签名

我正在实施一个自动更新function,并需要一些关于如何安全地使用最佳实践的build议。 我想使用下载的文件的Authenticode签名来validation它是否安全运行(即来自我们公司,并没有被篡改)。 我的问题与问题#2008519非常相似。 底线问题:什么是检查自动更新function的Authenticode签名的最好,最安全的方法? 应该检查证书中的哪些字段? 要求是:(1)支票签字有效,(2)支票是我的签字,(3)老客户还可以在证书过期时更新,我可以更新。 以下是我的研究的一些背景信息/想法:我相信这可以分成两步: validation签名是否有效。 我相信这应该很容易使用WinVerifyTrust中概述http://msdn.microsoft.com/en-us/library/aa382384(VS.85).aspx – 我不希望在这里的问题。 validation签名是否对应于我们的公司,而不是另一家公司。 这似乎是一个更难以回答的问题: 一种可能性是检查签名中的一些string。 可以通过代码在MS知识库文章#323809获得,但本文不build议应该检查这种types的应用程序(或任何其他,对于这个问题)的字段。 问题#1072540也说明了如何获得一些证书信息,但是又不推荐实际检查的字段。 我担心的是,string可能不是最好的检查:例如,如果另一个人能够获得同名的证书呢? 或者如果我们有一个正确的理由来改变未来的string? 问题#2008519的人有一个非常相似的要求。 他对“TrustedByUs”function的需求与我的相同。 但是,他通过比较公钥来进行检查。 虽然这将在短期内起作用,但它似乎不适用于自动更新function。 这是因为代码签名证书的有效期最长为2 – 3年。 因此,未来两年购买新证书时,由于公钥变更,老客户不能再更新。

检索有关非exe文件的数字签名的信息?

我知道我可以使用下面的代码来检索使用X509Certificate类的可执行文件的数字签名信息: X509Certificate cert = X509Certificate.CreateFromSignedFile("MySignedProgram.exe"); string certSubject = cert.Subject; 我的问题是如何从一个非exe文件,例如,一个签名的.js或.vbs文件检索数字证书的详细信息? PS。 这个本地代码和CryptQueryObject API似乎正确地完成了这项工作。 但是,我很好奇,如果有一个.NET的比喻呢? 上面的代码抛出一个exception,错误代码为0x80092009和说明如果将“MySignedScript.js”传递给CreateFromSignedFile方法,则Cannot find the requested object 。

WIX安装程序:数字签名Bootstapper exe未能安装

我无法使用数字签名的WIX安装程序bootstrapped exe继续安装。 以下是突出显示问题的日志摘录。 [39B8:26D4] [2017-09-04T20:03:31] i371:更新registry项:SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall {c6dca553-993e-473c-be4b-8ffa184cd19f},resume:Active,restart initiated:不,禁用简历:不 [3904:3A84] [2017-09-04T20:03:31] i336:获取容器:WixAttachedContainer,复制来自:F:\ Digital Signature \ MyApp.exe [3904:3A84] [2017-09-04T20:03:31] i000:将stringvariables'WixBundleLastUsedSource'设置为'F:\ Digital Signature' [3904:19F4] [2017-09-04T20:03:31] e000:错误0x80070001:无法从容器中提取所有文件,erf:1:2:0 [3904:3A84] [2017-09-04T20:03:31] e000:错误0x80070001:无法等待操作完成。 [3904:3A84] [2017-09-04T20:03:31] e000:错误0x80070001:无法打开容器。 [3904:3A84] [2017-09-04T20:03:31] e000:错误0x80070001:无法打开容器:WixAttachedContainer。 [3904:3A84] [2017-09-04T20:03:31] e312:无法从容器中提取有效载荷:WixAttachedContainer到工作path:C:\ Users \ Admin \ AppData \ Local \ Temp {18826196-247C-4057-B849 -948AF1A2A7E5} \ […]