2010-04-21 15 views
11

me di cuenta de que después de que uso AssemblyDelaySignAttribute para indicar que un conjunto está en desarrollo y no tiene que ser firmado ahora, voy a tener que usar sn -vr foolib.dll para inscribirse en la verificación del nombre fuerte para ser apagó para este ensamblaje.¿Cuál es el punto de la demora en la firma de un ensamblado .NET?

¿Cuál es el punto de hacer esto círculo? ¿Por qué no dejar el ensamblaje sin firmar hasta que esté completo? ¿No es menos molesto?

Respuesta

17

un par de razones ...

  1. No se pueden agregar ensamblados sin un nombre seguro o el GAC
  2. Relacionado con el n. ° 1, los ensamblajes que no están en el GAC no se benefician mucho de NGEN
  3. Los ensamblajes con nombres fuertes muestran un comportamiento diferente cuando se trata de ensamblaje y carga con nombres parciales.
  4. asambleas sin un nombre seguro no pueden ser referenciados por un fuerte ensamblado denominado

Así, en organizaciones en las que el proceso de firma está estrechamente controlada, que ayuda a ser capaz de fingir a cabo para el desarrollo.

+0

Gracias Josh .... – smwikipedia

+0

una de las pocas respuestas que realmente explican la _motivación_, no solo el caso de uso o el mecanismo: ¡aprobación! – staafl

+0

Lo siento, soy nuevo en esto y me relaciono con la pregunta, pero no puedo entender esta respuesta. ¿No son esas 4 razones que explican la necesidad de una firma fuerte? Pero si, en un entorno de desarrollo u otro, decide que está preparado para usar un ensamblado que no está fuertemente firmado, y pensé que esta era la verdadera pregunta: ¿qué es más seguro o deseable sobre la "firma retrasada" en comparación con no firmar en absoluto? ? ¿Por qué no podemos tener un entorno de desarrollo libre de firmas y luego sufrir el dolor de la firma cuando en realidad agrega seguridad? ¿Seguramente una demora para firmar con una clave pública es una broma?Cualquier idea apreciada ... –

3

Este es el escenario que Firma retardada se supone que previene:

Su empresa hace que los sistemas de comercio para los bancos. Jack es un empleado descontento. Ha estado trabajando en su equipo durante un año y ha tenido acceso a la clave privada utilizada para firmar las asambleas porque es parte de la construcción que todos utilizan. Jack tiene una explosión con su manager y se va con todo el código fuente. Ahora Jack decide vengarse. Él va a pescar a los empleados del banco donde se encuentra su software y obtiene algunos de ellos para descargar una utilidad que cambia un ensamblaje legítimo por uno que Jack construyó y firmó. Debido a que las firmas coinciden, el programa de llamadas nunca sabe que un componente crítico se ha visto comprometido.

El propósito de 'Delay Signing' es que solo los ingenieros de construcción tienen acceso a la firma. Esto, teóricamente, reduce el número de personas en las que necesita confiar implícitamente con su código fuente. Se espera que los ingenieros de software desactiven (ignoren) la comprobación de nombres fuertes cuando compilan y depuran.

Cuestiones relacionadas