¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Importante Es posible que este documento no represente los procedimientos recomendados para el desarrollo actual. Puede que los vínculos a las descargas y otros recursos ya no sean válidos. Encontrará aquí la versión que se recomienda en la actualidad.

Firma de nombre seguro para aplicaciones administradas

Actualización: noviembre 2007

La firma de nombre seguro o nombre seguro, proporciona a un componente de software una identidad única y global, que no puede ser suplantada por nadie. Los nombres seguros se utilizan para garantizar que las dependencias de componente e instrucciones de configuración se asignen con precisión al componente y versión de componente correctos.

Un nombre seguro está formado por la identidad del ensamblado (nombre de texto sencillo, número de versión e información de referencia cultural), además de una clave pública y una firma digital.

Para los proyectos de Visual C# y Visual Basic, Visual Studio habilita el nombre seguro mediante el panel Firma en el Diseñador de proyectos; consulte Página Firma, Diseñador de proyectos.

Para los proyectos de Visual C++, utilice las opciones del vinculador para firmar el ensamblado; vea Ensamblados de nombre seguro (Firma de ensamblados).

El nombre seguro proporciona a una aplicación o componente una identidad única que otro software puede utilizar para hacer referencia explícitamente a dicha aplicación o componente. Por ejemplo, los nombres seguros permiten a los autores y administradores de la aplicación especificar una versión de servicio concreta que se va a usar para un componente compartido. Esto permite a las diferentes aplicaciones especificar versiones diferentes sin afectar a otras aplicaciones. Además, el nombre seguro de un componente se puede utilizar como prueba de seguridad para establecer una relación de confianza entre dos componentes.

Qué puede tener un nombre seguro

Se puede asignar un nombre seguro a ensamblados de .NET Framework y manifiestos XML. Se incluyen las siguientes:

  • Ensamblados de aplicación (.exe)

  • Manifiestos de aplicación (.exe .manifest)

  • Manifiestos de implementación (.application)

  • Ensamblados de componente compartido (.dll)

Qué debe tener un nombre seguro

Los archivos DLL compartidos deben tener nombre seguro. Independientemente de si un archivo DLL se implementará en la Caché de ensamblados global, se recomienda un nombre seguro cuando el archivo DLL no es un detalle de implementación privado de la aplicación, sino un servicio general que pueden utilizar varias aplicaciones.

Qué tiene que tener un nombre seguro

Se debe crear un nombre seguro para los siguientes elementos:

  • Archivos DLL, si desea implementarlos en la Caché de ensamblados global (GAC).

  • Manifiestos de aplicación e implementación de ClickOnce. De manera predeterminada, el sistema de proyectos de Visual Studio lo habilita para las aplicaciones implementadas por ClickOnce.

  • Ensamblados de interoperabilidad primarios, que se utilizan para la interoperabilidad COM. La utilidad TLBIMP exige la creación de un nombre seguro al crear un ensamblado de interoperabilidad primario a partir de una biblioteca de tipos COM.

Qué no debe tener un nombre seguro

En general, se debe evitar crear un nombre seguro para los ensamblados EXE de la aplicación. Una aplicación o un componente con nombre seguro no puede hacer referencia a un componente con nombre no seguro. Por consiguiente, asignar un nombre seguro a un archivo EXE impide que éste haga referencia a cualquier DLL con nombre no seguro que se implemente con la aplicación.

Por esta razón, el sistema de proyectos de Visual Studio no genera un nombre seguro para los ensamblados EXE de la aplicación. En su lugar, genera nombres seguros para el manifiesto de la aplicación, que internamente señala al archivo EXE de la aplicación sin nombre seguro.

Además, es posible que desee evitar componentes de nombre seguro que son privados para la aplicación. En este caso, generar nombres seguros puede dificultar la administración de dependencias y agregar una sobrecarga innecesaria a los componentes privados.

En Visual Studio, se asigna un nombre seguro a una aplicación o componente utilizando el panel Firma del Diseñador de proyectos. El panel Firma admite dos métodos para crear un nombre seguro: utilizar un archivo de clave de nombre seguro o utilizar un proveedor de claves. Para obtener información sobre cómo firmar manifiestos, consulte Cómo: Firmar aplicaciones y manifiestos de implementación; para obtener información sobre cómo crear archivos de clave de nombre seguro (.snk), consulte Cómo: Crear un par de claves privada y pública.

Al utilizar el método de archivo de clave, puede utilizar un archivo de clave existente o crear uno nuevo. Siempre debe proteger su archivo de clave con una contraseña para evitar que alguien más lo utilice.

Los proveedores de claves o almacenes de certificados proporcionan otros medios para proteger sus claves de nombre seguro. Algunos proveedores de claves utilizan una tarjeta inteligente como medio de comprobar su identidad y evitar le roben su clave.

No se puede dar servicio a un componente con nombre seguro o actualizarlo copiando una nueva versión sobre la anterior.

Puede actualizar una DLL con nombre no seguro de un directorio de aplicaciones con sólo copiar una nueva versión en ese directorio. Common Language Runtime (CLR) cargará la versión que esté físicamente presente.

Con archivos DLL con nombre seguro, debe volver a compilar la aplicación completa, de modo que todas las referencias de ensamblado señalen a la nueva versión, o debe actualizar el archivo .config de la aplicación para indicar el tiempo de ejecución necesario para cargar la nueva versión en lugar de la anterior.

Aunque los componentes con nombre seguro requieren algo más de mantenimiento, el beneficio es que las aplicaciones pueden ser muy explícitas acerca de las versiones de otros componentes que requieren en tiempo de ejecución.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft