Exportar (0) Imprimir
Expandir todo

Firma de nombre seguro para aplicaciones administradas

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#, Visual Basic y Visual J#, Visual Studio habilita el nombre seguro mediante el panel Firma en el Diseñador de proyectos; vea 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).

Razones para utilizar el nombre seguro

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. Entre los que se encuentran:

  • 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. El sistema de proyectos de Visual Studio lo habilita de forma predeterminada 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 componente con nombre seguro no puede hacer referencia a un componente que no tiene un nombre seguro; por tanto, al generar un nombre seguro para un EXE se evita que éste haga referencia a archivos DLL sin nombre seguro, que se implementan 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.

Cómo asignar un nombre seguro

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 de 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, vea Cómo: Firmar aplicaciones y manifiestos de implementación; para obtener información sobre cómo crear archivos de clave de nombre seguro (.snk), vea 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.

Actualizar componentes con nombre seguro

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

Puede actualizar un archivo DLL sin nombre seguro en un directorio de aplicaciones simplemente copiando una nueva versión en el directorio de aplicaciones; Common Language Runtime (CLR) cargará cualquier 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.

Vea también

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft