2009-03-27 14 views
8

Uso CAPICOM en una aplicación .NET 3.0 C# para verificar la firma de Authenticode en un archivo exe. Necesito asegurarme de que el certificado aparezca como un editor de confianza. El uso de signedCode.Verify(true) mostrará un cuadro de diálogo si el certificado ya no es de confianza, por lo que el usuario puede elegir si desea o no hacerlo. Sin embargo, signedCode.Verify(false) está verificando la firma incluso si no es de un editor de confianza; presumiblemente, esto solo está comprobando que el certificado es válido.CAPICOM: compruebe que SignedCode pertenece a un editor de confianza sin interfaz de usuario

¿Cómo puedo verificar que la firma en un archivo proviene de un certificado válido y de confianza sin UI?

Respuesta

0

Lo que probablemente tendría que hacer es usar expuesto a través de la función mscoree.dll StrongNameSignatureVerificationEx con P/Invoke:

[DllImport("mscoree.dll", CharSet=CharSet.Unicode)] 
static extern bool StrongNameSignatureVerificationEx(string wszFilePath, bool fForceVerification, ref bool pfWasVerified); 
2

En primer lugar, StrongNameSignatureVerificationEx es para la verificación de firmas de montaje y verificación de firma Authenticode no. Por lo tanto, esto no es relevante para el contexto de la pregunta original del póster.

En cuanto a la pregunta inicial, se puede verificar manualmente que el certificado del firmante está encadenado correctamente a una raíz de confianza sin ningún tipo de interfaz gráfica de usuario utilizando el siguiente código:

ICertificateStatus certStatus = signedCode.Signer.Certificate.IsValid(); 

La idea es recuperar el certificado del firmante y para dígale a CAPICom que verifique si tiene una cadena de confianza correcta.

Espero que esto ayude. Saludos,

Mounir IDRASSI, IDRIX, http://www.idrix.fr

0

Puede utilizar WinVerifyTrust como se muestra here. Funciona muy bien en Windows XP/Vista/2008/7. Si también desea verificar la lista de revocación establecida

RevocationChecks = WinTrustDataRevocationChecks.WholeChain; 
Cuestiones relacionadas