我写了一个与网络通信无关的.Net应用程序。在使用NIC的整个应用程序中没有一行代码,但我的防火墙已经发现它在应用程序启动时因某些原因尝试联系Verisign。这不会经常发生;事实上,它只发生了两次。
最后一次发生,我能够在告诉我的防火墙允许访问网络之前启动Wireshark。我能说出没有真正的数据传输。它只捕获了9个TCP数据包:一些SYN数据包,一些SYN / ACK和一些RST数据包(RST数据包被破坏)。我怀疑我的第三方dll之一,但我不明白为什么数学库或图像处理库会尝试与Verisign建立连接,然后对该连接不做任何处理。
我的客户在安全严密的组织中;我想要的最后一件事就是打电话询问为什么我的应用程序正在连接到互联网。
有谁知道为什么会这样?有没有办法防止它发生?
Wireshark生成的.pcap文件是here。
答案 0 :(得分:8)
这是一个很好的链接a blog,解释正在发生的事情,以及您可以添加的应用程序配置文件的更改,以阻止它发生,具体来说:
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
它与authenticode签名以及您几乎绝对不需要的PublisherMembershipCondition有关。这是在MSDN
上解释的需要注意的是.Net 2.0和.Net 3.0仅添加了对SP1配置设置的支持。 .Net 3.5在没有任何服务包的情况下支持此功能。
答案 1 :(得分:2)
如果使用真实证书对程序集进行签名,则.net运行时必须检查数字签名。
答案 2 :(得分:1)
如果它是一个带有SSL的网络应用程序,可能是IE试图验证证书是否尚未被撤销。
答案 3 :(得分:1)
是否有任何第三方DLL使用Authenticode签名?
答案 4 :(得分:0)
这些付费的第三方dll是否可以进行某种使用认证?