Я записал приложение .NET, которое не имеет никакого отношения к сетевой связи. Нет ни одной строки кода в целом приложении, которое использует NIC, но мой брандмауэр поймал его пытающийся связаться с Verisign по некоторым причинам, когда приложение запускается. Этого регулярно не происходит; на самом деле, это только произошло дважды.
В прошлый раз, когда это произошло, я смог запустить Wireshark прежде, чем сказать моему брандмауэру предоставлять доступ к сети. Не было никакой реальной передачи данных, которую я могу сказать. Это только получило 9 пакетов TCP: некоторые пакеты SYN, некоторый SYN/ACK и некоторые пакеты RST (Пакеты RST были повреждены). Я подозревал бы один из своих сторонних dlls, но я не вижу, почему математическая библиотека или библиотека обработки изображения попытались бы установить соединение с Verisign и затем ничего не сделать с тем соединением.
Мои клиенты находятся в организациях со строгими мерами безопасности; последней вещью, которую я хочу, является телефонный вызов, спрашивающий, почему мое приложение соединяется с Интернетом.
Кто-либо знает, почему это происходит? Существует ли способ предотвратить его?
.pcap файл, который генерировал Wireshark, здесь.
Вот хорошая ссылка блог , объясняющая, что происходит, и изменения в файл конфигурации вашего приложения, которые вы можете добавить, чтобы этого не происходило, в частности:
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
Это связано для аутентификации подписи и PublisherMembershipCondition, который вам почти наверняка не нужен. Это объясняется здесь, на MSDN
. Следует отметить, что .Net 2.0 и .Net 3.0 добавили поддержку этого параметра конфигурации только с SP1. .Net 3.5 поддерживает это без какого-либо пакета обновления.
Если вы подписываете свою сборку настоящим сертификатом, среда выполнения .net должна проверить цифровую подпись.
Если это веб-приложение с SSL, это может быть IE, пытающийся проверить, не отозван ли сертификат.
Подписаны ли какие-либо сторонние библиотеки DLL с помощью Authenticode ?
Являются ли эти платные сторонние библиотеки DLL, которые, возможно, выполняют какую-либо аутентификацию использования?