Proteger claves privadas del Servicio de autenticación federada

Introducción

Las claves privadas se almacenan por medio de la cuenta de servicio de red y, de forma predeterminada, se marcan como elementos que no se pueden exportar.

Hay dos tipos de claves privadas:

  • La clave privada asociada al certificado de la autoridad de registro (RA), procedente de la plantilla de certificado Citrix_RegistrationAuthority.
  • La clave privada asociada a los certificados de usuario, procedente de la plantilla de certificado Citrix_SmartcardLogon.

En realidad, existen dos certificados de RA: Citrix_RegistrationAuthority_ManualAuthorization (válido durante 24 horas de forma predeterminada) y Citrix_RegistrationAuthority (válido durante dos años de forma predeterminada).

En el paso 3 de la instalación inicial en la consola de administración del servicio FAS, cuando el administrador hace clic en “Autorizar”, el servidor FAS genera un par de claves y envía una solicitud de firma de certificado (CSR) a la entidad de certificación para el certificado Citrix_RegistrationAuthority_ManualAuthorization. Se trata de un certificado temporal, válido durante 24 horas de forma predeterminada. La entidad de certificación no emite automáticamente el certificado, por lo que un administrador debe autorizar manualmente la emisión en ella. Una vez emitido el certificado al servidor FAS, el servicio FAS utiliza el certificado Citrix_RegistrationAuthority_ManualAuthorization para obtener automáticamente el certificado Citrix_RegistrationAuthority (cuya validez predeterminada es de dos años). El servidor FAS elimina el certificado y la clave de Citrix_RegistrationAuthority_ManualAuthorization tan pronto como obtiene el certificado Citrix_RegistrationAuthority.

La clave privada asociada al certificado de la autoridad de registro (RA) debe ser especialmente confidencial, porque la directiva de certificados RA permite a quien posea la clave privada emitir solicitudes de certificado para el conjunto de usuarios configurados en la plantilla. Como consecuencia, quien posea esta clave puede conectarse al entorno como ninguno de los usuarios del conjunto.

Puede configurar el servidor FAS para que proteja las claves privadas según los requisitos de seguridad de la empresa. Para ello, elija una de las siguientes opciones:

  • El proveedor de servicios de cifrado RSA y AES mejorado de Microsoft o el proveedor de almacenamiento de claves (KSP) de software de Microsoft para las claves privadas del certificado de la autoridad de registro (RA) y de los certificados de usuario.
  • El proveedor de almacenamiento de claves de la plataforma Microsoft con un chip del módulo de plataforma segura (TPM) para la clave privada del certificado de RA, y el proveedor de servicios de cifrado RSA y AES mejorado de Microsoft o el proveedor de almacenamiento de claves (KSP) de software de Microsoft para las claves privadas de los certificados de usuario.
  • El proveedor de almacenamiento de claves o el servicio de cifrado del distribuidor, ambos con el módulo de seguridad de hardware (HSM), para las claves privadas del certificado de RA y de los certificados de usuario.

Parámetros de configuración de claves privadas

Configure el servicio de autenticación federada (FAS) para usar una de las tres opciones. En un editor de texto, modifique el archivo Citrix.Authentication.FederatedAuthenticationService.exe.config. La ubicación predeterminada del archivo es la carpeta Archivos de programa\Citrix\Federated Authentication Service que se encuentra en el servidor FAS.

Imagen localizada

El servicio FAS lee el archivo de configuración solo cuando se inicia el servicio. Si se cambian los valores, el servicio FAS debe reiniciarse para que se vea la nueva configuración.

Establezca los valores correspondientes en el archivo Citrix.Authentication.FederatedAuthenticationService.exe.config como se muestra a continuación:

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderLegacyCsp (cambie entre CAPI y las API de CNG)

Valor Comentario
true Usar las API de CAPI
false (opción predeterminada) Usar las API de CNG

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderName (nombre del proveedor que se va a usar)

