Migrar xifrat entitat certificadora

Aquesta entrada tracta de migrar el proveïdor de xifrat a Microsoft Key Storage Provider (KSP) i l’algoritme de signatura SHA-2, d’una entitat certificadora Microsoft Windows Server.

En el cas que s’hagi heretat una entitat certificadora antiga és molt probable que estigui utilitzant un sistema de xifrat que a data d’avui ja no es consideri segur. És el cas del Microsoft Strong Cryptographic Provider (CSP) i l’algoritme de signatura SHA-1, que es configurava per defecte en sistemes operatius més antics.

A vistes d’alguns usuaris, pel sol fet que es tanqui el cadenat, tot i ser insegur, es donava per a bo.

No obstant, els temps han canviat els navegadors moderns s’han posat les piles amb els temes de seguretat. Ja no és suficient que una web tingui un certificat per poder habilitar el cadenat en l’entorn HTTPS, també cal complir uns requisits mínims de seguretat i un d’ells és no utilitzar sistemes obsolets.

En la foto d’exemple s’utilitza un certificat d’una entitat certificadora Microsoft Windows Server 2012 R2 emès amb:

  • Proveïdor de xifrat Microsoft Strong Cryptographic Provider, que es considera obsolet.
  • Signatura del certificat amb SHA-1.
  • Sense el nom alternatiu al certificat.
  • Un error del nom comú del certificat.
  • Advertència de configuració de la connexió obsoleta per utilitzar RSA, AES_128_CBC amb HMAC_SHA1.

En definitiva, un certificat amb problemes per tot arreu. Com ho solucionem això?

 

Actualització sistemes de xifrat entitat certificadora

Des de l’administrador de l’Entitat Certificadora de Microsoft Windows Server, botó dret damunt el nom de l’entitat certificadora i clicar a Propietats.

En l’exemple, en la configuració de xifrat de l’entitat, s’indica com a proveïdor Microsoft Strong Cryptographic Provider i algoritme de signatura SHA-1. Aquests valors són els què s’han de canviar.

Comencem fent una còpia de seguretat de l’entitat certificadora i certificat arrel tal com estan ara en la carpeta C:\Backup-CA. Obrir la consola de PowerShell amb privilegis d’administrador i executar les següents comandes:

mkdir c:\Backup-CA
Backup-CARoleService –path C:\Backup-CA -Password (Read-Host -Prompt "Introduce la contraseña para la clave privada" -AsSecureString)

A la pregunta de la contrasenya, introduir una contrasenya per la clau privada del certificat de l’entitat.

Dins la carpeta Backup-CA s’ha creat el fitxer del certificat i la carpeta Database que conté la base de dades de l’entitat.

Per assegurar el tret i ser previsors, també recomano fer una còpia de seguretat de la configuració de l’Entitat Certificadora ubicada al registre de l’equip.

Des de la consola de PowerShell amb privilegis d’administrador executar la següent comanda:

reg export HKLM\SYSTEM\CurrentControlSet\services\Certsvc C:\Backup-CA\Backup_Registre.reg

O bé, des de l’entorn gràfic, obrir l’editor de registre amb la comanda:

regedit

Localitzar la clau de registre:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc

Botó dret damunt d’aquest nom i clicar l’opció exportar:

Indicar la ruta de la còpia de seguretat de l’entitat certificadora i un nom descriptiu: Backup_Registre. Clicar el botó Guardar.

Tancar l’editor del registre i procedim a realitzar les tasques de manteniment pròpiament a l’entitat certificadora per migrar xifrat. Des de la consola de PowerShell aturem el servei:

Stop-Service certsvc

Passar a un fitxer de text les dades del certificat actual de l’entitat certificadora per obtenir les firmes a mode de consulta. Substituir NOM ENTITAT CERTIFICADORA, pel nom corresponent a la vostra entitat:

certutil -store my "NOM ENTITAT CERTIFICADORA" > datos.txt

Comprovar que el contingut del fitxer es visualitza alguna cosa semblant a la següent foto. Necessitem localitzar el valor de la línia Cert Hash (sha1).

Esborrar l’actual certificat de l’entitat certificadora, tranquil, tens una còpia de seguretat per si alguna cosa va malament. Des de la consola de PowerShell amb privilegis d’administrador, accedim al magatzem de certificats:

cd cert:\localmachine\my
dir

Localitzar el Thumbprint corresponent al certificat de l’entitat certificadora, el mateix que correspont a la línia Cert Hash (sha1) anterior.

Esborrar el certificat amb la següent comanda, on THUMBPRINT correspont al hash sense espais:

del -deletekey THUMBPRINT

Comprovar que ja no existeix el certificat de l’entitat certificadora:

dir

