X.509 Perché l'algoritmo della firma è stato aggiunto due volte nel certificato dell'attributo?

3

Mentre leggevo alcune parti della specifica X.509 ho trovato la firma aggiunta due volte - prima in AttributeCertificate come signatureAlgorithm e la seconda in AttributeCertificateInfo come signature . Potresti spiegarmi perché? Lo stesso vale per i campi dei certificati di base.

signature: This field MUST contain the same algorithm identifier as the signatureAlgorithm field in the sequence Certificate

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
}
    
posta Kevin Wallis 10.03.2017 - 11:50
fonte

1 risposta

6

Questo è un residuo di alcune vecchie paure. Guida allo stile X.509 di Peter Gutmann , una lettura vecchia (2001) ma istruttiva, include il seguente paragrafo:

This rather misnamed field contains the algorithm identifier for the signature algorithm used by the CA to sign the certificate. There doesn't seem to be much use for this field, although you should check that the algorithm identifier matches the one of the signature on the cert (if someone can forge the signature on the cert then they can also change the inner algorithm identifier, it's possible that this was included because of some obscure attack where someone who could convince (broken) signature algorithm A to produce the same signature value as (secure) algorithm B could change the outer, unprotected algorithm identifier from B to A, but couldn't change the inner identifier without invalidating the signature. What this would achieve is unclear).

Quindi si potrebbe dedurre che, un giorno, probabilmente intorno a una macchina da caffè durante una pausa tra due incontri, qualcuno ha fatto un criptato-scherzo elaborato ma non molto divertente, ed è stato sentito da qualcun altro, che non l'ha capito, e procedette a suscitare sentimenti di angoscia da qualche parte nell'angolo buio di un sottocomitato. Più in generale, X.509 ha molto più senso se lo leggi come bozze di Mary Shelley per "Frankenstein", tradotto per qualche motivo nell'antico Ugaritico.

    
risposta data 10.03.2017 - 14:32
fonte

Leggi altre domande sui tag