Ri-firma il certificato usando un algoritmo di hashing diverso

1

Considera un certificato utilizzato da un'autorità di certificazione. Questo è attualmente sottoposto a hash con SHA-1. Mi piacerebbe mantenere la stessa chiave pubblica / privata per questo, ma hash usando SHA-256. Con hash it intendo hash la sezione tbsCertificate - come descritto in RFC5280 - utilizzando SHA-256, seguito dalla firma del digest con la chiave privata della CA originale che ha effettivamente emesso il certificato.

Questo è nel contesto di questo articolo , dove si afferma che

If you want to convert a CA certificate on an ADCS version prior to Windows Server 2012, you must export the CA cert off of the CA, import onto ADCS 2012 or later using certutil.exe with the -KSP option, then export the newly signed certificate as a PFX file, and re-import on the original server.

Oltre all'errore di battitura (non c'è -KSP, solo un interruttore -CSP).

Tuttavia, se si utilizza una CA diversa per firmare un certificato, ciò comporta l'utilizzo di una chiave privata diversa, a condizione che l'identificatore della chiave di autorità rimanga invariato, e la chiave pubblica della CA di riferimento non verificherà questa nuova firma. Questo genera un certificato che fallirebbe la convalida?

    
posta Mihai Albert 28.01.2016 - 18:45
fonte

1 risposta

1

Quando installa ADCS, ottieni l'opzione di generare una nuova coppia di chiavi o riutilizzare una coppia di chiavi esistente. La frase che hai citato sembra indicare il secondo:

  • Esportate il certificato e la chiave privata da una CA esistente, come file PFX.
  • Importa il PFX in un computer Windows Server 2012.
  • Si installa ADCS su quella macchina, indirizzandola per riutilizzare la chiave privata appena importata. ADCS procede quindi a generare e firmare il suo certificato, utilizzando la chiave privata indicata.
  • Esportare nuovamente il certificato e la chiave dal nuovo ADCS, nuovamente come file PFX e importarli di nuovo nel computer originale.

Il primo file PFX contiene un certificato e una chiave privata perché è a questo che servono i file PFX, ma il certificato è completamente ignorato qui; conta solo la chiave privata. Succede solo che gli strumenti Microsoft non sono in grado di elaborare una chiave privata che viaggia "da sola"; accedono sempre alle chiavi tramite certificati, quindi deve esserci un certificato.

Durante l'importazione nel computer del 2012, è necessario aggiungere un'opzione -csp "Microsoft Software Key Storage Provider" in modo che la chiave privata sia gestita nel nuovo sistema crittografico (CNG) perché quello vecchio (CryptoAPI) non conosce SHA-256.

Ovviamente è un po 'strano passare attraverso un ulteriore computer Windows 2012, dal momento che Windows 2008 o Windows 7 sanno perfettamente come crittare con SHA-256. In ogni caso, con un po 'di programmazione, non è in ultima analisi difficile decodificare tbsCertificate dal certificato esistente, rehash con SHA-256, calcolare la firma e avvolgere l'intero set in un nuovo certificato. Ovviamente dovresti capire come funziona l'intera codifica ASN.1 / DER, ma se vuoi gestire correttamente una CA, è quasi necessario saperlo comunque, quindi è meglio che lo faccia adesso.

Suggerendo un sistema in più, si potrebbe anche sospettare che Microsoft stia guadagnando con la vendita di licenze Windows!

    
risposta data 28.01.2016 - 19:06
fonte

Leggi altre domande sui tag