Valor Comentario
Microsoft Enhanced RSA and AES Cryptographic Provider Proveedor predeterminado de CAPI
Microsoft Software Key Storage Provider Proveedor predeterminado de CNG
Microsoft Platform Key Storage Provider Proveedor predeterminado de TPM. Tenga en cuenta que TPM no se recomienda para las claves de usuario. Use TPM solo para la clave de RA. Si quiere ejecutar el servidor FAS en entornos virtualizados, consulte al distribuidor de TPM y del hipervisor si se admite la virtualización.
HSM_Vendor CSP/Proveedor de almacenamiento de claves Facilitado por el distribuidor de HSM. El valor difiere de un distribuidor a otro. Si quiere ejecutar el servidor FAS en entornos virtualizados, consulte al distribuidor de HSM si se admite la virtualización.

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderType (obligatorio solo en caso de API de CAPI)

Valor Comentario
24 Predeterminado. Se refiere a Microsoft KeyContainerPermissionAccessEntry.ProviderType Property PROV_RSA_AES 24. Debe ser siempre 24 a menos que esté usando un HSM con CAPI y el proveedor de HSM especifique otra cosa.

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyProtection (Cuando se necesita que el servicio FAS realice una operación de clave privada, este utiliza el valor especificado aquí) Controla el indicador “exportable” de las claves privadas. Permite el uso del almacenamiento de claves de TPM, si lo admite el hardware.

Valor Comentario
NoProtection Se puede exportar la clave privada.
GenerateNonExportableKey Predeterminado. No se puede exportar la clave privada.
GenerateTPMProtectedKey La clave privada se administrará mediante TPM. La clave privada se almacena mediante el nombre de proveedor que especifique en ProviderName (por ejemplo, el proveedor de almacenamiento de claves de la plataforma Microsoft).

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyLength (especifique el tamaño de la clave privada en bits)

Valor Comentario
2048 Valor predeterminado. También se puede usar 1024 o 4096.

A continuación, se muestran los parámetros del archivo de configuración representados gráficamente (las opciones de instalación predeterminadas aparecen en rojo):

Imagen localizada

Ejemplos de configuración

Ejemplo 1

En este ejemplo, la clave privada del certificado de RA y las claves privadas de los certificados de usuario se almacenan con el proveedor de almacenamiento de claves de software de Microsoft.

Esta es la configuración predeterminada tras la instalación. No se necesita configurar ninguna clave privada adicional.

Ejemplo 2

En este ejemplo, la clave privada del certificado de RA se almacena en el hardware TPM de la placa base del servidor FAS con el proveedor de almacenamiento de claves de la plataforma Microsoft, mientras que las claves privadas de los certificados de usuario se almacenan con el proveedor de almacenamiento de claves (KSP) de software de Microsoft.

En este caso, se presupone que el TPM de la placa madre del servidor FAS se ha habilitado en BIOS (siguiendo la documentación del fabricante del TPM) y, a continuación, se ha inicializado en Windows; consulte https://technet.microsoft.com/en-gb/library/cc749022(v=ws.10).aspx.

Usar PowerShell (recomendado)

El certificado de RA se puede solicitar sin conexión mediante PowerShell. Se recomienda en empresas que no quieran que su entidad de certificación emita un certificado de RA a través de una solicitud de firma de certificado en línea. Con consola de administración FAS, no se puede solicitar una firma de certificado de RA sin conexión.

Paso 1: Durante la configuración inicial de FAS con la consola de administración, complete solo los primeros dos pasos, es decir, implemente las plantillas de certificado y configure la entidad de certificación.

Imagen localizada

Paso 2: En el servidor de la entidad de certificación, agregue el complemento MMC de las plantillas de certificados. Haga clic con el botón secundario en la plantilla Citrix_RegistrationAuthority_ManualAuthorization y seleccione Duplicar plantilla.

Seleccione la ficha General. Cambie el nombre y el período de validez. En este ejemplo, el nombre es Offline_RA y el período de validez es de 2 años:

Imagen localizada

Paso 3: En el servidor de la entidad de certificación, agregue el complemento MMC de esta. Haga clic con el botón secundario en Plantillas de certificado. Seleccione Nueva y, a continuación, haga clic en Plantilla de certificado que se va a emitir. Elija la plantilla que acaba de crear.

Paso 4: Cargue los siguientes cmdlets de PowerShell en el servidor FAS:

Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1

Paso 5: Genere el par de claves RSA en el TPM del servidor FAS y cree la solicitud de firma de certificado con los siguientes cmdlets de PowerShell en el servidor FAS. Nota: Algunos TPM limitan la longitud de la clave. La longitud predeterminada de la clave es de 2048 bits. Especifique una longitud de clave que su hardware admita.

New-FasAuthorizationCertificateRequest -UseTPM $true -address <FQDN del servidor FAS>

Por ejemplo:

New-FasAuthorizationCertificateRequest -UseTPM $true -address fashsm.auth.net

Aparecerá lo siguiente:

Imagen localizada

Notas:

  • En uno de los siguientes pasos, se necesita el identificador GUID (en este ejemplo, “5ac3d8bd-b484-4ebe-abf8-4b2cfd62ca39”).
  • Este cmdlet de PowerShell se puede entender como una “invalidación” puntual que se usa para generar la clave privada del certificado de la autoridad de registro.
  • Cuando se ejecuta este cmdlet, se comprueban los valores del archivo de configuración, leídos en el inicio del servicio FAS, para determinar la longitud de la clave que se va a usar (la longitud predeterminada es de 2048).
  • Como -UseTPM está establecido en $True en esta operación manual de clave privada de certificado de RA que se ha iniciado con PowerShell, el sistema ignora los valores del archivo que no coincidan con la configuración necesaria para usar un TPM.
  • Ejecutar este cmdlet no cambia los parámetros del archivo de configuración.
  • En las siguientes operaciones automáticas de clave privada para los certificados de usuario que se inicien con FAS, se utilizarán los valores que se hayan leído del archivo cuando se iniciara el servicio FAS.
  • También se puede establecer el valor de KeyProtection del archivo de configuración en GenerateTPMProtectedKey cuando el servidor FAS emita certificados. De este modo, se generarán claves privadas de certificados de usuario protegidas por el TPM.

Para verificar que se haya utilizado el TPM para generar el par de claves, abra el registro de la aplicación en el visor de eventos de Windows que está presente en el servidor FAS y consulte el momento en que se generó el par de claves.

Imagen localizada

Nota: “[TPM: True]”

Seguido de:

Imagen localizada

Nota: “Provider: [CNG] Microsoft Platform Crypto Provider”

Paso 6: Copie la sección de la solicitud de certificado a un editor de texto y guárdela en el disco como un archivo de texto.

Imagen localizada

Paso 7: Envíe la solicitud de firma de certificado a la entidad de certificación (CA). Para ello, escriba lo siguiente en la instancia de PowerShell presente en el servidor FAS:

certreq -submit -attrib “certificatetemplate:<plantilla de certificado del paso 2>” <archivo de solicitud de certificado del paso 6>

Por ejemplo:

certreq -submit -attrib “certificatetemplate:Offline_RA” C:\Users\Administrator.AUTH\Desktop\usmcertreq.txt

Aparecerá lo siguiente:

Imagen localizada

En este punto, es posible que aparezca una ventana con la lista de entidades de certificación. En este ejemplo, la entidad de certificación (CA) tiene habilitadas las inscripciones HTTP (hilera superior) y DCOM (hilera inferior). Seleccione la opción DCOM, si está disponible:

Imagen localizada

Tras especificar la entidad de certificación (CA), PowerShell pide el ID de la solicitud mediante RequestID:

Imagen localizada

Paso 8: En el servidor de la entidad de certificación, en el complemento MMC de esta, haga clic en Solicitudes pendientes. Tome nota del identificador de la solicitud. A continuación, haga clic con el botón secundario en la solicitud y elija Emitir.

