X.509 ¿Por qué el algoritmo de firma se agrega dos veces en el Certificado de atributo?

3

Al leer algunas partes de la especificación X.509, encontré la firma agregada dos veces: primero en AttributeCertificate como signatureAlgorithm y segundo en AttributeCertificateInfo como signature . ¿Podría explicarme por qué? Lo mismo ocurre con los campos de certificados básicos.

  

signature: Este campo DEBE contener el mismo identificador de algoritmo que el      campo SignatureAlgorithm en la secuencia Certificado

AttributeCertificate ::= SEQUENCE {
  acinfo               AttributeCertificateInfo,
  signatureAlgorithm   AlgorithmIdentifier,
  signatureValue       BIT STRING
}

AttributeCertificateInfo ::= SEQUENCE {
  version                 AttCertVersion, -- version is v2
  holder                  Holder,
  issuer                  AttCertIssuer,
  signature               AlgorithmIdentifier,
  serialNumber            CertificateSerialNumber,
  attrCertValidityPeriod  AttCertValidityPeriod,
  attributes              SEQUENCE OF Attribute,
  issuerUniqueID          UniqueIdentifier OPTIONAL,
  extensions              Extensions OPTIONAL
}
    
pregunta Kevin Wallis 10.03.2017 - 11:50
fuente

1 respuesta

6

Este es un remanente de algunos viejos temores. Guía de estilo X.509 de Peter Gutmann , una lectura antigua (2001) pero instructiva, Incluye el siguiente párrafo:

  

Este campo más bien mal llamado contiene el identificador de algoritmo para la firma   Algoritmo utilizado por la CA para firmar el certificado. 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).

Entonces, uno podría inferir que, un día, probablemente alrededor de una máquina de café durante una pausa entre dos reuniones, alguien hizo una broma criptográfica elaborada pero no muy divertida, y alguien más que la escuchó por casualidad no pudo entenderla. y procedió a provocar sentimientos de ansiedad en algún lugar del rincón oscuro de un subcomité. En general, X.509 tiene mucho más sentido si lo lees como las notas preliminares de Mary Shelley para "Frankenstein", traducidas por alguna razón en Ugaritic antiguo.

    
respondido por el Thomas Pornin 10.03.2017 - 14:32
fuente

Lea otras preguntas en las etiquetas