我的.Net应用为什么要联系Verisign?

7
我编写了一个与网络通信无关的 .Net 应用程序。整个应用程序中没有一行代码使用 NIC,但是当应用程序启动时,我的防火墙却捕获到它试图联系 Verisign 的情况。这种情况并不经常发生;事实上,只发生过两次。
上一次发生时,我在告诉防火墙允许访问网络之前启动了 Wireshark。据我观察,没有实际数据传输。它只捕获了 9 个 TCP 数据包:一些 SYN 数据包、一些 SYN/ACK 数据包和一些 RST 数据包(RST 数据包已损坏)。我会怀疑其中一个第三方 DLL,但我不明白为什么数学库或图像处理库会尝试与 Verisign 建立连接,然后对该连接不做任何操作。
我的客户所在的组织具有严格的安全性;我最不想听到的就是接到电话询问为什么我的应用程序正在连接到互联网。
有人知道为什么会发生这种情况吗?有没有办法防止它发生?
Wireshark 生成的 .pcap 文件在这里
5个回答

8
这是一个好的链接博客,解释了正在发生的事情以及您可以添加到应用程序配置文件中的更改来阻止它发生,具体而言:
<configuration>
   <runtime>
       <generatePublisherEvidence enabled="false"/>
   </runtime>
</configuration>

这与Authenticode签名有关,以及您几乎肯定不需要的PublisherMembershipCondition。在MSDN上有详细解释。

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


2

如果您使用真实证书签署程序集,.net运行时将需要检查数字签名。


1
如果这是一个带有SSL的Web应用程序,那么可能是IE试图验证证书是否已被吊销。

据我所知,对于任何已签名的 .net 程序集都可能是如此,不一定与 IE 或 Web 应用程序有关。系统将联系证书吊销列表 (CRL) 服务器,以检查是否有任何不应再被信任的内容。有一个系统范围内的选项可以禁用此行为,但我记不清在哪里了。 - atzz

1

这些第三方DLL文件中有没有使用Authenticode进行签名?


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

他们是有薪水的,但是他们的许可机制是寻找计算机上包含许可密钥的文件。 - Phil
好的,那是一种许可机制。另一个似乎没有许可证验证机制。 - Phil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接