¿Cuánto de un certificado está cubierto por la firma de la AC?

0

Uno de mis desarrolladores recientemente tuvo un problema con la compatibilidad de un certificado, y lo rastreamos un poco hasta que encontramos un un problema similar en SO .

Una vez que entendí el problema inicial del desarrollador (el certificado original se generó con un proveedor de CNG, en lugar del heredado), esperaba tener que volver a crear el CSR con el parámetro compatible y enviarlo a la CA para volver a firmar.

Sin embargo, la lista de Preguntas vinculadas me llevó a una respuesta no aceptada sobre otra pregunta , que sugiere que openssl podría ser para dividir el PFX existente en un par de PEM, cambie el parámetro CSP del archivo privado de PEM a uno compatible con la aplicación, luego vuelva a crear el PFX.

Dejando de lado la conversión de PFX-PEM-PFX, era escéptico de que el cambio del archivo de clave privada funcionaría, porque pensé que eso haría que la firma cambiara, y por lo tanto ya no se validaría. Sin embargo, para mi sorpresa, parece haber funcionado y el desarrollador pudo continuar sin más problemas.

Esto me hizo preguntarme, ¿qué parte del certificado está realmente cubierto por el proceso de firma? ¿Qué hay para evitar que alguien use la misma herramienta (o similar) para cambiar la fecha de caducidad, agregar otro nombre alternativo del sujeto o eliminar la información de CRL u OSCP (por ejemplo)?

    
pregunta jimbobmcgee 07.05.2015 - 19:20
fuente

2 respuestas

2

RFC 5280 sección 4.1.1.3 habla sobre el alcance de la firma

4.1.1.3. signatureValue

   The signatureValue field contains a digital signature computed upon
   the ASN.1 DER encoded tbsCertificate.  The ASN.1 DER encoded
   tbsCertificate is used as the input to the signature function.  This
   signature value is encoded as a BIT STRING and included in the
   signature field.  The details of this process are specified for each
   of the algorithms listed in [RFC3279], [RFC4055], and [RFC4491].

   By generating this signature, a CA certifies the validity of the
   information in the tbsCertificate field.  In particular, the CA
   certifies the binding between the public key material and the subject
   of the certificate.

El campo tbsCertificate se define como

 TBSCertificate  ::=  SEQUENCE  {
        version         [0]  EXPLICIT Version DEFAULT v1,
        serialNumber         CertificateSerialNumber,
        signature            AlgorithmIdentifier,
        issuer               Name,
        validity             Validity,
        subject              Name,
        subjectPublicKeyInfo SubjectPublicKeyInfo,
        issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                             -- If present, version MUST be v2 or v3
        subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,
                             -- If present, version MUST be v2 or v3
        extensions      [3]  EXPLICIT Extensions OPTIONAL
                             -- If present, version MUST be v3
        }

Así que no, realmente no se puede actualizar mucho desde el propio certificado.

Ten en cuenta que

  

Era escéptico de que el cambio del archivo de clave privada funcionaría, porque pensé que eso haría que la firma cambiara

La clave privada no forma parte del certificado. Sin embargo, la clave pública es parte del certificado, y las claves pública y privada son dobles: una deshace lo que hace la otra. Por lo tanto, si cambia la clave privada, será necesario un cambio en la clave pública, y el certificado no será útil.

    
respondido por el Robert Weaver 07.05.2015 - 22:18
fuente
2

En realidad no modificas el certificado en sí mismo.

Como se explica aquí , el archivo pfx es un contenedor que contiene el certificado más varios otros objetos, incluido el certificado.

Lo que haces en el procedimiento dado es obtener el certificado de este contenedor, luego ponerlo en otro contenedor asociado a diferentes objetos.

El certificado en sí sigue siendo el mismo.

    
respondido por el WhiteWinterWolf 07.05.2015 - 21:33
fuente

Lea otras preguntas en las etiquetas