7

我编写了一个与网络通信无关的 .Net 应用程序。整个应用程序中没有一行代码使用 NIC,但我的防火墙发现它在应用程序启动时出于某种原因试图联系 Verisign。这不会经常发生;事实上,它只发生过两次。

上次发生这种情况时,我能够在告诉我的防火墙允许访问网络之前启动 Wireshark。我可以说没有真正的数据传输。它只捕获了 9 个 TCP 数据包:一些 SYN 数据包、一些 SYN/ACK 和一些 RST 数据包(RST 数据包已损坏)。我会怀疑我的第三方 dll 之一,但我不明白为什么数学库或图像处理库会尝试与 Verisign 建立连接,然后对该连接不做任何事情。

我的客户所在的组织具有严格的安全性;我想要的最后一件事是打电话询问我的应用程序为什么要连接到 Internet。

有谁知道为什么会这样?有没有办法防止它发生?

Wireshark 生成的 .pcap 文件在这里

4

5 回答 5

8

这是一个很好的链接博客解释正在发生的事情,以及您可以添加的应用程序配置文件的更改以阻止它发生,特别是:

<configuration>
   <runtime>
       <generatePublisherEvidence enabled="false"/>
   </runtime>
</configuration>

它与验证码签名以及您几乎绝对不需要的 PublisherMembershipCondition 有关。这在MSDN上有解释

需要注意的是,.Net 2.0 和 .Net 3.0 仅在 SP1 中添加了对此配置设置的支持。.Net 3.5 无需任何服务包即可支持此功能。

于 2009-12-17T17:51:59.667 回答
2

如果您使用真实证书对程序集进行签名,.net 运行时必须检查数字签名。

于 2009-12-17T17:47:54.223 回答
1

如果它是一个带有 SSL 的网络应用程序,它可能是 IE 试图验证证书没有被吊销。

于 2009-12-17T17:37:35.147 回答
1

是否有任何使用Authenticode签名的 3rd 方 DLL ?

于 2009-12-17T17:41:22.863 回答
0

这些付费的第三方 dll 是否可能进行某种使用身份验证?

于 2009-12-17T17:34:38.350 回答