Product Documentation

Protección de claves privadas para el servicio de autenticación federada

Feb 14, 2017

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.

localized image

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 las API de CAPI y 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 utilizar)

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/Key Storage Provider

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 (Solo se necesita 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 las claves privadas en bits)

Valor

Comentario

2048

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):

localized image

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.

Uso de 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.

localized image

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:

localized image

Paso 3: En el servidor de la entidad de certificación, agregue el complemento MMC de ésta. 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

Por ejemplo:

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

Aparecerá lo siguiente:

localized image

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.

localized image

Nota: “[TPM: True]” 

Seguido de:

localized image

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.

localized image

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:

localized image

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:

localized image

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

localized image

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: 

localized image

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:

localized image

Por ejemplo:

localized image

Aparecerá lo siguiente:

localized image

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

localized image

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:

localized image

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

localized image

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:

localized image

Nota: Aunque FAS puede generar certificados de usuario con las 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.

localized image

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:

localized image

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

localized image

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:

localized image

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:

localized image

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>]”.

localized image

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

localized image

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

localized image

Información relacionada