Paso 9: Seleccione el nodo Certificados emitidos. Busque el certificado que se acaba de emitir (el ID de solicitud debe coincidir). Haga doble clic para abrir el certificado. Seleccione la ficha Detalles. Haga clic en Copiar a archivo. Se iniciará el Asistente para exportación de certificados. Haga clic en Siguiente. Seleccione las siguientes opciones para el formato de archivo:

Imagen localizada

El formato debe ser Estándar de sintaxis de cifrado de mensajes: certificados PKCS #7 (.P7B) y se debe marcar Si es posible, incluir todos los certificados en la ruta de acceso de certificación.

Paso 10: Copie el archivo del certificado exportado al servidor FAS.

Paso 11: Debe importar el certificado de RA al Registro del servidor FAS. Para ello, introduzca los siguientes cmdlets de PowerShell en el servidor FAS:

Imagen localizada

Por ejemplo:

Imagen localizada

Aparecerá lo siguiente:

Imagen localizada

Paso 12: Cierre la consola de administración FAS y reiníciela.

Imagen localizada

Verá que el paso “Authorize this Service” pasa a ser verde y ahora aparece “Deauthorize this Service”. La entrada siguiente es “Authorized by: Offline CSR”.

Paso 13: Seleccione la ficha User Roles en la consola de administración FAS y modifique la configuración como se describe en el artículo principal del Servicio de autenticación federada (FAS).

Nota: Desautorizar el Servicio de autenticación federada (FAS) a través de la consola de administración eliminará el rol de usuario.

Uso de la consola de administración FAS

La consola de administración FAS no puede solicitar firmas de certificado sin conexión, por lo que no es recomendable utilizarla a menos que la empresa permita solicitar firmas de certificado en línea para certificados de RA.

En la configuración inicial de FAS, después de implementar las plantillas de certificado y configurar la entidad de certificación, pero antes de autorizar el servicio (paso 3 en la secuencia de configuración):

Paso 1: Modifique la siguiente línea del archivo de configuración como se muestra a continuación:

Imagen localizada

Ahora, el archivo debería aparecer como se muestra a continuación:

Imagen localizada

Algunos TPM limitan la longitud de la clave. La longitud predeterminada de la clave es de 2048 bits. Especifique una longitud de clave que su hardware admita.

Paso 2: Autorice el servicio.

Paso 3: Emita manualmente la solicitud de certificado pendiente desde el servidor de la entidad de certificación. Una vez obtenido el certificado de RA, el paso 3 de la secuencia de configuración que aparece en la consola de administración pasará a ser verde. En este punto, la clave privada del certificado de RA se habrá generado en el TPM. De forma predeterminada, el certificado será válido durante 2 años.

Paso 4: Modifique el archivo de configuración de nuevo a lo siguiente:

Imagen localizada

Nota: Aunque FAS puede generar certificados de usuario con claves protegidas de TPM, el hardware de TPM puede ser demasiado lento para implementaciones de gran tamaño.

Paso 5: Reinicie el servicio de autenticación federada de Citrix. Ello obliga al servicio a volver a leer el archivo de configuración y procesar los valores cambiados. Las siguientes operaciones automáticas de clave privada afectarán a las claves de certificado de usuario; las operaciones se almacenarán las claves privadas en el TPM, sino que usarán el proveedor de almacenamiento de claves (KSP) de software de Microsoft.

Paso 6: Seleccione la ficha “User Roles” en la consola de administración FAS y modifique la configuración como se describe en el artículo principal del servicio de autenticación federada (FAS).

Nota: Desautorizar el Servicio de autenticación federada (FAS) a través de la consola de administración eliminará el rol de usuario.

Ejemplo 3

En este ejemplo, la clave privada del certificado de RA y las claves privadas de los certificados de usuario se almacenan en un módulo de seguridad de hardware (HSM). En este ejemplo, se presupone que el lector tiene configurado un módulo HSM. El módulo HSM tendrá un nombre de proveedor, por ejemplo, “HSM_Proveedor de almacenamiento de claves del distribuidor”.

