none
¿Como comprar y colocar un certificado a mi programa? RRS feed

  • Pregunta

  • Hola, mi empresa tiene un programa para windows, la idea es ponerle un certificado, para que a la hora de instalar en sistemas operativos Windows, aparezca nuestra información en el instalador, es decir, que se pueda apreciar que es un ejecutable de confianza. 

    Consultas:

    ¿Donde se compran?

    ¿Cuanto cuesta?

    ¿Como se instala?

    Desde ya gracias.

    Saludos.

    miércoles, 15 de noviembre de 2017 15:33

Respuestas

  • Hay un buen puñado de agencias certificadoras reconocidas como confiables por Windows. Las más comunes son quizá Symantec (VeriSign y Thawte forman parte de ella), Digicert, Entrust, GlobalSign, Centrum, Comodo... La lista es meramente ilustrativa. El que yo haya nombrado estas no implica aprobación ni preferencia alguna por mi parte. Tampoco el no mencionar otras supone un desprestigio hacia ellas. No tengo experiencia con ninguna, así que no puedo opinar.

    Para este propósito se debe solicitar un certificado específico de firma de código (Authenticode). Otros tipos de certificados, como SSL o firma de correo electrónico, no sirven. No son baratos. Presentan una vigencia limitada (un año, dos, tres...) y la renovación conlleva un desembolso adicional. Algunas autoridades certificadoras pueden ofrecer descuentos para determinados tipos de proyectos o para vigencias más largas. Los certificados de validación extendida (EV) tienen un coste todavía superior, quizá prohibitivo para proyectos poco significativos o pequeños negocios, y acarrean más trámites. No obstante, un certificado ordinario (no EV) basta para la mayoría de usos.

    Microsoft ofrece en el SDK de Windows la herramienta de línea de comandos Signtool.exe para las operaciones de firma de código. Su sintaxis y uso resultan bastante complejos y la documentación de MSDN es un poco "arcana". No estoy especialmente familiarizado con el tema pero hay abundante información en Internet si se busca bien. Las propias agencias de certificación también suelen ofrecer guías y tutoriales. Es fundamental emplear un sello de tiempo (timestamp) que preserve la validez de la firma incluso después de que el certificado de origen haya expirado.

    • Marcado como respuesta Strelok2 jueves, 16 de noviembre de 2017 8:13
    miércoles, 15 de noviembre de 2017 18:17

Todas las respuestas

  • Hola, Strelok2:
    No especificas si la App en cuestión es por consola o web (aunque interpreto por el enunciado la segunda opción). Sin más información que la facilitada, te recomiendo eches un vistazo al procedimiento oficial para implementación de certificados desde el servidor web interno que aloje el aplicativo (EJECUTAR > INETMGR). Para adquirir un certificado, puedes optar por la vía más económica (implementar un servidor CA para tu dominio interno -no estrictamente necesario-) o por la vía más profesional: adquirir un certificados desde una tienda virtual emisora de certificados.

    Más info:
    · Configurar el certificado IIS del servidor de componentes web:
    https://technet.microsoft.com/es-es/library/dd441360(v=office.13).aspx

    · Implementación de una CA y un certificado de servidor NPS:
    https://technet.microsoft.com/es-es/library/cc730811(v=ws.11).aspx

    · Tienda online de certificado: CAMEFIRMA > http://www.camerfirma.com/
    · Tienda online de certificado: DIGICERT > https://www.digicert.com/es/certificado-digital.htm
    · Tienda online de certificado: GLOBALSIGN > https://www.globalsign.com/es/personalsign/
    · Tienda online de certificado: VARIOS > http://www.sii.cl/factura_electronica/mn_Prov_CD.htm

    Desiderio Ondo || Engineer

    miércoles, 15 de noviembre de 2017 15:47
  • Hola, me disculpo que no especifiqué mucho, me refería a una aplicación de escritorio, para sistemas operativos windows
    • Editado Strelok2 miércoles, 15 de noviembre de 2017 16:10
    miércoles, 15 de noviembre de 2017 16:07
  • Hola, Strelok2:

    Vamos, que todo lo escrito en el post anterior no ha servido para nada..
    Al tratarse de una aplicación cliente-servidor, la adjudicación de los certificados se debe realizar gestionando la misma aplicación de terceros. A menos que estemos hablando de algún programa desarrollado por Microsoft, me temo que la única respuesta válida es que contactes con los comerciales y/o servicio técnico que te ha desarrollado/instalado el programa, compañero..

    Desiderio Ondo || Engineer

    miércoles, 15 de noviembre de 2017 16:23
  • Creo que no nos entendemos jaja! 

    Lo explicaré de una forma más fácil:

    Tengo un programa de escritorio (desarrollado por mi) que cuando desarrollo actualizaciones y luego me las descargo, el antivirus me borra el ejecutable. 

    ¿Hay una forma de indicarle al antivirus que ese ejecutable es de confianza? 

    Supuse que si compro un certificado al programa, eso solucionaría algo. Espero haberme explicado. 

    miércoles, 15 de noviembre de 2017 16:31
  • Hola, Strelok2:

    En efecto, no nos hemos entendido, compañero..
    La raíz del problema que señalas no viene dado por asuntos de certificados, sino por las reglas establecidas en el motor de tu antivirus.


    Las opciones son sencillas:
    1.- Deshabilitar el antivirus para que no elimine el ejecutable que has desarrollado
    2.- Configurar el motor de búsqueda, de modo que el ejecutable que generas (o al menos, el directorio donde se ubiquen los archivos que generas) no los considere como una amenaza.


    Como puedes observar, en ambos casos estamos hablado de un aplicativo de terceros; Para reconfigurarlo, me temo que debes de acceder a su consola local, y basarte en su motor de ayuda para hacerlo bien; ten en cuenta que no señalas sea un antivirus desarrollado por Microsoft

    Desiderio Ondo || Engineer

    miércoles, 15 de noviembre de 2017 16:39
  • Entiendo tu solución y dejame explicarte que es la misma que estamos aplicando, pero realmente no es una "solución". ¿Como hacen las empresas grandes para que cuando se descarguen actualizaciones no detecte ese ejecutable como virus?. Si es un certificado, registro o lo que sea, estoy dispuesto a realizarlo. 

    ¿Me explico? no es una solución realizar la configuración que me comentas a todas las personas que deban instalar el software. Tiene que existir otra forma.

    Muchas gracias por tus rápidas y completas respuestas. 

    Saludos.

    miércoles, 15 de noviembre de 2017 16:53
  • Hola, Strelok2:

    Las empresas grandes implementan en su organización un antivirus no basado en consola, sino en servicios web (o dicho de otro modo: una App cliente-servidor por consola web). Son los ejemplos de TrenMicro ServerProtect (u OfficeScan), Sophos AntiVirus e incluso McAfee Security Suite. De ahí que tengan ésos precios tan elevados en el mercado, compañero..

    No varía mi respuesta respecto a los posts anteriores: la configuración de la consola antivirus es propia de cada producto.. y deberás basarte en la Ayuda de la consola para configurarlo correctamente.. o en su defecto, contacta con el Servicio Técnico del fabricante de tu Antivirus para que te ofrezcan una solución completa. ten en cuenta que al NO ser un producto de Microsoft, qeuí no se te puede dar una ayuda oficial..

    Desiderio Ondo || Engineer

    miércoles, 15 de noviembre de 2017 17:00
  • El que mayor daba problemas era el Windows Defender.

    Te cuento lo que hacemos nosotros: 

    - Descargamos el nuevo ejecutable con el nombre "temporal" y sin extensión.

    - Comprobamos que se haya descargado.

    - Cambiamos el nombre del que tiene la persona.

    - Cambiamos el nombre al que se ha descargo de "temporal" a "MiProgramaEjemplo.exe".

    Agradecería que me ayudarás a llegar a una solución :)

    miércoles, 15 de noviembre de 2017 17:04
  • Hay un buen puñado de agencias certificadoras reconocidas como confiables por Windows. Las más comunes son quizá Symantec (VeriSign y Thawte forman parte de ella), Digicert, Entrust, GlobalSign, Centrum, Comodo... La lista es meramente ilustrativa. El que yo haya nombrado estas no implica aprobación ni preferencia alguna por mi parte. Tampoco el no mencionar otras supone un desprestigio hacia ellas. No tengo experiencia con ninguna, así que no puedo opinar.

    Para este propósito se debe solicitar un certificado específico de firma de código (Authenticode). Otros tipos de certificados, como SSL o firma de correo electrónico, no sirven. No son baratos. Presentan una vigencia limitada (un año, dos, tres...) y la renovación conlleva un desembolso adicional. Algunas autoridades certificadoras pueden ofrecer descuentos para determinados tipos de proyectos o para vigencias más largas. Los certificados de validación extendida (EV) tienen un coste todavía superior, quizá prohibitivo para proyectos poco significativos o pequeños negocios, y acarrean más trámites. No obstante, un certificado ordinario (no EV) basta para la mayoría de usos.

    Microsoft ofrece en el SDK de Windows la herramienta de línea de comandos Signtool.exe para las operaciones de firma de código. Su sintaxis y uso resultan bastante complejos y la documentación de MSDN es un poco "arcana". No estoy especialmente familiarizado con el tema pero hay abundante información en Internet si se busca bien. Las propias agencias de certificación también suelen ofrecer guías y tutoriales. Es fundamental emplear un sello de tiempo (timestamp) que preserve la validez de la firma incluso después de que el certificado de origen haya expirado.

    • Marcado como respuesta Strelok2 jueves, 16 de noviembre de 2017 8:13
    miércoles, 15 de noviembre de 2017 18:17
  • Hola, Strelok2:

    Da igual que el Antivirus sea un módulo del Windows Defender; volvemos a las 2 opciones que te señalaba en el post anterior, compañero:
    1.- Puedes deshabilitar el Windows Defender durante el desarrollo del proyecto, de modo que no te "señale" el archivo afectado
    2.- Puedes personalizar la configuración del Windows Defender reestableciendo los directorios de exclusión de análisis

    En todo caso, ten en cuenta que cualquier antivirus ya.. "sospechará" de cualquier archivo sin extensión, y por defecto, todos los .EXE ya están en el punto de mira..

    Más info:
    · Antivirus de Windows Defender en la aplicación Centro de seguridad de Windows Defender:
    https://docs.microsoft.com/es-es/windows/threat-protection/windows-defender-antivirus/windows-defender-security-center-antivirus

    Desiderio Ondo || Engineer

    jueves, 16 de noviembre de 2017 7:07
  • Tras un extenso intercambio de notas, creo poder afirmar que éste es el mensaje revelador del scenario real, maese Ramón:
    "
    Creo que no nos entendemos jaja! 
    Lo explicaré de una forma más fácil:
    Tengo un programa de escritorio (desarrollado por mi) que cuando desarrollo actualizaciones y luego me las descargo, el antivirus me borra el ejecutable. 
    ¿Hay una forma de indicarle al antivirus que ese ejecutable es de confianza? 
    Supuse que si compro un certificado al programa, eso solucionaría algo. Espero haberme explicado
    "

    Pero me apunto la herramienta SIGNTOOL.EXE de la línea de comandos que has señalado, maestro. Reconozco me ha.. interesado! Gracias por compartirlo!!

    Desiderio Ondo || Engineer

    jueves, 16 de noviembre de 2017 7:14
  • Investigaré mas al respecto de lo que me han comentado ambos.

    Muchísimas gracias.

    jueves, 16 de noviembre de 2017 8:13
  • El que mayor daba problemas era el Windows Defender.

    Te cuento lo que hacemos nosotros: 

    - Descargamos el nuevo ejecutable con el nombre "temporal" y sin extensión.

    - Comprobamos que se haya descargado.

    - Cambiamos el nombre del que tiene la persona.

    - Cambiamos el nombre al que se ha descargo de "temporal" a "MiProgramaEjemplo.exe".

    Agradecería que me ayudarás a llegar a una solución :)

    Hola Strelock2, agrego algo más al tema aunque ya tienes bastante información

    Si lo que hacen es cambiar el ejecutable, eso implicaría que cada nueva versión debería estar firmada, y además por supuesto que mientras tenga un nombre provisorio para hacer el cambio, eso provocaría que el certificado diría que no es válido, así que esa solución estimo que no va a ser válida

    Por otra parte, si el antivirus directamente lo borra, es que el código contiene partes que los motores de antivirus consideran ya sea como un virus o un código muy peligroso. No tengo conocimientos de desarrollo para ayudarte con esto, pero ahí está el problema de base

     


    Guillermo Delprato
    Buenos Aires, Argentina
    El Blog de los paso a paso

    MVP - MCSE - MCSA2012
    MCITP: Enterprise Administrator / Server Administrator
    MCTS: Active Directory/Network Configuration/Applications Configuration/Server Virtualization/Windows 7 Configuration/Windows 7 & Office 2010 Deployment/Vista Configuration

    Este mensaje se proporciona "como está" sin garantías de ninguna clase. Usted asume todos los riesgos.

    jueves, 16 de noviembre de 2017 10:49
    Moderador
  • Muchísimas gracias por tu aporte.
    jueves, 16 de noviembre de 2017 17:32
  • Hola, tu respuesta ha sido la que buscaba, muchísimas gracias.

    He encontrado el siguiente producto: EV Code Signing Certificate 

    ¿Es eso lo que necesito para solucionar los problemas con mi programa de Escritorio? No quisiera comprar algo mal (para web u otra cosa).

    Con respecto al usar EV o no, se decidió optar por esté último.

    Según tengo entendido, ellos nos mandan en 15 días un pendrive seguro con el certificado ¿cuales serían los pasos a seguir? es decir, ¿como instalarlo o vincularlo con nuestro sistema?

    jueves, 16 de noviembre de 2017 17:36
  • "Code Signing" es lo correcto aquí, pero el EV quizá se antoja excesivo para el uso previsto. Respecto a cómo emplearlo, el proveedor del certificado debería tener documentación. Por ejemplo, de Digicert, que es la primera página que he encontrado así rápidamente: https://www.digicert.com/code-signing/ev-authenticode-certificates.htm.

    Quiero pensar que, por las características de cualquier certificado EV, el dispositivo USB actuará siempre de intermediario en todas las operaciones de firma y cifrado. Como si se tratara de una tarjeta inteligente (smart card), no se podrá firmar código si no está conectado. Las operaciones se autorizarían mediante algún tipo de contraseña o PIN y la clave privada no saldría de allí. Solamente sería necesario dedicar un único PC a las firmas de código; una vez firmado no habrá que hacer nada más en otros equipos, pues la cadena de certificación llega hasta una autoridad en la que Windows confía.

    Si ese dispositivo y los códigos de autorización cayeran en malas manos, alguien con pocos escrúpulos podría firmar código malicioso en vuestro nombre y, lo que es peor, el certificado EV le otorgaría buena reputación de forma automática.

    jueves, 16 de noviembre de 2017 19:46