Crear un nou certificat a partir del certificat de la còpia de seguretat, però modificant el proveïdor de xifrat a Microsoft Software Key Storage Provider. Executar:

certutil -csp "Microsoft Software Key Storage Provider" -importpfx "c:\Backup-CA\JMSolanes CA.p12"

Introduir la contrasenya que s’ha indicat a la còpia de seguretat per poder importar el certificat i la clau privada del mateix.

Comprovar que s’ha importat correctament el nou certificat al magatzem fent un llistat del mateix:

dir cert:\localmachine\my

Si es comprova el valor del certificat importat enviant les dades del mateix a un fitxer, es pot comprovar com el proveïdor de xifrat ha canviat.

Exportar el certificat i la seva clau privada en format pfx, per poder importar de nou al magatzem. Se’ns demana per la contrasenya de la clau privada pel certificat exportat, introduir la que es consideri oportuna:

certutil -exportpfx my "JMSolanes CA" c:\Backup-CA\jmsolanes_ca.pfx"

Recuperar la clau privada a l’entitat certificadora:

certutil -restorekey "c:\Backup-CA\jmsolanes_ca.pfx"

Comprovar quin algoritme de signatura està utilitzant el CSP:

certutil -v -getreg ca\csp\HashAlgorithm

Crear un nou fitxer amb extensió .reg per modificar l’algoritme de signatura, amb el bloc de notes mateix i amb el nom que vulgueu, jo he utilitzat regcsp.reg. Copiar el següent contingut, substituint <Nombre de la CA> pel nom de la CA que tingueu (sense els símbols de <>) i el CNGHashAlgorithm per l’obtingut en la comanda anterior.

Assegureu que la primera línia comença per Windows Registry Editor… I que després hi ha una línia en blanc.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<Nombre de la CA>\CSP]
"ProviderType"=dword:00000000
"Provider"="Microsoft Software Key Storage Provider"
"CNGPublicKeyAlgorithm"="RSA"
"CNGHashAlgorithm"="SHA1"

Executar el fitxer per fusionar els valors al registre. A la pregunta de si esteu segurs, contestar que si.

Comprovar l’algoritme de xifrat que s’està utilitzant:

certutil -v -getreg ca\encryptioncsp\EncryptionAlgorithm

Crear un nou fitxer per modificar la configuració de xifrat CSP. Tornar a substituir el valor de <Nombre de la CA> pel nom de la CA que tingueu (sense els símbols de <>) i que l’algoritme de xifrat (CNGEncryptionAlgorithm) és el què correspon.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<Nombre de la CA>\EncryptionCSP]
"ProviderType"=dword:00000000
"Provider"="Microsoft Software Key Storage Provider"
"CNGPublicKeyAlgorithm"="RSA"
"CNGEncryptionAlgorithm"="3DES"
"MachineKeyset"=dword:00000001
"SymmetricKeySize"=dword:000000a8

Executar el fitxer per fusionar els valors al registre. A la pregunta de si esteu segurs, contestar que si.

Canviar l’algoritme de signatura a SHA-2, actualment amb SHA256 n’hi ha suficient, però tal com es diu “ande o no ande, el burro grande”, seleccionem SHA512.

certutil -setreg ca\csp\CNGHashAlgorithm SHA512

Iniciar l’entitat certificadora per aplicar els canvis:

Start-Service certsvc

Obrint de nou la consola de l’entitat certificadora i accedint a les propietats de la mateixa, s’obvserva que el proveïdor de xifrat ja ha passat a ser Microsoft Software Key Storage Provider i l’algoritme de signatura ha passat a SHA512.

Però això no vol dir que s’hagi actualitzat el certificat de l’entitat certificadora ni cap altre certificat que s’hagi emès fins el moment. És a partir d’ara que es generaran els nous certificats que es canvia el sistema de xifrat i algoritme de signatura.

Si es comprova el certificat de l’entitat certificadora, continua disposant de l’algoritme de signatura SHA1.

Generar un nou certificat amb el xifrat KSP i l’algoritme de signatura SHA512

Des de la consola d’administració de l’entitat certificadora, botó dret damunt el nom de l’entitat, seleccionar totes les tasques i clicar a l’opció Renovar certificat de la CA.

S’adverteix que durant el procés s’ha d’aturar l’entitat certificadora. Clicar el botó Si.

Renovar amb la mateixa clau? NO! és el què volem canviar. Seleccionar No i clicar el botó OK.

Si es visualitzen els detalls del nou certificat, ha canviat l’algoritme de signatura a SHA512RSA.

Recordeu en redistribuir el nou certificat com entitat arrel de confiança abans de generar els nous certificats i assignar-los als diferents serveis.

T’ha agradat l’article? El pots compartir a les xarxes socials. També pots deixar la teva opinió, comentari o suggeriment. Gràcies!

Similar Posts by The Author: