signatureAlgorithm vs. tbsCertificate - signature

3

Desde el RFC X.509:

Certificate  ::=  SEQUENCE  {
     tbsCertificate       TBSCertificate,
     signatureAlgorithm   AlgorithmIdentifier,
     signature            BIT STRING  }

TBSCertificate  ::=  SEQUENCE  {
     version         [0]  Version DEFAULT v1,
     serialNumber         CertificateSerialNumber,
     signature            AlgorithmIdentifier,

Me parece que tbsCertificate - > Firma y SignatureAlgorithm son redundantes? ¿Que deberían ser siempre los mismos?

Como tal, ¿por qué incluir ambos? ¿Por qué no incluir uno u otro?

    
pregunta neubert 01.12.2012 - 09:54
fuente

1 respuesta

4

Ambos campos deben ser idénticos. La redundancia aparentemente estaba destinada a derrotar un oscuro vector de ataque que se basa en las debilidades que los algoritmos de firma existentes no tienen, y para objetivos no especificados. Como dice Peter Gutmann en su guía de estilo X.509 , cuando se habla del% campo signature en la TBS:

  

No parece haber   mucho uso para este campo, aunque debería comprobar que el algoritmo   El identificador coincide con el de la firma en el certificado (si alguien puede falsificar   La firma en el certificado, entonces también pueden cambiar el algoritmo interno   identificador, es posible que esto haya sido incluido debido a algún ataque oscuro   donde alguien que podría convencer (roto) el algoritmo de firma A para producir el   el mismo valor de firma que el algoritmo (seguro) B podría cambiar el exterior,   identificador de algoritmo no protegido de B a A, pero no pudo cambiar el interior   Identificador sin invalidar la firma. Lo que esto lograría es   claro).

Una implementación sensata de la validación del certificado X.509 usará el campo externo ( signatureAlgorithm ) para verificar la firma, y luego verificará que el campo interno signature coincida con el campo externo (pero al hacerlo no es el último). la verificación no dañará realmente la seguridad).

    
respondido por el Thomas Pornin 01.12.2012 - 16:20
fuente

Lea otras preguntas en las etiquetas