Épinglage de certificat Citrix Gateway avec Android Citrix SSO

L’épinglage de certificats aide à prévenir les attaques de type « man-in-the-middle ». Citrix SSO prend en charge l’épinglage de certificat uniquement pour les configurations VPN gérées en mode Android Enterprise et en mode administrateur d’appareils hérités. Il n’est pas pris en charge pour les profils VPN ajoutés par l’utilisateur final.

Configurer l’épinglage des certificats Citrix Gateway avec Android Citrix SSO

Pour plus d’informations sur l’épinglage de certificat dans la configuration gérée (anciennement restrictions d’application) pour Citrix SSO, consultez Certificats et authentification.

Une nouvelle paire clé-valeur est définie pour transporter les hachages de certificat Citrix Gateway épinglés comme suit.

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

La clé permettant de spécifier les détails d’épinglage de certificat dans la configuration gérée est ServerCertificatePins. La valeur est une charge utile JSON contenant les hachages SHA-256 codés en base64 du certificat Citrix Gateway épinglé et de l’algorithme de hachage utilisé. Le certificat épinglé peut être n’importe lequel des certificats de la chaîne de confiance validés par le système d’exploitation. Dans ce cas, il s’agit d’Android.

L’épinglage du certificat est effectué uniquement après que le système d’exploitation a validé la chaîne de certificats lors de la prise de liaison TLS. Le code PIN du certificat est calculé en hachant les informations de clé publique d’objet du certificat (SPKI). Les deux champs (« hash-alg » et « pinset ») doivent être spécifiés dans la charge utile JSON.

Le « hash-alg » spécifie l’algorithme de hachage utilisé pour calculer le hachage SPKI. Le « pinset » spécifie la baie JSON contenant le hachage SHA-256 codé en base64 des données SPKI du certificat Citrix Gateway. Au moins une valeur doit être spécifiée pour le code PIN du certificat. D’autres valeurs de broche peuvent être spécifiées pour permettre la rotation ou l’expiration du certificat.

Vous pouvez calculer la valeur du code PIN d’un domaine (par exemple, gw.votredomain.com) à l’aide de la commande openssl suivante.

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

La commande affiche le hachage SHA-256 codé en base64 du certificat feuille présenté par une passerelle. N’importe quel certificat de la chaîne peut être utilisé pour l’épinglage de certificats. Par exemple, si une entreprise utilise sa propre autorité de certification intermédiaire pour générer des certificats pour plusieurs passerelles, le code PIN correspondant au certificat de signature intermédiaire peut être utilisé. Si aucune des broches ne correspond aux certificats de la chaîne de certificats validée, l’établissement de liaison TLS est interrompu et la connexion à la passerelle ne se poursuit pas.

Remarque :

En mode administrateur de périphérique, l’épinglage de certificat est pris en charge uniquement avec les solutions Citrix Endpoint Management et Microsoft Endpoint Management. L’épinglage de certificat doit être configuré dans les paramètres personnalisés utilisés dans le profil VPN hérité (configuration non gérée) avec le paramètre personnalisé ServerCertificatePins avec la même charge utile JSON pour l’épinglage.

Épinglage de certificat Citrix Gateway avec Android Citrix SSO