Quanto di un certificato è effettivamente coperto dalla firma della CA?

0

Di recente uno dei miei sviluppatori ha riscontrato un problema con la compatibilità di un certificato e abbiamo iniziato a radunare un po 'finché non ci siamo imbattuti in un un problema simile su SO .

Una volta compreso il problema iniziale dello sviluppatore (il certificato originale è stato generato con un provider CNG, anziché con quello Legacy), mi aspettavo di dover ricreare il CSR con il parametro compatable e inviarlo alla CA per la nuova firma.

Tuttavia, l'elenco delle domande collegate mi ha portato a una risposta non accettata su un'altra domanda , che suggeriva che openssl potrebbe essere utilizzato per suddividere il PFX esistente in una coppia PEM, modificare il parametro CSP del file privato PEM in uno compatibile con l'applicazione, quindi ricreare il PFX.

Conversione PFX-PEM-PFX a parte, ero scettico sul fatto che la modifica del file della chiave privata avrebbe funzionato, perché pensavo che avrebbe causato la modifica della firma, e quindi non sarebbe più stata convalidata. Tuttavia, con mia sorpresa, sembra che abbia funzionato e lo sviluppatore è stato in grado di continuare senza ulteriori problemi.

Questo mi ha fatto riflettere, quanto del certificato è effettivamente coperto dal processo di firma? Che cosa impedisce a qualcuno che utilizza lo stesso strumento (o simile) di modificare la data di scadenza, aggiungere un altro nome alternativo all'oggetto o rimuovere le informazioni CRL o OSCP (ad esempio)?

    
posta jimbobmcgee 07.05.2015 - 19:20
fonte

2 risposte

2

La sezione 4.1.1.3 della RFC 5280 parla dello scopo della firma

4.1.1.3. signatureValue

   The signatureValue field contains a digital signature computed upon
   the ASN.1 DER encoded tbsCertificate.  The ASN.1 DER encoded
   tbsCertificate is used as the input to the signature function.  This
   signature value is encoded as a BIT STRING and included in the
   signature field.  The details of this process are specified for each
   of the algorithms listed in [RFC3279], [RFC4055], and [RFC4491].

   By generating this signature, a CA certifies the validity of the
   information in the tbsCertificate field.  In particular, the CA
   certifies the binding between the public key material and the subject
   of the certificate.

Il campo tbsCertificate è definito come

 TBSCertificate  ::=  SEQUENCE  {
        version         [0]  EXPLICIT Version DEFAULT v1,
        serialNumber         CertificateSerialNumber,
        signature            AlgorithmIdentifier,
        issuer               Name,
        validity             Validity,
        subject              Name,
        subjectPublicKeyInfo SubjectPublicKeyInfo,
        issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                             -- If present, version MUST be v2 or v3
        subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,
                             -- If present, version MUST be v2 or v3
        extensions      [3]  EXPLICIT Extensions OPTIONAL
                             -- If present, version MUST be v3
        }

Quindi no, non puoi davvero aggiornare molto dal certificato stesso.

Nota che

I was skeptical that changing the private key file would work, because I thought that would cause the signature to change

La chiave privata non fa parte del certificato. Tuttavia, la chiave pubblica fa parte del certificato e le chiavi pubblica e privata sono doppie: una annulla ciò che fa l'altra. Quindi, se cambi la chiave privata, sarà necessario modificare la chiave pubblica e il certificato non sarà utile.

    
risposta data 07.05.2015 - 22:18
fonte
2

In realtà non modifichi il certificato stesso.

Come spiegato qui , il file pfx è un contenitore contenente il certificato più numerosi altri oggetti, incluso il certificato.

Quello che fai nella procedura indicata è estrarre il certificato da questo contenitore, quindi inserirlo in un altro contenitore associato a oggetti diversi.

Il certificato rimane lo stesso.

    
risposta data 07.05.2015 - 21:33
fonte

Leggi altre domande sui tag