Esta es la tercera y última parte de una serie de posts en los que quiero mostrar cómo configurar una entidad certificadora privada de Windows y cómo usarla para desplegar certificados a todos nuestros equipos del dominio así como el uso de una SmartCard.

En la Parte I hemos visto cómo instalar esta entidad certificadora en un servidor, en la Parte II hemos visto cómo configurar una plantilla para desplegar certificados de máquina a todos nuestros equipos del dominio y, en esta tercera parte vamos a ver cómo usarla con SmartCard.

Este documento presupone que hemos configurado un lector de tarjetas SmartCard en nuestro ordenador e instalado el software para gestionarlas por lo menos en un ordenador.

Las configuraciones que he hecho para configurar el acceso por SmartCard en las máquinas de Windows se resume en  estos pasos:

  • Instalar las herramientas de gestión de la SmartCard en un ordenador.
  • Configurar la CA para la emisión de certificados de inicio de sesión de los usuarios. Para ello hay  que:
  • Dar de alta las plantillas de inicio de sesión de tarjeta inteligente y de agente de inscripción.
  • Dar de alta el agente de inscripción.
  • Crear certificados de inicio de sesión a los usuarios.
  • Creación de las políticas de bloqueo de sesión en la extracción de la tarjeta inteligente
  • Creación de las políticas de cierre de sesión por inactividad

Vamos con cada uno de ellos.

Instalar las herramientas

Primero configuraremos nuestra CA para la emisión de certificados de inicio de sesión, para ello tenemos que configurar las plantillas que utilizaremos para la generación y despliegue de certificados.

En este caso vamos a utilizar 3 tipos de plantillas:

  • Inicio de sesión de tarjeta inteligente.
  • El agente de inscripción
  • Las plantillas de equipo para certificados de máquina (Ya tratada en la Parte II)

En este documento vamos a configurar el grupo Domain Admins como administradores de las plantillas de la CA, si queremos cambiar esto habrá que crear un grupo especial y en cada plantilla a utilizar dentro de la pestaña “Security” añadirlo y darle permisos de Read y Write.

Para configurar estas plantillas seguiremos los siguientes pasos:

1.       Abrimos la consola Autoridad Certificadora con el comando certsrv.msc
2.       Desplegar los componentes de la CA creada e ir a la sección “Certificate Template”
3.       Con el botón derecho elegir “Manage”  
4.       Aparece una nueva ventana con todas las plantillas que se han generado al instalar la CA, dependiendo de la versión de sistema operativo esta lista puede variar, la mostrada es de 2016.  
5.       La recomendación es no modificar las plantillas generadas y crear nuevas a partir de la que necesitemos.
6.       Localizamos la plantilla SmartCard Logon, pulsamos con el botón derecho del ratón y elegimos “Duplicate template”. Nos muestra una ventana con los datos de la plantilla base que podemos modificar.

Vamos a la pestaña “General” y modificamos el nombre y el periodo de validez, yo tengo por costumbre nombrar a todas las plantillas que creo con el prefijo “Plantilla” pero esto no es obligado.

 

 
7.       No vamos a modificar nada más con lo que pulsamos OK para volver a la lista de plantillas.
8.       Ahora localizamos la plantilla Enrollment Agent, pulsamos con el botón derecho del ratón y elegimos “Duplicate template”

Vamos a la pestaña “General” y modificamos el nombre.

NOTA: Siento las faltas de ortografía pero no me gusta poner acentos en los nombres de las plantillas ya que posteriormente da problemas en la ejecución de scripts.

 
9.       No vamos a modificar nada más con lo que pulsamos OK para volver a la lista de plantillas.
10.   Por último, localizamos la plantilla Computer y la duplicamos. Vamos a “General” y modificamos el nombre y el periodo de validez.

Esta plantilla ya ha sido generada en el parte II, aquí se muestra para revisar los datos introducidos, en este caso el periodo de validez y que esté marcada la opción “Allow private key to be exported” para facilitarnos la exportación de certificados, se encuentra en la pestaña “Request Handling”

 
11.   Cerramos la ventana de consola de plantillas y volvemos a la consola de la entidad certificadora.
12.   Con el botón derecho sobre Certificate Templates , elegir “New”-> “Plantilla de certificado que se va a emitir”
 
13.   Nos muestra otra ventana con todas las plantillas creadas
14.   Seleccionar las tres plantillas que hemos creado y pulsar Ok.

En el caso de no haber modificado la Plantilla Equipos no es necesario seleccionarla pues ya la hemos publicado en la Parte II.

 
15.   Comprobar que dichas plantillas aparecen ahora en la sección de “Certificate Templates”, como se muestra en la siguiente imagen:  

 

Ahora ya tenemos las plantillas preparadas para que se solicite un certificado a través de ellas.

Dar de alta el Agente de Inscripción

El siguiente paso es crear un Agente de Inscripción, es necesario crear por lo menos uno en algún ordenador del dominio.

Un agente de inscripción, por defecto, ha de ser un usuario que tenga permisos de administrador en el dominio, pero este usuario únicamente podrá inscribir nuevos certificados en el equipo en el que se haga el proceso que se describe a continuación.

Si se desea que otro usuario administrador también sea agente de inscripción de certificados en el mismo equipo, se deberá iniciar sesión con dicho usuario en el equipo y repetir el proceso. De igual manera, si se desea que el mismo usuario sea agente de inscripción de certificados en otro equipo, se deberá repetir el proceso con dicho usuario en otro equipo.

NOTA: Los ordenadores en las que se vaya a llevar a cabo el proceso deben disponer de un lector de tarjeta con sus drivers y servicios de criptografía correspondientes correctamente instalados.

Para hacer esto seguiremos los siguientes pasos:

1.       Ejecutar mmc.exe
2.       Seleccionar “Archivo”-> “Agregar o quitar complemento”
3.       Agregar el complemento “Certificados”, elegir “Mi cuenta de usuario”  
4.       Expandir la ruta “Certificados: usuario actual” -> “Personal” -> “Certificados”
5.       Sobre la carpeta “Certificados” , botón derecho y seleccionar “Todas las tareas” -> “Solicitar un nuevo certificado”  
6.       Avanzar hasta la pantalla “Solicitar certificados” (normalmente es la tercera pantalla)
7.       Buscar “Plantilla Agente de inscripción” y desplegar los “Detalles” de dicha opción, y pulsar el botón de “Propiedades”

 

 
8.       En la nueva ventana ir a la pestaña de “Clave privada” y asegurarse de que la opción “Microsoft Base Cryptographic Provider v1.0 (Firma)” está seleccionada, normalmente el resto también están.
9.       Si no vemos la opción hay que pulsar a la flecha que hay arriba a la derecha, si no está desplegado apunta hacia abajo.  
10.   Pulsar OK para aceptar los cambios.
11.   Seleccionar “Plantilla Agente de inscripción” y pulsar el botón “Enroll”  
12.   Si todo es correcto nos lo indicará.  
13.   Ahora en la carpeta de “Certificados” debería aparecer un nuevo certificado con el propósito de “Agente de solicitud de certificados” o, si está en inglés “Certificate Request Agent”
 

 

En casos excepcionales, se puede desear que un usuario no administrador actúe de agente de inscripción de certificados. Esto se puede llevar a cabo con los pasos presentados a continuación.

Hay que tener en cuenta que esta práctica se debería evitar en la medida de lo posible, ya que el agente de inscripción podrá crear certificados de inicio de sesión para todos los usuarios del sistema, y suplantar su identidad.

Para hacerlo seguiremos los siguientes pasos:

1.       Ejecutar el comando certtmpl.msc
2.       Seleccionar la plantilla de Plantilla Agente de inscripción y con el botón derecho acceder a las “Propiedades”
3.       Ir a la pestaña “Seguridad” y con el botón “Agregar” añadir los usuarios o grupos de usuarios que se desea que actúen como agentes de inscripción de certificados
4.       Concederles permisos de “Escribir” e “Inscribirse” a los usuarios añadidos, como se muestra a continuación  
5.       Pulsar OK
6.       Abrimos la consola Autoridad Certificadora con el comando certsrv.msc
7.       Seleccionar la entidad de certificación que firmará los certificados para el agente de inscripción y acceder a sus “Propiedades” con el botón derecho
8.       Ir a la pestaña “Agentes de inscripción”, y marcar la casilla “Restringir agentes de inscripción”
9.       Añadir en “Agentes de inscripción” todos los agentes de inscripción que se han añadido en el paso anterior
10.   Añadir en “Plantillas de certificado” la plantilla de “Plantilla Login con SmartCard”
11.   Si se desea restringir la inscripción de certificados de inicio de sesión a un grupo o usuario se puede añadir en Permisos
12.   Finalmente, tanto en “Agentes de inscripción” como en “Plantillas de certificado” seleccionar “<Todos>” y clicar en el botón “Quitar”. La siguiente captura muestra un ejemplo

 

 
13.   Finalizar pulsando OK

 

Dar de alta las plantillas de inicio de sesión de tarjeta inteligente

Ahora vamos a crear un certificado de inicio de sesión a los usuarios. Para cada usuario al que se le desee otorgar un certificado de inicio de sesión mediante tarjeta inteligente el Agente de inscripción de certificados deberá realizar el siguiente proceso:

1.       Ejecutar mmc.exe
2.       Seleccionar “Archivo”-> “Agregar o quitar complemento”
3.       Agregar el complemento “Certificados”, elegir “Mi cuenta de usuario”  
4.       Expandir la ruta “Certificados: usuario actual” -> “Personal” -> “Certificados”

5.       Botón derecho sobre “Certificados”, seleccionar “Todas las tareas” -> “Operaciones avanzadas” -> “Inscribirse en nombre de…”

6.       Avanzar hasta la pantalla de “Seleccionar certificado de agente de inscripción” (normalmente hay que avanzar dos pantallas), en esta pantalla usar el botón “Examinar” para seleccionar el certificado que hemos creado en la sección anterior.

Una vez seleccionado el certificado avanzar a la siguiente pantalla

 
7.       En la pantalla “Solicitar certificados”, expandir los detalles de la opción “Plantilla Login con SmartCard”, y usar el botón “Propiedades”

8.       En la nueva ventana, ir a la pestaña “Clave privada” y “Proveedor de servicios de cifrado” seleccionar “Microsoft Base Smart Card Crypto Provider” o el CSP propio de la tarjeta inteligente usada y darle al botón de “Aceptar”

9.       Seleccionar la opción Plantilla Login con SmartCard” y pulsar “Siguiente”

10.   En la pantalla “Seleccionar un usuario” se debe escribir el nombre del usuario en la forma DOMINIO\USUARIO o usar el botón de “Examinar” para buscar el usuario al que se le desea asignar el certificado de inicio de sesión con tarjeta inteligente

11.   Al darle al botón de siguiente, el asistente nos pedirá que insertemos la tarjeta inteligente en el lector y se procederá a guardar el certificado en dicha tarjeta, para lo cual será necesario introducir su PIN (En el caso de haber elegido este tipo de autentificación)

12.   Si todo ha funcionado correctamente, la tarjeta ya podrá ser usada con su correspondiente PIN para iniciar sesión en el sistema en cualquier ordenador del dominio

 

Bloqueo de la sesión

Por último, nos falta configurar el bloqueo de la sesión en la extracción de la tarjeta inteligente o, el comportamiento deseado.

Para habilitar esta opción hay que configurar dos directivas en el dominio (GPO) desde uno de sus controladores (DC).

  • La primera directiva a cambiar indica qué deben de hacer los equipos cuando se extraiga la tarjeta inteligente del lector.
  • La segunda directiva indica que todos los equipos deben de iniciar el servicio que permite la detección de extracción de la tarjeta inteligente del lector por parte de Windows.

Lo recomendable es crear estas dos directivas enlazadas a una determinada Unidad Organizativa donde estén ubicados los ordenadores en donde queramos que se apliquen o, si queremos que se apliquen a todos lo haremos a nivel de dominio como en el siguiente ejemplo.

Estas dos directivas las crearemos en una misma GPO para lo cual:

1.       Desde un DC de nuestro dominio u ordenador con las herramientas administrativas instaladas, abrimos la consola Group Policy Management con el comando gpmc.msc

2.       Desplegamos la rama del dominio, una vez abierta pulsamos botón derecho sobre él y elegimos Create a GPO in this Domain and Link it here.

3.       Nos pide el nombre de esta GPO, le damos el que queramos.  
4.       Una vez creada editamos la GPO. Deberemos realizar los siguientes cambios.
5.       Desplegar “Configuración de equipo” -> “Directivas” -> “Configuración de Windows” -> “Configuración de seguridad” -> “Directivas locales” -> “Opciones de seguridad”
6.       En esta vista, buscar “Inicio de sesión interactivo: comportamiento de extracción de tarjeta inteligente” (en inglés “Interactive logon: Smart card removal behavior) y abrirlo.
 
7.       En la ventana que se abre, aparecen las opciones disponibles que son:

·         No hacer nada

·         Bloquear la sesión

·         Forzar el logoff

·         Desconectar si es una sesión de escritorio remoto

 
8.       Para nuestro ejemplo seleccionamos en el desplegable “Bloquear estación de trabajo”

Para definir la segunda directiva hacemos:

9.       Desplegamos “Configuración de equipo” -> “Directivas” -> “Configuración de Windows” -> -> “Configuración de seguridad” -> “Servicios del sistema”
10.  Buscar “Directiva de extracción de tarjetas inteligentes” en inglés “Smart Card Removal Policy”
11.   La abrimos, seleccionar “Automático” como se muestra en esta captura de pantalla  
Ya tenemos la GPO configurada, ahora deberemos filtrarla de acuerdo a nuestra necesidades, por defecto está a Authenticated users, es decir, a todos los usuarios.

 

Una vez realizado estos pasos deberemos utilizar la herramienta suministrada por el fabricante de la SmartCard para poder añadir los certificados de usuarios que generemos dentro de las tarjetas. Es recomendable que el nombre que se ha dado al certificado generado corresponda con el usuario relacionado en el Directorio Activo.

Con este documento acabamos las tres partes en las que he querido compartir con vosotros como y para que podemos utilizar una Entidad Certificadora interna y gestionada por nuestro Directorio Activo.