Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

Sn.exe (Strong Name Tool)

 

La herramienta de Nombre seguro (Sn.exe) permite firmar ensamblados con nombres seguros.   Sn.exe proporciona opciones para la administración de claves, así como para la generación y comprobación de firmas.  

Para obtener más información acerca de nombres seguros y ensamblados con nombre seguro, consulte Ensamblados con nombre seguro y Cómo: Firmar un ensamblado con un nombre seguro.

La herramienta Nombre seguro se instala automáticamente con Visual Studio.  Para iniciar la herramienta, utilice el símbolo del sistema para desarrolladores (o el símbolo del sistema de Visual Studio en Windows 7).  Para obtener más información, consulte Símbolo del sistema para desarrolladores de Visual Studio.  

System_CAPS_noteNota

En los equipos de 64 bits, ejecute la versión de Sn.exe de 32 bits mediante el símbolo del sistema de Visual Studio y la versión de 64 bits mediante el símbolo del sistema de Visual Studio x64 Win64.

En el símbolo del sistema, escriba lo siguiente:


sn [-quiet][option [parameter(s)]]

Opción

Descripción

-a identityKeyPairFile signaturePublicKeyFile

Genera datos de AssemblySignatureKeyAttribute para migrar la clave de identidad a la clave de firma desde un archivo.

-ac identityPublicKeyFile identityKeyPairContainer signaturePublicKeyFile

Genera datos de AssemblySignatureKeyAttribute para migrar la clave de identidad a la clave de firma desde un contenedor de claves.

-c [csp]

Establece el proveedor de servicios criptográficos (CSP) predeterminado que se usa para firmar con nombres seguros.  Este valor se aplica al equipo completo.  Si no se especifica un nombre CSP, Sn.exe borra el valor actual.  

-d container

Elimina el contenedor de claves especificado del CSP de nombres seguros.

-D assembly1 assembly2

Comprueba si dos ensamblados difieren solo en la firma.  Esta opción se suele usar para realizar una comprobación después de volver a firmar un ensamblado con un par de claves diferente.  

-e assembly outfile

Extrae la clave pública de assembly y la almacena en outfile.

-h

Muestra las opciones y la sintaxis de los comandos para la herramienta.

-i infile container

Instala el par de claves de infile en el contenedor de claves especificado.  El contenedor de claves reside en el CSP de nombres seguros.  

-k [keysize] outfile

Genera una nueva clave RSACryptoServiceProvider del tamaño especificado y la escribe en el archivo especificado.  En el archivo se escriben tanto una clave pública como una clave privada.  

Si no especifica un tamaño de clave y tiene instalado Microsoft Enhanced Cryptographic Provider, se generará una clave de 1.024 bits de forma predeterminada; en caso contrario, se generará una clave de 512 bits.

El parámetro keysize admite longitudes de clave de 384 bits a 16.384 bits, en incrementos de 8 bits, si tiene instalado Microsoft Enhanced Cryptographic Provider.  Admite longitudes de clave de 384 bits a 512 bits, en incrementos de 8 bits, si tiene Microsoft Base Cryptographic Provider instalado.  

-m [y| n]

Especifica si los contenedores de claves son específicos del equipo o del usuario.  Si especifica y, los contenedores de claves son específicos del equipo.  Si especifica n, los contenedores de claves son específicos del usuario.  

Si no especifica y ni n, esta opción muestra el valor actual.

-o infile [outfile]

Extrae la clave pública de infile y la almacena en un archivo .csv.  Una coma separa cada byte de la clave pública.  Este formato resulta útil para incluir en el código fuente las referencias a las claves en forma de matrices inicializadas.  Si no especifica un parámetro outfile, esta opción coloca la salida en el Portapapeles.  

System_CAPS_noteNota

Esta opción no comprueba si la entrada es únicamente una clave pública.  Si infile contiene un par de claves con una clave privada, la clave privada también se extrae.  

-p infile outfile [hashalg]

