Tag: authenticode

没有强命名的代码签名是否会让您的应用程序被滥用?

试图了解authenticode代码签名和强命名。 我是否正确地认为,如果我对引用一些dll(不是强名称)的exe进行代码签名,恶意用户可以替换我的DLL并以看起来好像是由我签名但正在运行的方式分发应用程序他们的代码? 假设这是真的,看起来你真的不想签署一个.NET应用程序而没有强烈命名整个事情,否则你给人们在你编写的应用程序的幌子下执行代码的能力? 我不确定的原因是我在网上发现的所有文章(包括关于使用SN + Authenticode的MSDN文档)似乎都没有提到这一点,这似乎是一个相当重要的理解点(如果我理解正确) ?

如何签署Visual Studio .msi的安装文件

我最近从globalsign购买了authenticode证书,但在部署文件时遇到问题。 有一些.exe文件由项目生成,然后放入.msi。 当我使用signtool签署.exe文件时,证书有效且运行正常。 问题是当我构建.msi(使用visual studio安装项目)时,.exe文件会丢失签名。 所以我可以在构建之后签署.msi,但是已安装的.exe文件继续整个“未知的发布者”业务。 如何在这些文件上保留签名以便在客户端计算机上安装?

C#:如何检测authenticode签名文件的篡改

我正在尝试编写一个C#程序来validationexe的数字签名。 exe是用authenticode证书签名的,我想检测篡改。 我已经能够创建一个SignedCms实例,如下所述: 从.NET中的Authenticode签名文件中获取时间戳 我假设SignedCms.CheckSignature可以做到这一点,但是这个方法永远不会引发exception……即使不是当我修改exe的某些部分时……

从.NET中的Authenticode签名文件中获取时间戳

我们需要validation二进制文件是否使用数字签名(Authenticode)正确签名。 这可以通过signtool.exe轻松实现。 但是,我们需要一种自动方式来validation签名者名称和时间戳。 这在使用CryptQueryObject() API的本机C ++中是可行的,如以下精彩示例所示: 如何从Authenticode签名的可执行文件获取信息 然而,我们生活在一个托管的世界:)因此寻找相同问题的C#解决方案。 直接的方法是pInvoke Crypt32.dll,一切都完成了。 但是System.Security.Cryptography.X509Certificates命名空间中有类似的托管API。 X509Certificate2类似乎提供了一些信息但没有时间戳。 现在我们来看原始问题,我们如何才能在C Sharp中获得数字签名的时间戳?