2009-12-17 25 views
7

Napisałem aplikację .Net, która nie ma nic wspólnego z komunikacją sieciową. Nie ma jednej linii kodu w całej aplikacji, która używa karty NIC, ale moja zapora sieciowa wykryła próbę skontaktowania się z firmą Verisign z jakiegoś powodu, gdy aplikacja się uruchamia. Nie zdarza się to regularnie; w rzeczywistości zdarzyło się tylko dwa razy.Dlaczego moja aplikacja .Net kontaktuje się z Verisign?

Ostatni raz zdarzyło się, że mogłem uruchomić Wireshark przed powiadomieniem mojej zapory o zezwolenie na dostęp do sieci. Nie było żadnego prawdziwego transferu danych, które mogę powiedzieć. Przechwyciło tylko 9 pakietów TCP: niektóre pakiety SYN, niektóre SYN/ACK i niektóre pakiety RST (pakiety RST zostały zerwane). Podejrzewam, że jest to jedna z moich bibliotek dll innych firm, ale nie rozumiem, dlaczego biblioteka matematyczna lub biblioteka manipulacji obrazem próbowałyby nawiązać połączenie z Verisign, a następnie nie robić nic z tym połączeniem.

Moi klienci są w organizacjach o ścisłym bezpieczeństwie; ostatnią rzeczą, której chcę, to telefon z pytaniem, dlaczego moja aplikacja łączy się z Internetem.

Czy ktoś wie, dlaczego tak się dzieje? Czy istnieje sposób, aby temu zapobiec?

Plik .pcap wygenerowany przez Wireshark to here.

Odpowiedz

8

Oto dobry związek a blog wyjaśniając, co się dzieje, a zmiany w pliku konfiguracyjnym aplikacji, które można dodać do zatrzymania jego dzieje, a konkretnie:

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

Jest to związane z Authenticode podpisania, a PublisherMembershipCondition którego prawie na pewno nie potrzebuję. To jest wyjaśnione tutaj na MSDN

Należy pamiętać, że .Net 2.0 i .Net 3.0 dodały tylko obsługę tego ustawienia konfiguracyjnego z SP1. .Net 3.5 obsługuje to bez żadnego dodatku Service Pack.

0

Czy są to płatne pliki DLL stron trzecich, które prawdopodobnie wykorzystują uwierzytelnianie użytkowania?

+0

Są one opłacane, ale ich mechanizm licencjonowania polega na wyszukiwaniu klucza licencyjnego zawartego w pliku na komputerze. – Phil

+0

Cóż, to jeden mechanizm licencjonowania. Drugi nie ma mechanizmu weryfikacji licencji. – Phil

1

Jeśli jest to aplikacja internetowa z protokołem SSL, może to być IE próbujący sprawdzić, czy certyfikat nie został odwołany.

+0

AFAIK, to samo może dotyczyć wszystkich podpisanych zespołów .net, niekoniecznie połączonych z IE lub aplikacjami internetowymi. System skontaktuje się z serwerem listy odwołań certyfikatów (CRL), aby sprawdzić, czy cokolwiek nie będzie już ufać. Istnieje ogólnosystemowa opcja wyłączenia tego zachowania, ale nie pamiętam, gdzie to jest. – atzz

2

Jeśli podpisujesz zespół za pomocą prawdziwego certyfikatu, środowisko wykonawcze .net musi sprawdzić podpis cyfrowy.