Respuestas:
El archivo .snk se usa para aplicar un nombre seguro a un ensamblado .NET . un nombre tan fuerte consiste en
un nombre de texto simple, número de versión e información cultural (si se proporciona), más una clave pública y una firma digital.
El SNK contiene un par de claves único: una clave privada y pública que se puede utilizar para garantizar que tenga un nombre seguro único para el ensamblado. Cuando el ensamblado tiene un nombre fuerte, se construye un "hash" a partir del contenido del ensamblaje, y el hash se cifra con la clave privada. Luego, este hash firmado se coloca en el ensamblado junto con la clave pública del .snk.
Más tarde, cuando se necesita a alguien para verificar la integridad de la fuerte llamado a montar, que construyen un hash de los contenidos de la asamblea, y el uso de la clave pública del conjunto de desencriptar el hash que se incluye con el conjunto - si los dos valores hash coinciden, La verificación de montaje pasa.
Es importante poder verificar los ensamblados de esta manera para garantizar que nadie intercambie un ensamblaje por uno malicioso que subvierta toda la aplicación. Esta es la razón por la cual no se confía en los ensamblados con nombres no seguros de la misma manera que los ensamblados con nombres fuertes, por lo que no se pueden colocar en el GAC. Además, hay una cadena de confianza: no puede generar un ensamblado con un nombre fuerte que haga referencia a ensamblados sin nombre.
El artículo " The Secrets of Strong Naming (archivado en Wayback Machine) ". Hace un excelente trabajo al explicar estos conceptos con más detalle. Con imagenes.
En un mundo the.Net, el archivo SNK se utiliza para firmar sus archivos binarios compilados. Esto permite que sucedan un par de cosas:
No estoy familiarizado con el funcionamiento del servidor BizTalk , por lo que no creo que pueda arrojar mucha luz sobre el propósito específico que cumplen dentro de ese entorno.
Espero que esto haya sido de alguna ayuda.
El archivo .snk se usa para firmar los ensamblados para poder agregarlos al Caché de ensamblados global (GAC).
El archivo .snk contiene los tokens públicos y privados para su clave. Cuando desee firmar algunos datos (o binarios) con esa clave, se calcula una suma de verificación sobre los datos, que luego se cifra con el token privado. La suma de verificación cifrada se agrega a los datos. Cualquiera puede usar el token público de su clave para descifrar la suma de verificación y compararla con la suma de verificación que calcularon para verificar que los datos firmados no hayan sido alterados.
Puede leer más sobre la criptografía de clave pública en http://en.wikipedia.org/wiki/Public-key_cryptography .
Un archivo .snk es una versión persistente de su "Clave" producida por la utilidad sn en el conjunto de utilidades del marco. Luego usa este archivo para 'firmar digitalmente' sus ensamblajes. Es una clave de 2 partes ... combinación de clave privada-pública. La parte pública de la clave se publica, es decir, es conocida por todos. La parte privada es conocida solo por usted, el desarrollador del componente / aplicación y está destinada a mantenerse así.
Cuando firma su ensamblaje, utiliza la clave privada y un valor hash para su ensamblaje para crear una firma digital que está incrustada en su ensamblaje. A partir de entonces, cualquier persona que cargue su ensamblaje pasa por un paso de verificación. La clave pública se usa para validar si el ensamblado realmente proviene de usted ... solo necesita la clave pública para esto (que también está incrustada en forma de token en el manifiesto del ensamblado). Si el ensamblaje ha sido alterado, el valor de hash sería diferente y la carga del ensamblado sería abortada. Este es un mecanismo de seguridad.
Se utiliza un archivo .snk para garantizar que alguien más no pueda deslizar un ensamblaje propio en el lugar del suyo. Proporciona un par de claves de cifrado / descifrado.
Cuando se utiliza un archivo .snk para firmar un ensamblaje, se calcula un valor de código hash a partir del archivo de ensamblaje y se cifra utilizando la clave privada. Ese "resumen" cifrado se agrega al ensamblado junto con la clave pública del archivo .snk.
Luego, cuando alguien recibe su ensamblaje, también puede calcular ese valor de código hash. Utilizan la clave pública para descifrar la que calculó y comparar los valores calculados. Si el conjunto se hubiera cambiado, esos valores serán diferentes y el usuario del conjunto sabrá que el conjunto que tiene no es el que proporcionó.
En el contexto de BizTalk Server, quien cree los ensamblados personalizados que utiliza su solución BizTalk necesitará usar un archivo .snk para firmar el ensamblado para que el servidor BizTalk pueda cargarlo en el GAC y usarlo.