Extrae la clave pública del par de claves de infile y la almacena en outfile, opcionalmente mediante el algoritmo de RSA especificado por hashalg.  Esta clave pública se puede usar para retrasar la firma de un ensamblado mediante las opciones /delaysign+ y /keyfile de Assembly Linker (Al.exe).  Cuando se retrasa la firma de un ensamblado, únicamente se establece en tiempo de compilación la clave pública, y se reserva espacio en el archivo para la firma que se agregará más tarde, cuando se conozca la clave privada.  

-pc container outfile [hashalg]

Extrae la clave pública del par de claves de container y la almacena en outfile.  Si usa la opción hashalg, la clave pública se extrae mediante el algoritmo de RSA.  

-Pb [y| n]

Especifica si se impone la directiva de omisión de nombres seguros.  Si especifica y, no se validan los nombres seguros de los ensamblados de plena confianza cuando se cargan en un objeto AppDomain de plena confianza.  Si especifica n, se valida la corrección de los nombres seguros, pero no se valida un nombre seguro específico.   StrongNameIdentityPermission no tiene ningún efecto en ensamblados de plena confianza.  Debe realizar su propia comprobación para buscar coincidencias con un nombre seguro.  

Si no especifica y ni n, esta opción muestra el valor actual.  De manera predeterminada, es y.  

System_CAPS_noteNota

En equipos de 64 bits, debe establecer este parámetro tanto en las instancias de 32 bits como en las de 64 bits de Sn.exe.

-q[uiet]

Especifica el modo silencioso; suprime la presentación de mensajes de operaciones correctas.

