Autoridad Certificadora – Implementación de un Agente Recuperador de Claves

En la nota anterior con la instalación de una Autoridad Certificadora – Instalación y Configuración de una Autoridad Certificadora Subordinada Enterprise ya estamos en condiciones para configurar nuestra infraestructura interna de clave pública (PKI = Public Key Infrastructure)

Uno de los objetivos que tengo pensado demostrar, es asegurarme que los certificados de usuario que otorgaremos, se puedan recuperar en caso de pérdida. Es una medida de seguridad importante, ya que esta pérdida puede producirse de muchas formas a veces inpensadas, como pueden ser desde un cambio o reinstalación de máquina sin haber previamente exportado las claves, hasta la eliminación del perfil local de usuario

Para poder recuperar las claves de un usuario, debemos crear una cuenta de usuario con el privilegio de poder recuperar las claves de otras cuentas en caso de pérdida, configurar la Autoridad Certificadora adecuadamente y además personalizar las plantillas de certificados de los usuarios para que se puedan recuperar las claves

Seguiremos usando las mismas máquina de las notas anteriores:

  • server.isp.com
  • NAT
  • dc1.ad.guillermod.com.ar
  • srv1.ad.guillermod.com.ar
  • cl1.ad.guillermod.com.ar

Recuerdo la infraestructura que ya tenemos creada de notas anteriores

Como se puede observar en la siguiente pantalla, he creado una Unidad Organizativa, que he llamado “KRA” donde he definido dos cuentas de usuario y un grupo global:

A todos los usuarios le he agregado una dirección de correo (“Mail”) ya que es un requerimiento para obtener certificados digitales, por omisión

Lo primero que voy a hacer, es en nuestra Autoridad Certificadora Subordinada Enterprise es desactivar las plantillas de certificado que un usuario podría obtener, estas son: “Basic EFS” y “User”, ya que las mismas no están configuradas para agente de recuperación

En srv1.ad.guillermod.com.ar, en la consola de la Autoridad Certificadora, carpeta “Templates” procederé a eliminar las mismas, como muestran las siguientes capturas de pantalla

Debe quedar finalmente así:

Ahora comenzaremos creando una plantilla personalizada para el agente de recuperación de claves, por lo que con botón derecho sobre “Templates” elejimos “Manage”

 

Partiremos de una copia de la plantilla predefinida “Key Recover Agent” creando una nueva adaptada a nuestras necesidades

Como podemos observar, por omisión nos da compatibilidad con Autoridad Certificadora Windows Server 2003 y clientes Windows XP. Como supongo que en este momento ya no tenemos clientes con esas versiones, y para aprovechar las nuevas funcionalidades, cambiaré esas opciones

Para Autoridad Certificadora elegiré Windows Server 2012 R2

El sistema me muestra lo que cambiará

Y análogamente con la parte de cliente, eligiendo Windows 7 y Windows Server 2008 R2, que actualmente todavía son muy utilizados

Quedará así

En la ficha “General” le daré a la plantilla el nombre “Agente Recuperador de Claves”

En la ficha “Security” agregaré al grupo que hemos definido anteriormente (“KRA Agents”) para que pueda obtener el certificado (“Read” y “Enroll”)

Y por último, tratándose de un ambiente de demostración y pruebas, en la ficha “Issuance Requirements”, desmarcaré la opción que requiera aprobación para su otorgamiento para simplificar el procedimiento demostrativo

Ya podemos ver la plantilla creada

Cerramos la ventana de administración de plantillas, y en la consola de Autoridad Certificadora procederemos a cargar nuestra nueva plantilla

Ahora iniciamos sesión en CL1 con la cuenta KRA-Agent para solicitar el certificado de agente de recuperación de claves

¿Conocen el comando WHOAMI? es muy viejo y es así que muchos no lo conocen:
WHOAMI = Who Am I? (Quién soy yo)

Y creamos una consola cargando el complemento “Certificates” sobre la cuenta de usuario (no vamos a explicar cómo se hace :-)) Desde la cual haremos la solicitud del certificado como muestran las capturas del asistente

Marcamos la opción del obtener el certificado correspondiente

Y ya podremos ver el certificado instalado

Ahora debemos volver a nuestra Autoridad Certificadora (SRV1) y configurarla para que se puedan recuperar las claves

En la ficha “Recovery Agents” configuramos para que se puedan archivar las claves, y con el botón “Add” especificamos el certificado correspondiente al agente recuperador

Veremos que aparentemente da un error (“Not loaded”). Esto se debe a que hay que reinciar el servicio

Una vez reiniciado el servicio, si ingresamos nuevamente veremos que todo está bien

Ahora debemos crear una plantilla de certificados para usuarios, pero que a diferencia de la por omisión, ésta permita que las claves sean recuperadas. Así que ingresamos nuevamente al administrador de plantillas, y usaré como base la normal de “User” pero creando una copia personalizada

Igual que hicimos anteriormente modificaré los valores por omisión de compatibilidad

Le daré un nombre apropiado

Y debo seleccionar la opción “Archive subject’s encryption private key”. La misma queda como si estuviera seleccionable, pero si prueban verán que no se puede. Debemos pulsar primer el botón “Apply” para poder marcarla. Es normal que informe que no hay ninguna Autoridad Certificadora que pueda otorgar este tipo de certificados, lo cual es lógico ya que aún no la hemos configurado, se hará en los próximos pasos

Si miran la ficha “Subject Name” verán que están marcadas las opciones de dirección de correo, y por eso la aclaración al principio de la nota. Y finalizamos la configuración de la plantilla de usuario con recuperación de claves

Ahora debemos publicar esta plantilla para que la Autoridad Certificadora pueda otorgar certificados basados en la misma

Vamos a comprobar que un usuario normal puede solicitar y obtener un certificado basado en la plantilla con recuperación de claves
Para eso, iniciamos sesión en CL1 con la cuenta KRA-Test, creamos una consola para certificados de usuario, y efectuamos la solicitud de certificado de usuario.
No piensen que luego los usuario deberán hacer este procedimiento, en la próxima nota veremos cómo hacer por Directivas de Grupo (GPO) que los usuarios obtengan automáticamente y sin intervención el certificado

Podemos observar que puede solicitar únicamente la plantilla personalizada con recuperación que hemos creado anteriormente

Para finalmente poder tener instalado el correspondiente certificado

El objetivo de esta demostración es ver cómo se pueden recuperar certificados y claves de usuarios, así que para poder simularlo, iniciaré sesión en CL1 con una cuenta de administrador y eliminaré el perfil de KRA-Test. Con esto se eliminará tanto la clave privada como la pública

Comenzaremos ahora con el procedimiento propiamente dicho de recuperación del certificado del usuario. Este procedimiento constará de los siguientes pasos:

  1. El administrador de la Autoridad Certificadora debe encontrar el certificado con las claves perdidas, y anotar su número de serie (“Serial Number”)
  2. Usando el comando “CERTUTIL -GetKey …” recuperar la información que deberá poner en un archivo transitorio cifrado, que deberá suministrar al Agente de Recuperación de Claves (KRA-Agent)
  3. El Agente de Recuperación de Claves, usando su certificado, y el comando “CERTUTIL -RecoverKey …” podrá descifrar el contenido del archivo suministrado por el administrador, el cual deberá proteger con una contraseña para dárselo al usuario con problemas
  4. El usuario que ha perdido su certificado deberá importar la nueva copia de su certificado y clave privada, utilizando la contraseña otorgada por el Agente de Recuperación de claves

Parece algo complicado, pero piensen en la seguridad que debe haber detrás de todo esto

  1. El administrador de la Autoridad Certificadora debe encontrar el certificado con las claves perdidas, y anotar su número de serie (“Serial Number”)
  2. Usando el comando “CERTUTIL -GetKey …” recuperar la información que deberá poner en un archivo transitorio cifrado, que deberá suministrar al Agente de Recuperación de Claves (KRA-Agent)
    El comando completo es:
    CERTUTIL -GetKey <Serial> <ArchivoTransitorio>

    Este archivo transitorio y cifrado que yo he llamado “ArchivoDePaso” debe ser copiado a CL1, donde está iniciada sesión con KRA-Agent, y que tiene su certificado de recuperación, para que proceda al descifrado
  3. El Agente de Recuperación de Claves, usando su certificado, y el comando “CERTUTIL -RecoverKey …” podrá descifrar el contenido del archivo suministrado por el administrador, el cual deberá proteger con una contraseña para dárselo al usuario con problemas
    El comando usado es:
    CERTUTIL -RecoverKey <ArchivoDePaso> <NombreClaves>.PFX
    En mi caso:
    CERTUTIL -RecoverKey ArchivoDePaso KRA-Test.pfx
    Y protegerlo con una contraseña que deberá comunicar al usuario
    Este archivo creado con extensión PFX es el que debe suministar al usuario para su importanción, indicando la contraseña puesta al mismo
  4. El usuario que ha perdido su certificado deberá importar la nueva copia de su certificado y clave privada, utilizando la contraseña otorgada por el Agente de Recuperación de claves

