Ottieni un'impronta del certificato X.509 da Informazioni sul certificato

0

Vorrei ottenere l'impronta digitale SHA1 / MD5 di un certificato X.509 per confrontarlo con quello presentato da un server prima della connessione. Tuttavia, attualmente non ho accesso al certificato stesso, l'unica informazione che ho è l'output del comando openssl x509 -text -noout -in cert.crt che mi è stato fornito (numero di serie, chiave pubblica, esponente, ...). È possibile calcolare l'impronta digitale del certificato utilizzando tali informazioni?

    
posta TheWolf 29.01.2015 - 15:34
fonte

1 risposta

1

No
Direi di no Non in alcun modo pratico.

Dovresti avere un parser per trasformarlo in una struttura dati ASN.1 codificata DER. Questo ti darebbe il certificato originale.

Due difficoltà:
1. Nessun parser. Probabilmente non hai un parser per farlo.
2. Ti mancheranno i dettagli ASN.1. Anche se disponevi di un parser, non tutte le informazioni potrebbero esserti esposte.

I dettagli sono i seguenti:
Digitare le informazioni in ASN.1
Utilizzando ASN.1, le stesse informazioni possono essere codificate in modi diversi. (Ad esempio: il campo "Nome comune" potrebbe essere codificato come UTF-8 o qualcosa di simile a ASCII. E c'è un campo tag che dice quale è la codifica. Quindi, anche se i dati codificati hanno esattamente lo stesso aspetto, potrebbe essere codificato in un modo diverso e questo cambierà totalmente il valore dell'hash.)

Annidamento in ASN.1
Inoltre, ci sono diversi modi per nidificare cose che finiscono per significare la stessa cosa. E non credo che "-noout -text" esponga queste complicazioni a te.

la stampa di ASN1PARSE potrebbe salvarti
Se vuoi davvero conoscere le viscere del cert, hai bisogno degli OpenSSL " asn1parse ". (Quindi se si ha una stampa semplice, allora si potrebbe (in linea di principio) analizzare questo in binario perfettamente alla perfezione.)

    
risposta data 29.01.2015 - 16:42
fonte

Leggi altre domande sui tag