2009-12-17 12 views
7

Escribí una aplicación .Net que no tiene nada que ver con la comunicación de red. No hay una sola línea de código en toda la aplicación que utiliza el NIC, pero mi firewall lo ha atrapado al intentar ponerse en contacto con Verisign por algún motivo cuando se inicia la aplicación. Esto no sucede regularmente; como cuestión de hecho, solo ha sucedido dos veces.¿Por qué mi aplicación .Net contacta con Verisign?

La última vez que sucedió, pude iniciar Wireshark antes de decirle a mi firewall que permitiera el acceso a la red. Hubo sin transferencia de datos real que puedo decir. Solo capturó 9 paquetes TCP: algunos paquetes SYN, algunos SYN/ACK y algunos paquetes RST (los paquetes RST estaban rotos). Sospecharía uno de mis dlls de terceros, pero no veo por qué una biblioteca matemática o una biblioteca de manipulación de imágenes intentaría establecer una conexión con Verisign y luego no hacer nada con esa conexión.

Mis clientes están en organizaciones con estricta seguridad; lo último que quiero es una llamada telefónica que me pregunte por qué mi aplicación se está conectando a Internet.

¿Alguien sabe por qué sucede esto? ¿Hay alguna manera de evitar que suceda?

El archivo .pcap que generó Wireshark es here.

Respuesta

8

Aquí es un buen enlace a blog explicar lo que está pasando, y los cambios en el archivo de configuración de la aplicación se pueden agregar a evitar que suceda, en concreto:

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

Está relacionado con la firma authenticode y el PublisherMembershipCondition que se casi definitivamente no es necesario. Eso se explica aquí en MSDN

Una cosa a tener en cuenta es que .Net 2.0 y .Net 3.0 solo agregaron soporte para esta configuración con SP1. .Net 3.5 lo admite sin ningún service pack.

0

¿Son estos dlls de terceros pagados que posiblemente estén haciendo algún tipo de autenticación de uso?

+0

Se pagan, pero su mecanismo de licencia consiste en buscar una clave de licencia incluida en un archivo en la computadora. – Phil

+0

Bueno, ese es un mecanismo de licencia. El otro no parece tener un mecanismo de verificación de licencia. – Phil

1

Si se trata de una aplicación web con SSL, podría ser IE tratando de verificar que el certificado no ha sido revocado.

+0

AFAIK, lo mismo puede ser cierto para cualquier ensamblado .net firmado, no necesariamente conectado a IE o aplicaciones web. El sistema se contactará con un servidor de la Lista de revocación de certificados (CRL) para verificar si ya no se puede confiar en algo. Existe una opción para todo el sistema para deshabilitar este comportamiento, pero no recuerdo dónde está. – atzz

2

Si firma su ensamblado con un certificado real, el tiempo de ejecución .net debe verificar la firma digital.

Cuestiones relacionadas