Finalmente, con el usuario inciando sesión en CL1, y desde una consola de certificados procederá a la importanción de las claves, como muestran las pantallas del siguiente asistente

Si lo buscan, se debe cambiar la extensión por omisión que se muestre a PFX, de otra forma no será visible

Ingresamos la contraseña proporcionada por el Agente Recuperador de Claves

Como podemos observar se ha recuperado el certificado y clave privada perdidos

En esta demostración hemos configurado y confirmado el funcionamiento del sistema de recuperación de claves de certificados digitales de usuario, así que en la próxima nota continuaremos con lo que nos falta que es muy sencillo: Autoridad Certificadora – Automatizar el Otorgamiento de Certificados Digitales Personalizados a Usuarios

 

Anuncios
Post a comment or leave a trackback: Trackback URL.

Comentarios

  • Bdroid  On 21/01/2015 at 18:52

    Hola Guillermo, Por acá Bdroid again :-) Por favor, me podrías dar alguna pista en esto: he seguido los pasos que indicas en esta secuencia de las unidades cert salvo que lo inicié como lo indicas en las Notas de RD y cree de una la Unidad Certificadora Raiz – Enterprise en el DC (tal como lo indicas en las notas) y todo perfecto, pero ahora estoy intentando hacer lo de las recuperaciones y no logro que me salga el certificado del KRA Agent sino que me sale el del Dominio y me dice que no es valido aun cuando ya he reiniciado el servicio. Intenté entonces agregado el grupo del Agente recuperador que indicas crear en estos pasos y le dí acceso a leer, Emitir y Administratar Certif y también a Solicitarlos; pero nada, me sigue indicando (luego del reinicio) que no es válido….por favor alguna pista… (después de esto seguiré los pasos para hacer lo que indicas de los GPO para facilitar el trabajo con los usuarios)

    • Guillermo Delprato  On 22/01/2015 at 07:32

      Hola Bdroid, lamentablemente no puedo revisar cada uno de los pasos que haz hecho, y tampoco puedo hacer soporte a través de estos comentarios
      Te aconsejo revises cada uno de los pasos, o mejor si puedes rehacer el procedimiento, ya que a veces pequeños cambios son los que pueden traer problemas

  • CHOQUE CHOQUE  On 24/05/2016 at 15:58

    porque me sale este error al ejecutar el comando certutil -getkey

    c:\Windows\System32>CertUtil -GetKey 5d000000257bc6757779f3d9d7000000000025

    @goto start

    CertUtil: -GetKey error del comando: 0x80092004 (-2146885628 CRYPT_E_NOT_FOUND)

    CertUtil: No puede encontrar el objeto o propiedad

    A que de debe? ?????????????

  • CHOQUE CHOQUE  On 24/05/2016 at 17:34

    si guillermo me olvide agregar el ultimo parametro

    C:\Users\arecuperador>CertUtil -GetKey “5d 00 00 00 25 7b c6 75 77 79 f3 d9 d7 00 00 00 00 00 25” generado

    CertUtil: -GetKey error del comando: 0x80092004 (-2146885628 CRYPT_E_NOT_FOUND)
    CertUtil: No puede encontrar el objeto o propiedad

    y me sale ese error?????

    si guillermo esta agregado el nombre del archivo pero igual me sale ese error porque sera??????

    • Guillermo Delprato  On 24/05/2016 at 19:05

      Estos son comentarios sobre la nota y oriento cuando puedo
      Por favor, como puse antes, recurre a algún foro de soporte

Trackbacks

Este espacio es para comentarios sobre la nota. No es un sitio de soporte

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: