Fijación de certificados de Citrix Gateway con Android Citrix SSO

La fijación de certificados ayuda a prevenir los ataques de intermediarios. Citrix SSO admite la fijación de certificados solo para configuraciones de VPN administradas en modo Android Enterprise y en modo administrador de dispositivos heredados. No es compatible con los perfiles VPN agregados por el usuario final.

Configurar la fijación de certificados de Citrix Gateway con Android Citrix SSO

Para obtener más información sobre la fijación de certificados en la configuración administrada (anteriormente, restricciones de aplicación) para Citrix SSO, consulte Certificados y autenticación.

Se define un nuevo par clave-valor para llevar los hashes de certificados de Citrix Gateway anclados de la siguiente manera.

Key: ServerCertificatePins
Value: {
  "hash-alg": "sha256",
  "pinset": [
    "cert1_base64_encoded_SHA-256_hash_of_the_X509_SubjectPublicKeyInfo(SPKI)",
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
    "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB="
    ...
  ]
}
<!--NeedCopy-->

La clave para especificar los detalles de fijación de certificados en la configuración administrada es ServerCertificatePins. El valor es una carga útil JSON que lleva los hashes SHA-256 codificados en base64 del certificado de Citrix Gateway anclado y el algoritmo hash utilizado. El certificado anclado puede ser cualquiera de los certificados de la cadena de confianza validados por el sistema operativo. En este caso, es Android.

La fijación de certificados solo se realiza después de que el sistema operativo haya validado la cadena de certificados durante el protocolo de enlace TLS. El pin del certificado se calcula mediante el hash de la información de clave pública del sujeto del certificado (SPKI). Ambos campos (“hash-alg” y “pinset”) deben especificarse en la carga útil de JSON.

El “hash-alg” especifica el algoritmo hash utilizado para calcular el hash SPKI. El “pinset” especifica la matriz JSON que contiene el hash SHA-256 codificado en base64 de los datos SPKI del certificado de Citrix Gateway. Debe especificarse al menos un valor para el pin del certificado. Se pueden especificar más valores de pin para permitir la rotación o caducidad del certificado.

Puede calcular el valor del pin de un dominio (por ejemplo, gw.yourdomain.com) mediante el siguiente comando openssl.

openssl s_client -servername gw.yourdomain.com -connect gw.yourdomain.com:443 | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
<!--NeedCopy-->

El comando muestra el hash SHA-256 codificado en base64 del certificado hoja presentado por una puerta de enlace. Cualquier certificado de la cadena se puede utilizar para la fijación de certificados. Por ejemplo, si una empresa utiliza su propia entidad emisora de certificados intermedia para generar certificados para varias puertas de enlace, se puede utilizar el pin correspondiente al certificado de firma intermedio. Si ninguno de los pines coincide con los certificados de la cadena de certificados validada, el protocolo de enlace TLS se anula y la conexión a la puerta de enlace no continúa.

Nota:

En el modo de administrador de dispositivos, la fijación de certificados solo se admite con las soluciones Citrix Endpoint Management y Microsoft Endpoint Management. La fijación de certificados debe configurarse en los parámetros personalizados utilizados en el perfil VPN heredado (configuración no administrada) con el parámetro personalizado ServerCertificatePins con la misma carga útil JSON para la fijación.

Fijación de certificados de Citrix Gateway con Android Citrix SSO