Compartir a través de


ClickOnce y Authenticode

Authenticode es una tecnología de Microsoft que utiliza criptografía estándar del sector para firmar el código de aplicación con certificados digitales que comprueban la autenticidad del editor de la aplicación. Cuando se usa Authenticode en la implementación de aplicaciones, ClickOnce reduce el riesgo de padecer un caballo de Troya. Un caballo de Troya es un virus u otro programa dañino que terceras personas malintencionadas hacen parecer legítimo y le atribuyen un origen prestigioso y de confianza. La firma de las implementaciones ClickOnce con un certificado digital es un paso opcional para comprobar que no se han alterado los ensamblados ni los archivos.

Las secciones siguientes describen los distintos tipos de certificados digitales usados en Authenticode, cómo se validan los certificados utilizando entidades de certificación, el rol de la marca de fecha y hora de los certificados y los métodos de almacenamiento disponibles para los certificados.

Authenticode y firma de código

Un certificado digital es un archivo que contiene un par de claves criptográficas pública-privada, junto con metadatos que describen al editor a quien se concedió el certificado y la entidad que emitió ese certificado.

Hay varios tipos de certificado Authenticode. Cada uno se configura para diferentes tipos de firma. En las aplicaciones ClickOnce, debe tener un certificado Authenticode que sea válido para poder firmar el código. Si intenta firmar una aplicación ClickOnce con otro tipo de certificado, como un certificado digital de correo electrónico, no funcionará. Para obtener más información, vea Introduction to Code Signing.

Puede obtener un certificado para la firma de código de tres maneras distintas:

  • Comprar una a un proveedor de certificados.

  • Recibir uno de un grupo de su organización responsable de crear certificados digitales.

  • Generar un certificado propio con MakeCert.exe, que se incluye en Kit de desarrollo de software de Windows (SDK).

Cómo ayuda a los usuarios utilizar entidades de certificación|

Un certificado generado mediante la utilidad MakeCert.exe se suele denominar selfcert (autocertificado) o test cert (certificado de prueba). Este tipo de certificado funciona de manera muy parecida a los archivos .snk en .NET Framework. Consta exclusivamente de un par de claves criptográficas pública-privada y no contiene información comprobable sobre el publicador. Puede usar selfcerts para implementar aplicaciones ClickOnce con un alto nivel de confianza en una intranet. Sin embargo, si estas aplicaciones se ejecutan en un equipo cliente, ClickOnce las identificarán como si procedieran de un publicador desconocido. De forma predeterminada, las aplicaciones ClickOnce firmadas con selfcerts e implementadas a través de Internet no pueden utilizar la implementación de aplicaciones de confianza.

Por el contrario, si recibe un certificado de una entidad de certificación, como un proveedor de certificados o un departamento de su empresa, el certificado ofrece más seguridad a sus usuarios. No sólo identifica al editor del software firmado, sino que coteja esa identidad comprobándola con la entidad emisora que la firmó. Si la entidad emisora no es la autoridad raíz, Authenticode también volverá a "encadenarse" con la autoridad raíz para comprobar que la entidad emisora tiene autorización para emitir certificados. Para una mayor seguridad, siempre que sea posible debería utilizar un certificado emitido por una entidad emisora de certificados.

Para obtener más información sobre cómo generar selfcerts, vea Makecert.exe (Herramienta de creación de certificados).

Marcas de tiempo

Los certificados que se usan para firmar aplicaciones ClickOnce expiran después de un tiempo determinado, normalmente doce meses. Para no tener que volver a firmar constantemente las aplicaciones con nuevos certificados, ClickOnce admite la marca de tiempo. Cuando se firma una aplicación con una marca de tiempo, su certificado se seguirá aceptando incluso después de su expiración, siempre y cuando la marca de tiempo sea válida. Esto permite que se puedan descargar y ejecutar aplicaciones ClickOnce con certificados expirados, pero con marcas de tiempo válidas. También permite que las aplicaciones instaladas con certificados expirados puedan seguir descargando e instalando actualizaciones.

Para incluir una marca de tiempo en un servidor de aplicaciones, debe haber un servidor de marca de tiempo disponible. Para obtener información sobre cómo seleccionar un servidor de marca de tiempo, vea Cómo: Firmar aplicaciones y manifiestos de implementación.

Actualizar certificados expirados

En versiones anteriores de .NET Framework, la actualización de una aplicación con certificado expirado puede dar lugar a que dicha aplicación deje de funcionar. Para solucionar este problema, use uno de los métodos siguientes:

  • Actualice .NET Framework a la versión 2.0 SP1 o posterior en Windows XP, o a la versión 3.5 o posterior en Windows Vista.

  • Desinstale la aplicación y vuelva a instalar una nueva versión con un certificado válido.

  • Cree mediante la línea de comandos un ensamblado que actualice el certificado. Para obtener información paso a paso sobre este proceso, vea Microsoft Support Article 925521.

Almacenar certificados

  • Puede almacenar los certificados como un archivo .pfx en su sistema de archivos, o bien, puede almacenarlos dentro de un contenedor de claves. Un usuario de un dominio de Windows puede tener varios contenedores de claves. De forma predeterminada, MakeCert.exe almacenará los certificados en su contenedor de claves personal, a menos que especifique que debe guardarse en un archivo .pfx. Mage.exe y MageUI.exe, las herramientas del Windows SDK para crear implementaciones ClickOnce, permiten usar certificados almacenados en cualquiera de estos modos.

Vea también

Referencia

Mage.exe (Herramienta de generación y edición de manifiestos)

Conceptos

Seguridad e implementación ClickOnce

Proteger las aplicaciones ClickOnce

Información general sobre la implementación de aplicaciones de confianza