¿Cómo extraer el certificado TSA del archivo tst?

0

Tengo varios archivos de token de marca de tiempo que creo que deberían tener certificados TSA incorporados porque se seleccionó la opción "Solicitar certificado TSA" cuando los solicité con TimeStampClient . Ahora quiero verificarlos con openssl con una línea de comando como esta:

openssl.exe ts -verify -data file.zip -in token.tst -token_in -CAfile certificate.cer

Así que necesito los certificados. Por cierto, creo que para una verificación real no debería obtener los certificados de los propios archivos de token (¿porque pueden ser falsos / autofirmados?) Si los archivos eran de una parte no confiable.

Por cierto, ¿puede decirme una manera de obtener el certificado de marca de hora TSA de su servidor a través del protocolo RFC 3161? Algunos servidores como time.certum.pl no proporcionan un enlace directo a ella en esa dirección web .

    
pregunta user273084 05.09.2017 - 20:15
fuente

1 respuesta

1

Una respuesta RFC3163 no contiene necesariamente el certificado de firma. Contiene una estructura SignedData , que se describe en RFC5652 por lo tanto:

  SignedData ::= SEQUENCE {
    version CMSVersion,
    digestAlgorithms DigestAlgorithmIdentifiers,
    encapContentInfo EncapsulatedContentInfo,
    certificates [0] IMPLICIT CertificateSet OPTIONAL,
    crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,
    signerInfos SignerInfos }

  DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier

  SignerInfos ::= SET OF SignerInfo

El campo certificates es opcional, mientras que el campo signerInfos no lo es. Una estructura SignerInfo se define de la siguiente manera:

SignerInfo ::= SEQUENCE {
  version CMSVersion,
  sid SignerIdentifier,
  digestAlgorithm DigestAlgorithmIdentifier,
  signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL,
  signatureAlgorithm SignatureAlgorithmIdentifier,
  signature SignatureValue,
  unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL }

El campo sid contiene un identificador único para el firmante, que se puede rastrear hasta el certificado que lo firmó.

No hay una forma estandarizada de recuperar el certificado fuera del campo certificates de la estructura SignedData . Si no se proporciona en ese campo, la TSA debe proporcionarlo fuera de banda. Cómo se hace exactamente eso depende de la CST.

    
respondido por el Polynomial 05.09.2017 - 20:57
fuente

Lea otras preguntas en las etiquetas