Share via


Herramienta Nombre seguro (Sn.exe)

Esta herramienta ayuda a 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.

sn [-quiet][option [parameter(s)]]
Opción Descripción
-c [csp] Establece el proveedor de servicios de cifrado (CSP) predeterminado que se utiliza 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 proveedor CSP de nombres seguros.
-D assembly1 assembly2 Comprueba si dos ensamblados difieren sólo en la firma. Esta opción se suele utilizar como comprobación posterior a la nueva firma de un ensamblado con un par de claves diferente.
-e assembly outfile Extrae la clave pública del argumento assembly y la almacena en el argumento outfile.
-h Muestra la sintaxis de comandos y opciones para la herramienta.
-i infile container Instala el par de claves desde el argumento infile en el contenedor de claves especificado. El contenedor de claves reside en el proveedor CSP de nombres seguros.
-k outfile Genera un par de claves nuevo y lo escribe en el archivo especificado.
-m [y|n] Especifica si los contenedores de claves son específicos del equipo o del usuario. Si se especifica y, los contenedores de claves son específicos del equipo. Si se especifica n, los contenedores de claves son específicos del usuario.

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

-o infile [outfile] Extrae la clave pública del argumento infile y la almacena en un archivo .csv. Los bytes de la clave pública se separan con una coma. Este formato es útil para integrar como parte del código fuente referencias a claves en forma de matrices inicializadas. Si no se especifica un argumento outfile, esta opción coloca los resultados en el Portapapeles.
-p infile outfile Extrae la clave pública del par de claves de infile y la almacena en el argumento outfile. Esta clave pública se puede utilizar para retrasar la firma de un ensamblado utilizando las opciones /delaysign+ y /keyfile de la herramienta Assembly Linker (Al.exe). Cuando se retrasa la firma de un ensamblado, sólo 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 Extrae la clave pública del par de claves de container y la almacena en el argumento outfile.
-q[uiet] Especifica el método no interactivo; suprime la presentación de mensajes de aprobación.
-R assembly infile Vuelve a firmar un ensamblado firmado anteriormente o con retraso de firma utilizando el par de claves del argumento infile.
-Rc assembly container Vuelve a firmar un ensamblado firmado anteriormente o con retraso de firma utilizando el par de claves del argumento container.
-t[p] infile Muestra el símbolo (token) de la clave pública almacenada en el argumento infile. El contenido de este argumento debe haberse generado previamente utilizando la opción -p.

Sn.exe calcula el valor del símbolo utilizando una función hash de la clave pública. Para ahorrar espacio, Common Language Runtime almacena símbolos de claves públicas 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 símbolo.

-T[p] assembly Muestra el símbolo (token) de la clave pública existente en el argumento assembly. El argumento assembly debe ser el nombre de un archivo que contiene un manifiesto del ensamblado.

Sn.exe calcula el valor del símbolo utilizando una función hash de la clave pública. Para ahorrar espacio, Common Language Runtime almacena símbolos de claves públicas 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 símbolo.

-v assembly Comprueba el nombre seguro del argumento assembly, donde assembly es el nombre de un archivo que contiene un manifiesto del ensamblado.
-vf assembly Comprueba el nombre seguro del argumento assembly. A diferencia de la opción -v, -vf fuerza la comprobación aunque se haya deshabilitado con la opción -Vr.
-Vl Enumera los valores actuales para la comprobación de nombre seguro en este equipo.
-Vr assembly [userlist] [infile] Registra el argumento assembly para que se omita la comprobación. Opcionalmente se puede especificar una lista de nombres de usuario separados con comas. Si se especifica el argumento infile, la comprobación permanece habilitada, pero la clave pública de este argumento se utiliza en operaciones de comprobación. El argumento Assembly se puede especificar con la forma *, strongname para registrar todos los ensamblados con el nombre seguro especificado. El argumento strongname se debe especificar como una cadena de dígitos hexadecimales que representa la forma con símbolo (token) de la clave pública. Vea las opciones -t y -T para mostrar el símbolo de la clave pública.
PRECAUCIÓN   Utilice esta opción sólo durante el desarrollo. Al agregar un ensamblado a la lista de comprobación de omisió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 símbolo de clave pública) del ensamblado agregado a la lista de comprobación de omisión para imitar su identidad. Esto permitiría que el ensamblado malicioso pasase también por alto la comprobación.
-Vu assembly Anula el registro del argumento assembly para que se omita la comprobación. Las mismas reglas en cuanto a denominación de ensamblados que se aplican a -Vr son aplicables a -Vu.
-Vx Quita todas las entradas de omisión de comprobaciones.
-? Muestra la sintaxis de comandos y opciones para la herramienta.

Nota    Todas las opciones de Sn.exe hacen distinción de mayúsculas y minúsculas y se deben escribir con la misma grafía que se muestra en esta tabla para que la herramienta pueda reconocerlas.

Comentarios

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

Ejemplos

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

sn -k keyPair.snk

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

sn -i keyPair.snk MyContainer

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

sn -p keyPair.snk publicKey.snk

El comando siguiente comprueba el ensamblado MyAsm.dll.

sn -v MyAsm.dll

El comando siguiente elimina MyContainer del proveedor CSP predeterminado.

sn -d MyContainer

Vea también

Herramientas de .NET Framework | Herramienta Assembly Linker (Al.exe) | Ensamblados con nombre seguro