-R[aassembly infile

Vuelve a firmar un ensamblado firmado anteriormente o un ensamblado con firma retrasada mediante el par de claves de infile.

Si se usa -Ra, los valores de hash se vuelven a calcular para todos los archivos del ensamblado.

-Rc[aassembly container

Vuelve a firmar un ensamblado firmado anteriormente o uno con firma retrasada mediante el par de claves de container.

Si se usa -Rca los valores de hash se vuelven a calcular para todos los archivos del ensamblado.

-Rh assembly

Vuelve a calcular los valores de hash para todos los archivos del ensamblado.

-t[p] infile

Muestra el token de la clave pública almacenada en infile.  El contenido de infile debe ser una clave pública generada previamente a partir de un archivo de par de claves mediante -p.  No use la opción -t[p] para extraer el token directamente de un archivo de par de claves.  

Sn.exe calcula el token mediante una función hash de la clave pública.  Para ahorrar espacio, Common Language Runtime almacena tokens de clave pública en el manifiesto como parte de una referencia a otro ensamblado cuando graba una dependencia en un ensamblado que tiene un nombre seguro.  La opción -tp muestra la clave pública además del token.  Si se ha aplicado el atributo AssemblySignatureKeyAttribute al ensamblado, el token es para la clave de identidad, y se muestran el nombre del algoritmo hash y la clave de identidad.  

Tenga en cuenta que esta opción no comprueba la firma del ensamblado y no se debe usar para tomar decisiones de confianza.  Esta opción solo muestra los datos de token de clave pública sin formato.  

-T[p] assembly

Muestra el token de clave pública de assembly. El argumento assembly debe ser el nombre de un archivo que contiene un manifiesto del ensamblado.

Sn.exe calcula el token mediante una función hash de la clave pública.  Para ahorrar espacio, runtime almacena tokens de clave pública en el manifiesto como parte de una referencia a otro ensamblado cuando graba una dependencia en un ensamblado que tiene un nombre seguro.  La opción -Tp muestra la clave pública además del token.  Si se ha aplicado el atributo AssemblySignatureKeyAttribute al ensamblado, el token es para la clave de identidad, y se muestran el nombre del algoritmo hash y la clave de identidad.  

Tenga en cuenta que esta opción no comprueba la firma del ensamblado y no se debe usar para tomar decisiones de confianza.  Esta opción solo muestra los datos de token de clave pública sin formato.  

-TS assembly infile

Aplica una firma de generación de prueba a un objeto assembly firmado parcial o totalmente con el par de claves de infile.

-TSc assembly container

Aplica una firma de generación de prueba a un objeto assembly firmado parcial o totalmente con el par de claves del contenedor de claves container.

-v assembly

Comprueba el nombre seguro de assembly, donde assembly es el nombre de un archivo que contiene un manifiesto del ensamblado.

-vf assembly

Comprueba el nombre seguro de assembly. A diferencia de la opción -v, -vf fuerza la comprobación aunque se haya deshabilitado con la opción -Vr.

-Vk regfile.reg assembly [userlist] [infile]

Crea un archivo de entradas de registro (.reg) que puede usar para registrar el ensamblado especificado para pasar por alto la comprobación.  Las reglas de nomenclatura de ensamblados que se aplican a la opción -Vr también se aplican a la opción –Vk.  Para obtener información sobre las opciones userlist e infile, vea la opción –Vr.  

-Vl

Enumera los valores actuales de la comprobación de nombre seguro en este equipo.

-Vr assembly [userlist] [infile]

Registra assembly para pasar por alto la comprobación.  Opcionalmente, puede especificar una lista de nombres de usuario separados por comas a la que se aplicará la omisión de comprobación.  Si especifica infile, la comprobación permanece habilitada, pero la clave pública de infile se usa en operaciones de comprobación.  Puede especificar assembly con el formato *, strongname para registrar todos los ensamblados con el nombre seguro especificado.  Para strongname, especifique la cadena de dígitos hexadecimales que representa la forma con tokens de la clave pública.  Vea las opciones -t y -T para mostrar el token de clave pública.  

System_CAPS_cautionPrecaución

Use esta opción solo durante la fase de desarrollo.  Al agregar un ensamblado a la lista de omisiones de comprobación se produce una vulnerabilidad en la seguridad.  Puede que un ensamblado malicioso utilice el nombre completo especificado (nombre de ensamblado, versión, referencia cultural y token de clave pública) del ensamblado existente en la lista de omisiones de comprobación para imitar su identidad.  Esto permitiría que el ensamblado malintencionado se pasase también por alto durante la comprobación.  

-Vu assembly

Anula el registro de assembly para pasar por alto la comprobación.  Las mismas reglas de nomenclatura de ensamblados que se aplican a -Vr son aplicables a -Vu.  

-Vx

Quita todas las entradas de omisión de comprobación.

-?

Muestra las opciones y la sintaxis de los comandos para la herramienta.

System_CAPS_noteNota

Todas las opciones de Sn.exe distinguen entre mayúsculas y minúsculas, y se deben escribir exactamente como se muestra en esta tabla para que la herramienta pueda reconocerlas.

Las opciones -R y –Rc son útiles con ensamblados firmados con retraso.  En este escenario, únicamente se ha establecido en tiempo de compilación la clave pública, y la firma se agrega más tarde, cuando se conoce la clave privada.  

System_CAPS_noteNota

Para parámetros (por ejemplo, –Vr) que escriben en recursos protegidos, como el Registro, ejecute SN.exe como un administrador.

El comando siguiente crea un nuevo par de claves aleatorio y lo almacena en el keyPair.snk.

sn -k keyPair.snk

El comando siguiente almacena la clave en keyPair.snk en el contenedor MyContainer del CSP de nombres seguros.

sn -i keyPair.snk MyContainer

El comando siguiente extrae la clave pública de keyPair.snk y la almacena en publicKey.snk.

sn -p keyPair.snk publicKey.snk

El siguiente comando muestra la clave pública y el token para la clave pública incluida en publicKey.snk.

sn -tp publicKey.snk

El comando siguiente comprueba el ensamblado MyAsm.dll.

sn -v MyAsm.dll

El comando siguiente elimina MyContainer del CSP predeterminado.

sn -d MyContainer
Mostrar: