Software de firma digital: certificado de autofirma

Software de firma digital: certificado de autofirma

Me gustaría experimentar firmando un ejecutable de software. Tengo miedo de que haya algo que se me escape.

Llegaré al punto en el que adquiriré un certificado de una CA, pero antes me gustaría saber qué estoy haciendo, así que hice una prueba:

Creé un certificado autofirmado:

makecert -r -ss myPrivateCert -sk c:\test -n "CN=My Company Inc." testCert.cer

luego firmó un ejecutable:

signtool sign /v /s myPrivateCert /n "My Company Inc." /t http://timestamp.verisign.com/scripts/timstamp.dll c:\folder\my_installer.exe

Para ambos comandos, obtuve éxito.

Paso 3: "Instalar el certificado de prueba":http://msdn.microsoft.com/en-us/library/bb756995

Éxito.

(Nota: en la carpeta c:\test, coloqué los certificados descargados de la lista de certificados cruzados sugerida por Microsoft, como VeriSign Class 3 Public Primary Certification Authority - G5.cer, supongo que se suponía que debía hacer eso).

Corrocertmgr c:\folder\my_installer.exe

y obtuve una lista de 3 certificados que había agregado, con Asunto, Emisor, Número de serie... (de My Company Inc. y Verisign), así que aparentemente todo está bien.

Incluso después de eso, si hago doble clic en el instalador (o en el ejecutable), aparece el mensaje UAC sobre Editor desconocido...

Entonces, ¿qué más debo hacer para que ese cuadro desaparezca o diga "Mi empresa Inc."? para productor? Y eso es sólo para la máquina local, haciendo todo a mano...

Para realizar pruebas reales, asumo que mi cliente es un entorno VirtualBox... ¿entonces? El siguiente paso: mover el instalador a VirtualBox y ejecutarlo.

Pero, ¿cómo le informo al cliente sobre la clave, el certificado o lo que sea? ¿Copio el archivo cer junto con el exe? ¿Tengo que ponerlo en un lugar especial? ¿Copio algún otro archivo? ¿Tengo que ejecutar mmc nuevamente? ¿Tendrán los usuarios que hacer algo así? Porque parece sumamente complicado, desde la perspectiva del usuario... Esto es muy confuso...

Supongo que, si compro un certificado real de Verisign, por ejemplo, se autenticaría a través de la web y no tendría que hacer nada más (excepto los dos comandos anteriores, menos -r).

Encontré muchas instrucciones sobre esto en la web, pero cada una de ellas me dejó tan confundida como cuando comencé; tal vez cada una de ellas tenía suposiciones sobre algún conocimiento previo...

Respuesta1

No se "autentica a través de la web" (aparte de, quizás, verificar la Lista de revocación de certificados (CRL)): las CA raíz están conectadas al sistema operativo y se instalan mediante Windows Update o mediante el disco de instalación del sistema operativo. . En otras palabras, son un conjunto de datos estáticos en el disco duro que no son (fácilmente) modificables.

La forma de hacer que desaparezca el molesto cuadro es:

  • Confíe en su CA que firma con aceite de serpiente (generalmente es una mala idea, pero funcionará); o
  • Consígalo firmado por una CA raíz oficial de confianza pública o uno de sus intermediarios.

Citaste a Verisign. Bien. Es uno de los varios proveedores posibles para otorgarle un certificado de firma de código. El cuadro sigue apareciendo porque, AFAIK, Windows está programado para mostrar automáticamente la advertencia para todos los certificados autofirmados. Si intentara generar una CSR basada en su propia CA raíz creada, podría hacer que el cuadro desapareciera al confiar en su CA raíz, y eso funcionaría. Pero entonces tendría que lograr que sus clientes confíen en su CA raíz, lo que frustra el propósito en la mayoría de las situaciones. Por tanto, la red de confianza pública es el camino más fácil. El proveedor generalmente incluso le brinda instrucciones explícitas sobre cómo utilizar su servicio y cómo firmar su código.

información relacionada