2009-12-17 17 views
7

Ho scritto un'applicazione .Net che non ha nulla a che fare con la comunicazione di rete. Non c'è una singola riga di codice nell'intera applicazione che utilizza la NIC, ma il mio firewall l'ha catturato cercando di contattare Verisign per qualche motivo all'avvio dell'app. Questo non succede regolarmente; in realtà, è successo solo due volte.Perché la mia app .Net sta contattando Verisign?

L'ultima volta che è successo, sono stato in grado di avviare Wireshark prima di dire al mio firewall di consentire l'accesso alla rete. C'era no trasferimento dati reale che posso dire. Catturava solo 9 pacchetti TCP: alcuni pacchetti SYN, alcuni SYN/ACK e alcuni pacchetti RST (i pacchetti RST erano interrotti). Sospetto una delle mie DLL di terze parti, ma non vedo perché una libreria matematica o una libreria di manipolazione di immagini proverebbero a stabilire una connessione con Verisign e quindi non fare nulla con quella connessione.

I miei clienti si trovano in organizzazioni con una protezione rigorosa; l'ultima cosa che voglio è una telefonata che mi chieda perché la mia applicazione si connette a Internet.

Qualcuno sa perché questo sta accadendo? C'è un modo per evitare che accada?

Il file .pcap generato da Wireshark è here.

risposta

8

Ecco un buon collegamento a blog spiegare che cosa sta succedendo, e le modifiche al file di configurazione dell'applicazione è possibile aggiungere alla impedire che accada, in particolare:

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

E 'legato alla Authenticode firma, e la PublisherMembershipCondition che quasi sicuramente non ne ho bisogno. Questo è spiegato qui su MSDN

Una cosa da notare è che .Net 2.0 e .Net 3.0 ha aggiunto il supporto per questa configurazione con SP1. .Net 3.5 supporta questo senza alcun service pack.

0

Sono queste dll di terze parti a pagamento che possono eventualmente eseguire una sorta di autenticazione di utilizzo?

+0

Sono pagati, ma il loro meccanismo di licenza consiste nel cercare una chiave di licenza inclusa in un file sul computer. – Phil

+0

Bene, questo è un meccanismo di licenza. L'altro non sembra avere un meccanismo di verifica della licenza. – Phil

1

Se si tratta di un'app Web con SSL, potrebbe essere IE provare a verificare che il certificato non sia stato revocato.

+0

AFAIK, lo stesso può essere vero per tutti gli assembly .net firmati, non necessariamente connessi a IE o alle app Web. Il sistema contatta un server CRL (Certificate Revocation List) per verificare se non ci si può più fidare di nulla. Esiste un'opzione di sistema per disabilitare questo comportamento, ma non riesco a ricordare dove sia. – atzz

2

Se si firma l'assembly con un certificato reale, il runtime .net deve controllare la firma digitale.

Problemi correlati