Si quiere ejecutar el servidor FAS en entornos virtualizados, consulte al distribuidor de HSM si admite el hipervisor.

Paso 1. Durante la configuración inicial de FAS con la consola de administración, complete solo los primeros dos pasos, es decir, implemente las plantillas de certificado y configure la entidad de certificación.

Imagen localizada

Paso 2: Consulte la documentación del distribuidor de HSM para determinar el valor de ProviderName que debe tener el módulo HSM. Si el módulo HSM utiliza CAPI, es posible que, en la documentación, el proveedor se conozca como proveedor de servicios de cifrado (CSP). En cambio, si el módulo HSM utiliza CNG, es posible que el proveedor se conozca como proveedor de almacenamiento de claves (KSP).

Paso 3: Modifique el archivo de configuración como se indica a continuación:

Imagen localizada

Ahora, el archivo debería aparecer como se muestra a continuación:

Imagen localizada

En este caso, se presupone que el módulo HSM utiliza CNG, por lo que el valor de ProviderLegacyCsp se establece en false. Si el módulo HSM utiliza CAPI, el valor de ProviderLegacyCsp debe establecerse en true. Consulte la documentación del distribuidor de HSM para determinar si el módulo HSM utiliza CAPI o CNG. Asimismo, consulte la documentación del distribuidor de HSM para saber las longitudes de clave que admite en la generación de claves asimétricas de RSA. En este ejemplo, la longitud de la clave se ha establecido en el valor predeterminado de 2048 bits. Compruebe que el hardware admite la longitud de clave especificada.

Paso 4: Reinicie el servicio de autenticación federada de Citrix para que este lea los nuevos valores del archivo de configuración.

Paso 5: Genere el par de claves RSA en el HSM y cree la solicitud de firma de certificado haciendo clic en Authorize en la ficha de configuración inicial de la consola de administración FAS.

Paso 6: Para verificar que el par de claves se ha generado en el HSM, consulte las entradas de la aplicación en el registro de eventos de Windows:

Imagen localizada

Nota: [Provider: [CNG] HSM_Vendor’s Key Storage Provider]

Paso 7: En el servidor de la entidad de certificación, en el complemento MMC de esta, seleccione el nodo Solicitudes pendientes:

Imagen localizada

Haga clic con el botón secundario en la solicitud y seleccione Emitir.

Verá que el paso “Authorize this Service” pasa a ser verde y ahora aparece “Deauthorize this Service”. La entrada siguiente es “Authorized by: [nombre de la entidad de certificación]”.

Imagen localizada

Paso 8: Seleccione la ficha User Roles en la consola de administración FAS y modifique la configuración como se describe en el artículo principal del servicio de autenticación federada (FAS).

Nota: Desautorizar el Servicio de autenticación federada (FAS) a través de la consola de administración eliminará el rol de usuario.

Almacenamiento de certificados del servicio de autenticación federada (FAS)

El servicio de autenticación federada (FAS) no utiliza el almacén de certificados de Microsoft que haya en el servidor FAS para almacenar en él sus certificados. En su lugar, utiliza el Registro para ello.

Nota: Al usar un HSM para almacenar las claves privadas, los contenedores de HSM se identifican con un GUID. El GUID de la clave privada en el HSM coincide con el GUID del certificado equivalente en el Registro.

Para determinar el GUID del certificado de RA, introduzca los siguientes cmdlets de PowerShell en el servidor FAS:

Add-pssnapin Citrix.a*

Get-FasAuthorizationCertificate –address <FQDN del servidor FAS>

Por ejemplo:

Get-FasAuthorizationCertificate –address cg-fas-2.auth.net

Imagen localizada

Para obtener una lista de certificados de usuario, escriba:

Get-FasUserCertificate –address <FQDN del servidor FAS>

Por ejemplo:

Get-FasUserCertificate –address cg-fas-2.auth.net

Imagen localizada

Información relacionada