La utilización de un sistema de Clave Pública con el uso de Certificados Digitales es cada vez más frecuente, ya sea por el uso de HTTPS, EFS (Encrypted File System), Remote Desktop Web Access, etc. ya que permite proveer un alto nivel de seguridad
Pero al ser un sistema de alta seguridad, es imprescindible además de un buen diseño, implementar un sistema de recuperación ante problemas. Muchas veces he visto consultas en Internet, sobre usuarios que han perdido su Certificado Digital o alguna de sus claves (no la contraseña) y luego no pueden acceder a sus documentos cifrados
Así que aprovechando lo que hemos hecho en las dos notas anteriores:
- Instalando una Autoridad Certificadora Raíz (Root Certification Authority) de Tipo Standalone
- Instalando una Autoridad Certificadora Subordinada de Tipo Enterprise (Integrada con Active Directory)
En esta ocasión veremos como implementar el archivado tanto de la clave pública como la privada en la Autoridad Certificadora, lo que nos permitirá en caso de pérdida por parte del usuario, recuperarlas fácilmente
Lo primero a tener en cuenta es que esto lo podremos hacer únicamente si nuestra Autoridad Certificadora es de tipo Enterprise, esto es integrada en Active Directory, ya que de otra forma no se puede obligar al solicitante que además de su clave pública, provea a la Autoridad Certificadora su clave privada
La configuración que haremos es altamente recomendable hacerla antes de comenzar a distribuir los Certificados Digitales, ya que será válida para los entregados a partir de que lo configuremos
Como estamos continuando de las notas anteriores (ver enlaces más arriba) la infraestructura necesaria que usaré es siempre la misma:
- Controlador de Dominio
DC1.guillermod.com.ar
Dirección IP 192.168.1.201 - Servidor miembro del Dominio
Autoridad Certificadora: GuillermoD-CA subordinada y tipo Enterprise
SRV1.guillermod.com.ar
Dirección IP 192.168.1.101 - Cliente de Dominio (máquina con sistema Desktop)
CL2.guillermod.com.ar
Dirección IP 192.168.1.102
Si vienen siguiendo esta serie de notas, a diferencia de la anterior y si han hecho todo bien, ya no necesitamos tener en línea a la Autoridad Certificadora Raíz, ya que esa es justamente la idea al crear un esquema seguro de dos capas (two-tier) de certificadoras
Aunque no mostraré las capturas de pantalla, porque creo que es muy sencillo de hacer, deberemos crear con anticipación dos usuarios y un grupo
- User Uno (u1.guillermod.com.ar)
Será el usuario de prueba
Se le debe asignar una dirección de correo aunque sea ficticia ya que lo exigirá la Autoridad Certificadora - KRA User (kra-user.guillermod.com.ar)
Será el Agente de Recuperación de claves
KRA es Key Recovery Agent - Grupo Global KRA-Agents
La cuenta “KRA User” es miembro de este grupo
El uso de una cuenta separada de la de administrador, para la recuperación de las claves es un tema importante de seguridad: que no quede todo en manos de la misma persona, ya que la recuperación de claves es algo muy sensible.
En realidad, un administrador del Dominio, no debería ser el administrador de la Autoridad Certificadora, y el agente recuperador de claves no debería ser ninguno de los dos primeros (división de roles)
Comenzaremos en SRV1, creando la plantilla de certificado personalizada, del agente de recuperación
Así que en SRV1, abrimos la consola de Certification Authority, botón derecho sobre “Certificate Templates”, y elegimos “Manage”
Copiaremos la plantilla “Key Recovery Agent” creando una nueva, tanto para poder personalizarla, como para que su versión tenga la flexibilidad que nos provee Windows Server 2012
Le asignamos un nombre a gusto
En la ficha “Security” le asignamos permiso al grupo KRA-Agents para que pueda obtener el correspondiente certificado
Y en nuestro caso desmarcaré la opción de que requiere aprobación para el otorgamiento del certificado
Cerramos la consola de administración de plantillas de certificado (Certificate Templates console), y en la consola de Certification Authority debemos configurar para que ese solicitar y otorgar el certificado de recuperación de claves
Ahora el agente de recuperación (KRA User) debe iniciar sesión en una máquina cliente (CL2) y obtener el correspondiente certificado, para lo cual crearmos una consola MMC con el complemento Certificados, según las siguientes capturas
Ahora debemos volver a SRV1 y crear la plantilla de usuarios pero incluyendo la opción de archivado de claves para permitir su recuperación en caso de problemas
Copiaremos, en forma análoga a como lo hiciemos con el agente de recuperación la plantilla normal de usuario, pero lógicamente con configuraciones diferentes de acuerdo a las siguientes capturas
Este mensaje está saliendo porque nos falta configurar algo más
25
Cerramos la consola de administración de plantillas de certificados
Entrando en las Propiedades de la Autoridad Certificadora con esto ya solucionamos el tema anterior
En la siguiente captura me he olvidado de desmarcar “Include e-mail …” si no lo hacen, para que un usuario pueda obtener un certificado de este tipo, necesitará tener una dirección de correo, aunque sea ficticia
En la consola de la Autoridad Certificadora debemos publicar la nueva plantilla
Y deberíamos deshabilitar la plantilla de “user” normal, para que se puedan solicitar certificados únicamente con archivado de claves. Y yo me he olvidado en la captura pero deberíamos deshabilitar todos los que no queramos, por ejemplo, el de EFS
Y ya llegó el momento para comenzar a probar si todo funciona como lo configuramos 🙂
Comenzaré iniciando sesión en CL2 con “u1.root.guillermod.com.ar” y solicitando un certificado basado en la nueva plantilla
El procedimiento es totalmente análogo a como hicimos con el Agente de Recuperación, así que no pondré todas las capturas, para no hacer esto tan largo y repetitivo
No lo haré en esta nota, pero supongamos que ha pasado el tiempo y el usuario ha usado su certificado, por ejemplo para EFS, y en algún momento surge un inconveniente que hace perder al certificado y sus claves
Por ejemplo, reinstalación de su máquina de trabajo, corrupción y borrado del perfil de usuario, o los que se le pueda ocurrir
En mi caso para simular esta pérdida, simplemente inicaré sesión en CL2 como administrador y eliminaré el perfil del usuario, para que de esta manera se pierda la información del mismo
Si quieren pueden inciar sesión con el usuario en CL2 y verificar que se ha perdido su certificado
Así que vamos a recuperar el Certificado Digital de u1@root.guillermod.com.ar
Esto implica tres partes:
- El administrador de la Autoridad Certificadora debe obtener el número de serie (Serial) del certifiado a recuperar, y debe pasárselo al agente de recuperación
- Usando este número de serie, el agente de recuperación recupera el certificado con sus correspondientes dos claves: pública y privada que debe transferir al usuario
- El usuario debe instalar las mismas
Veamos cómo se hace esto. Primero debemos buscar el certificado para identificar el Serial. Esto lo haremos en la Autoridad Certificadora de acuerdo a las siguientes capturas de pantalla
Acá lo podemos ver
Tenemos dos opciones, una es escribirlo manualmente tal como está. Otra opción es abrir el certificado, en la ficha Details seleccionar “Serial number” y con copiar y pegar llevarlo a un archivo de texto, pero tengan cuidado, porque además de tener que borrarle todos los espacios, suele poner al principio o entre medio caracteres no-validos (ASCII < 127) no visibles en Notepad y que luego harán que el siguiente comando falle 🙁
Ahora abrimos una consola CMD como administrador y debemos ejecutar:
CERTUTIL -GETKEY <el número de serie> ArchivoDePaso
Por supuesto poniendo el número de serie correcto, y el nombre del archivo que quieran
Este archivo que hemos creado se lo debemos entregar al agente de recuperación. En mi caso copié el archivo a CL2 donde iniciando sesión como agente de recuperación (KRA-user@root.guillermod.com.ar) procederé a recuperar el certificado del usuario con sus correspondientes claves
Se debe abrir un CMD en la carpeta donde está el mismo y ejecutar
CERTUTIL -RECOVERKEY ArchivoDePaso <usuario>.PFX
Nos solicitará ingresar una contraseña que deberemos proporcionársela al usuario para que pueda instalar el certificado
Vemos que el comando se completó exitosamente
Y el archivo creado se lo debemos entregar al usuario que tenía el problema. En este caso como estoy usando un único equipo cliente, simplemente lo colocaré en una carpeta llamada “Paso”, y le informaré al usuario dónde ha quedado y la correspondiente contraseña de acceso al mismo para que lo pueda importar
Así que iniciamos sesión en CL2 con u1@root.guillermod.com.ar y seguimos las instrucciones que nos ha dado el agente de recuperación 🙂
Comenzamos creando, si no la grabamos, una consola MMC con el complemento Certificados y procederemos a la importación del mismo
Habiendo el usuario recuperado su certificado con sus correspondientes claves tanto pública como privada, volverá a tener acceso a todo lo que haya cifrado o firmado digitalmente