大会签署和证书

时间:2013-02-07 13:35:07

标签: .net certificate ca assembly-signing

我找到了以下方案来使用自定义Root CA来保护企业软件的各个部分。这是做正确的事吗?有这样的方法有问题吗?

酋长:

  1. 我有自定义的根CA.有一组简单证书,由此CA创建。
  2. 有一个.NET程序集。来自集合A的程序集使用来自我的CA的证书A签名,来自集合B的程序集使用来自我的CA的证书B签名。
  3. 有一组客户端,它信任我的CA(在第三方根CA文件夹中有证书管理单元中的证书)。
  4. 使用可信证书签名的程序集将正常工作,使用不受信任的证书签名的程序集将无法正常工作。
  5. 我撤销证书B(在我的服务器上使用Root CA)。
  6. 问题:

    1. 是否会使用OCSP自动向每个客户端发送信息(证书B已被撤销)?
    2. 每个程序集加载是否会通过Internet连接进行OCSP调用?我的程序集中的每台计算机都会打这样的电话吗?
    3. 如果域中的一台计算机没有连接互联网,它会否相信撤销证书?
    4. 是否受到保护 - 客户端是否可以破坏OCSP请求,阻止我的服务器地址等?
    5. 证书B是否会自动放置在客户端服务器上的Untrusted Certificates文件夹中?
    6. 因此,一般来说,客户端是否可以使我的软件使用不受信任的证书?
    7. 是否可以从程序集中清除此证书标志?

1 个答案:

答案 0 :(得分:1)

假设正确配置了OCSP:

1)撤销应存储在Validation Authority数据库中,并根据请求确认。 OCSP响应者将知道证书B的撤销。客户应该询问。

2)我不知道互联网连接,但证书提供验证机构URL来验证证书,或者客户端已经配置了证书。 如果这样的URL是互联网,答案是肯定的。

3)我认为不是,毕竟证书可能会受到损害。也就是说,如果您使用自定义根CA,则应该需要Internet连接。网络访问是,但不多了。

4)OCSP请求已签名,因此需要付出巨大努力来破坏它并伪造响应。它可以做到,但我想如果有人能做到这一点,它可以做更多有趣的事情。

5)我是这么认为的。如果OCSP请求已完成且证书被撤销,则它将进入不受信任的证书。这是Windows的标准行为。

6)这是一个广泛的问题,如果您使用证书进行代码签名,并且它由CLR执行,您应该能够加载已签名的程序集。但可能有办法。

7)我想是的,如果您可以使用ILSpy或类似工具打开程序集,您可以获得某些版本的源代码并重新编译它。与ILDASM相同

安全吗?是的,差不多。但是,如果您需要额外的安全性,则应该对代码进行补救并提供内部验证步骤,例如您通过OCSP明确验证的程序集中的嵌入式证书,并且该过程中的任何失败都会阻止您进一步使用代码。

相关问题