gpt4 book ai didi

visual-studio - 为什么我的可执行文件上的签名仍然有效?

转载 作者:行者123 更新时间:2023-12-04 03:51:50 27 4
gpt4 key购买 nike

我有这个可执行文件,它是用 vb.Net 编写的,并编译为适用于 .Net Framework 2.0 的 Windows 可执行文件。因为我们使用软件白名单来防止 Windows 客户端上出现未知软件,所以此可执行文件使用 Visual Studio 2008 Professional 进行强命名和签名 workflow :

<SignFile
CertificateThumbprint="1f 6c ... 33 b2"
SigningTarget="$(TargetPath)"
TimestampUrl="http://timestamp.verisign.com/scripts/timstamp.dll"
ContinueOnError="false"
/>

为此,我们运行一个公司 RootCA,每个公司分支机构都有一个中间 CA,在每个分支机构下面都有一个颁发 CA。 “我的”颁发 CA 向我提供了一个代码设计证书,该证书已在几个月前过期。

因为我使用了 Trusted Timestamp (Authenticode) 在我的工作流程中,签名在通过其文件属性检查时是/仍然有效,用户仍然能够在不触发 Windows AppBlocker 的情况下执行它。一切都很好。

现在,我被告知我的证书已被吊销,我可以通过查看 crl 来验证。按照CA管理层的说法,现在应该已经失效一个月了,但是签名还是有效的。

Serial Number: 16C40CA0000000002A60
Revocation Date: Aug 10 06:18:00 2015 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Cessation Of Operation

我认为是 crl 中提供的 Reason 造成了这种情况。根据RFC 3161 , §4 第 1 条:

When a TSA shall not be used anymore, but the TSA private key has notbeen compromised, the authority's certificate SHALL be revoked. Whenthe reasonCode extension relative to the revoked certificate from theTSA is present in the CRL entry extensions, it SHALL be set either tounspecified (0), affiliationChanged (3), superseded (4) orcessationOfOperation (5). In that case, at any future time, thetokens signed with the corresponding key will be considered asinvalid, but tokens generated before the revocation time will remainvalid. When the reasonCode extension relative to the revokedcertificate from the TSA is not present in the CRL entry extensions,then all the tokens that have been signed with the corresponding keySHALL be considered as invalid. For that reason, it is recommended touse the reasonCode extension.

所以我的问题/问题包括:

  1. RFC 3161 是否也仅适用于联合签名证书或 TSA?
  2. 如果是,如果在撤销原因 5 CessationOfOperation 之前签署的签名是否仍然有效?
  3. 如果是,如果证书在过期后被发现遭到破坏,是否可以/应该使用不同的理由再次吊销证书?仍然可能有数百个有效签名!

最佳答案

  1. 不,指定的 RFC 描述了时间戳协议(protocol)和时间戳授权机构。它与代码签名证书无关
  2. 是的,在撤销之前做出的签名被认为是有效的
  3. 不能多次撤销证书。如果它被撤销,那么它就被撤销。

Now, I am told my certificate is revoked wich I can verify by looking at the crl

我假设您的证书是协同签名证书。您的应用程序仍在运行的原因是您在签署应用程序时使用了时间戳。时间戳保证您的签名是在指定时间完成的。而此时您的证书是有效的。

关于visual-studio - 为什么我的可执行文件上的签名仍然有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32374724/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com