Implementación de ClickOnce y Authenticode

Actualización: noviembre 2007

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. Utilizando Authenticode para la implementación de aplicaciones, ClickOnce ayuda a evitar el fenómenos de los "caballos de Troya", en los que terceras personas malintencionadas hacen parecer que un virus u otro programa dañino es un programa legítimo de una fuente solvente y de confianza. Todas las implementaciones de ClickOnce deben estar firmadas con un certificado digital.

Las secciones siguientes describen los distintos tipos de certificados digitales usados en Authenticode, cómo se validan los certificados utilizando entidades emisoras de certificados, la función 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 distintos tipos de certificados de Authenticode, cada uno de ellos configurado para distintos tipos de firmas. Para las aplicaciones ClickOnce, debe tener un certificado de Authenticode que sea válido para la firma de código; si intenta firmar una aplicación ClickOnce con otro tipo de certificado, como un certificado digital de correo electrónico, la firma no funcionará. Para obtener más información al respecto, vea Introduction to Code Signing (https://msdn.microsoft.com/library/default.asp?url=/workshop/security/authcode/intro\_authenticode.asp) (en inglés).

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 su propio certificado con MakeCert.exe, que va incluido con el kit de desarrollo de software (SDK) de .NET Framework.

Cómo ayuda a los usuarios utilizar entidades emisoras de certificados

  • Un certificado generado utilizando 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 editor de la aplicación. Puede utilizar selfcerts para implementar aplicaciones ClickOnce con elevada confianza en una intranet; sin embargo, cuando estas aplicaciones se ejecutan en un equipo cliente, ClickOnce las identificará como procedentes de un "Editor 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 emisora, 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 Herramienta Creación de certificados (Makecert.exe).

Cómo la marca de fecha y hora puede evitar la caducidad no deseada

Aunque los certificados proporcionan más seguridad, una parte no autorizada puede obtener de su propietario legítimo un certificado y su contraseña acompañante. De forma predeterminada, un certificado emitido por una entidad emisora sólo es válido durante 12 meses. Así se obliga al propietario del certificado a volver a comprobar su identidad ante la entidad emisora, lo que garantiza que los certificados que están en peligro sólo se pueden utilizar durante un breve período de tiempo.

Normalmente, la caducidad del certificado significaría que es necesario volver a firmar su aplicación ClickOnce cada 12 meses. Authenticode mitiga la necesidad de estas operaciones mediante la compatibilidad de marca de fecha y hora. Cuando firme una implementación de ClickOnce mediante un certificado, ClickOnce registra la fecha y hora de la firma y la incrusta en la firma digital de la implementación. Siempre y cuando la implementación se firmara cuando el certificado todavía era válido, ClickOnce permite la ejecución de la aplicación incluso si el certificado caducó después.

Tanto Visual Studio como las herramientas de Kit de desarrollo de software de Windows (SDK) para crear implementaciones de ClickOnce, Mage.exe y MageUI.EX, permiten el uso de marca de fecha y hora.

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 de Windows SDK para crear implementaciones de ClickOnce, le permitirán utilizar certificados almacenados en cualquiera de estos modos.

Vea también

Conceptos

Información general sobre la implementación de ClickOnce

Implementación y seguridad con ClickOnce

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

Referencia

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