una programa para linea hacer firmas firma digitalizar digitales descargar como c++ validation cross-platform digital-signature portable-executable

c++ - linea - programa para hacer firmas digitales



¿Cómo puedo validar firmas digitales para el formato ejecutable portátil de Microsoft en código portátil? (4)

Estoy buscando un código de muestra (o bibliotecas) que pueda ayudarme a validar firmas digitales para archivos de Windows PE (.exe, .dll, .cab, .etc) en plataformas que no sean de Windows que usen C ++. Estoy buscando un enfoque independiente de la plataforma.

¡Gracias!


No hay una respuesta general a esto, especialmente porque no ha especificado en qué medida desea portarlo. Linux en x86 con bibliotecas de código abierto será más fácil, uCos ejecutándose en MIPS32 o Arduino será casi imposible.

En primer lugar, es obvio que debe poder leer y analizar el formato PE en sí, en particular debe poder obtener los contenidos de secciones individuales y los hash, como .text, .data, etc. Para profundizar, mire cómo se explica. juntos, mira aquí:

http://msdn.microsoft.com/en-us/magazine/cc301805.aspx http://msdn.microsoft.com/en-us/magazine/ms809762.aspx

Ahora desea que esto sea portátil, para que pueda rodar su propio lector de PE / escritor limitado, o mirar alrededor en algunos de los proyectos de código abierto que ya lo hacen. Prueba ReactOS o Mono. O si está satisfecho ejecutando Python, intente esto http://code.google.com/p/pefile/

En segundo lugar, al tratar con la criptografía, las firmas digitales y los certificados X.509, prácticamente necesita una biblioteca de cifrado portátil completa para realizar la firma, la validación de la cadena de certificados, etc. Si está satisfecho con GPL, intente con OpenSSL o CyaSSL, o Botan si desea licencia BSD.

El formato preciso de las firmas de Authenticode, el proceso de firma y el proceso de validación se describe aquí: http://www.microsoft.com/whdc/winlogo/drvsign/Authenticode_PE.mspx (Authenticode_PE.docx)

Se requerirá bastante código para juntar todo.



Microsoft Authenticode ciertamente no es un gran secreto secreto y puede descargar especificaciones técnicas y más sobre cómo funciona Authenticode. También puede descargar información técnica sobre el formato de archivo de Windows PE . Como no indicó claramente el clima, quería algo para Linux, Mac o un teléfono inteligente, no puedo proporcionarle una solución adecuada. Sin embargo, con la información que le proporcioné anteriormente, junto con OpenSSL , debería poder crear su propio programa para hacerlo en el idioma y sistema operativo que prefiera.


La pregunta es bastante antigua, pero puse mi respuesta para aquellos que todavía enfrentan el mismo problema.

Puede usar la herramienta osslsigncode para verificar las firmas de MS Authenticode en Linux u otros sistemas * nix. Sin embargo, la herramienta solo verifica la firma y no verifica la revocación del certificado, la validez de la marca de tiempo, etc. aunque puede extraer los datos de la firma y hacerlo manualmente.