Pregunta

¿Para qué es un archivo .snk? Sé que significa Clave fuertemente nombrada , pero todas las explicaciones de qué es y cómo funciona se me pasan por la cabeza.

¿Hay alguna explicación simple sobre cómo se usa una clave con un nombre fuerte y cómo funciona?

¿Fue útil?

Solución

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   proporcionado): más una clave pública y un   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, un '' hash '' se construye a partir del contenido del ensamblado y el hash se cifra con la clave privada. Luego, este hash firmado se coloca en el ensamblado junto con la clave pública de .snk.

Más tarde, cuando alguien necesita verificar la integridad del ensamblado con nombre seguro, ellos crean un hash del contenido del ensamblado y usan la clave pública del ensamblado para descifrar el hash que vino con el ensamblaje: si los dos hashes coinciden, la verificación del ensamblaje 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 " Los secretos de los nombres fuertes " ;. Hace un excelente trabajo al explicar estos conceptos con más detalle. Con fotos.

Otros consejos

  

En un mundo the.Net, el archivo SNK se utiliza para firmar sus archivos binarios compilados.   Esto permite que sucedan un par de cosas:

  1. Puede registrar la Asamblea en el GAC (Caché de Asamblea Global) . Básicamente para que pueda consultarlo desde muchos lugares en la misma máquina sin tener que mantener varias copias).
  2. Puede usar sus Binarios desde otros binarios que también están firmados (este es un comportamiento viral extraño con respecto a los ensamblados firmados).
  3. Su ensamblaje no puede ser modificado (fácilmente) por terceros que no tienen acceso al archivo SNK, lo que proporciona al menos una pequeña cantidad de seguridad.

No estoy familiarizado con el funcionamiento del servidor BizTalk , así 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 utiliza 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 " producido por la utilidad sn en el conjunto de utilidades 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. Posteriormente, 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 manipulado, 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 otra persona 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 luego 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top