Authentification client ou Mutual TLS (MTLS)
Dans une transaction SSL classique, le client qui se connecte à un serveur via une connexion sécurisée vérifie la validité du serveur. Pour ce faire, il vérifie le certificat du serveur avant d’initier la transaction SSL. Toutefois, il peut arriver que vous souhaitiez configurer le serveur pour authentifier le client qui s’y connecte.
Lorsque l’authentification du client est activée sur un serveur virtuel SSL, l’appliance NetScaler demande le certificat client lors de l’établissement de connexion SSL. L’appliance vérifie que le certificat présenté par le client est soumis à des contraintes normales, telles que la signature de l’émetteur et la date d’expiration.
À partir de la version 13.1 build 42.x, l’appliance NetScaler prend en charge la validation des certificats croisés. En d’autres termes, si un certificat est signé par plusieurs émetteurs, la validation est réussie s’il existe au moins un chemin valide vers le certificat racine. Auparavant, si l’un des certificats de la chaîne de certificats était signé de manière croisée et comportait plusieurs chemins d’accès au certificat racine, l’appliance ADC ne recherchait qu’un seul chemin. Et si ce chemin n’était pas valide, la validation échouait.
Remarque Pour que
l’appliance puisse vérifier les signatures de l’émetteur, le certificat de l’autorité de certification qui a émis le certificat client doit être :
- Installé sur l’appareil.
- Lié au serveur virtuel avec lequel le client effectue des transactions.
Si le certificat est valide, l’appliance autorise le client à accéder à toutes les ressources sécurisées. Mais si le certificat n’est pas valide, l’appliance abandonne la demande du client lors de l’établissement de la liaison SSL.
L’appliance vérifie le certificat client en formant d’abord une chaîne de certificats, en commençant par le certificat client et en terminant par le certificat d’autorité de certification racine du client (par exemple, Verisign). Le certificat d’autorité de certification racine peut contenir un ou plusieurs certificats d’autorité de certification intermédiaires (si l’autorité de certification racine n’émet pas directement le certificat client).
Avant d’activer l’authentification client sur l’appliance NetScaler, assurez-vous qu’un certificat client valide est installé sur le client. Activez ensuite l’authentification du client pour le serveur virtuel qui gère les transactions. Enfin, liez le certificat de l’autorité de certification qui a émis le certificat client au serveur virtuel sur l’appliance.
Remarque : Une appliance NetScaler MPX prend en charge une taille de paire de clés de certificat comprise entre 512 bits et 4 096 bits. Le certificat doit être signé à l’aide de l’un des algorithmes de hachage suivants :
- MD5
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
Sur une appliance SDX, si une puce SSL est attribuée à une instance VPX, la prise en charge de la taille de la paire de clés de certificat d’une appliance MPX s’applique. Sinon, la prise en charge normale de la taille de paire de clés de certificat d’une instance VPX s’applique.
Une appliance virtuelle NetScaler (instance VPX) prend en charge les certificats d’au moins 512 bits, jusqu’aux tailles suivantes :
- Certificat de serveur 4096 bits sur le serveur virtuel
- Certificat client 4096 bits sur le service
- Certificat CA 4096 bits
- Certificat 4096 bits sur le serveur physique
Le tableau suivant présente les jeux de paramètres RSASSA-PSS pris en charge par NetScaler. Les algorithmes RSASSA-PSS sont pris en charge dans la validation du chemin du certificat X.509.
ID de clé publique | Fonction de génération de masque (MGF) | Fonction MGF Digest | Fonction Signature Digest | Longueur de salt |
---|---|---|---|---|
rsaEncryption | MGF1 | SHA-256 | SHA-256 | 32 octets |
rsaEncryption | MGF1 | SHA-384 | SHA-384 | 48 octets |
rsaEncryption | MGF1 | SHA-512 | SHA-512 | 64 octets |
Remarques :
- Pour connaître les limitations MPX FIPS, consultez Limitations MPX FIPS.
- Pour connaître les limitations SDX FIPS, reportez-vous à la section Limitations FIPS SDX.
Fournir le certificat client
Avant de configurer l’authentification du client, un certificat client valide doit être installé sur le client. Un certificat client inclut des détails sur le système client spécifique qui crée des sessions sécurisées avec l’appliance NetScaler. Chaque certificat client est unique et ne doit être utilisé que par un seul système client.
Que vous obteniez le certificat client auprès d’une autorité de certification, que vous utilisiez un certificat client existant ou que vous créiez un certificat client sur l’appliance NetScaler, vous devez convertir le certificat au format approprié. Sur l’appliance NetScaler, les certificats sont stockés au format PEM ou DER et doivent être convertis au format PKCS #12 avant d’être installés sur le système client. Après avoir converti le certificat et l’avoir transféré vers le système client, assurez-vous qu’il est installé sur ce système et configuré pour l’application cliente. L’application, telle qu’un navigateur Web, doit faire partie des transactions SSL.
Pour obtenir des instructions sur la façon de convertir un certificat du format PEM ou DER au format PKCS #12, voir Importer et convertir des fichiers SSL.
Pour obtenir des instructions sur la façon de générer un certificat client, reportez-vous à la section Créer un certificat.
Activer l’authentification basée sur le certificat client
Par défaut, l’authentification du client est désactivée sur l’appliance NetScaler et toutes les transactions SSL se déroulent sans authentifier le client. Vous pouvez configurer l’authentification du client pour qu’elle soit facultative ou obligatoire dans le cadre de l’établissement de liaison SSL.
Si l’authentification du client est facultative, l’appliance demande le certificat client mais procède à la transaction SSL même si le client présente un certificat non valide. Si l’authentification du client est obligatoire, l’appliance met fin à l’établissement de liaison SSL si le client SSL ne fournit pas de certificat valide.
Attention : Citrix vous recommande de définir des stratégies de contrôle d’accès appropriées avant de modifier la vérification d’authentification basée sur le certificat client sur facultative.
Remarque : L’authentification du client est configurée pour des serveurs virtuels SSL individuels, et non globalement.
Activer l’authentification basée sur le certificat client à l’aide de la CLI
À l’invite de commandes, tapez les commandes suivantes pour activer l’authentification basée sur le certificat client et vérifier la configuration :
set ssl vserver <vServerName> [-clientAuth (ENABLED | DISABLED)] [-clientCert (MANDATORY | OPTIONAL)]
show ssl vserver <vServerName>
<!--NeedCopy-->
Exemple :
set ssl vserver vssl -clientAuth ENABLED -clientCert Mandatory
Done
show ssl vserver vssl
Advanced SSL configuration for VServer vssl:
DH: DISABLED
Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
ClearText Port: 0
Client Auth: ENABLED Client Cert Required: Mandatory
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
OCSP Stapling: DISABLED
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
SSLv2: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.2: ENABLED TLSv1.2: ENABLED
1) CertKey Name: sslckey Server Certificate
1) Policy Name: client_cert_policy Priority: 0
1) Cipher Name: DEFAULT
Description: Predefined Cipher Alias
Done
<!--NeedCopy-->
Activer l’authentification basée sur le certificat client à l’aide de l’interface graphique
- Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuelset ouvrez un serveur virtuel.
- Dans la section Paramètres SSL, sélectionnez Authentification clientet, dans la liste des certificats clients, sélectionnez Obligatoire.
Remarque :
Si l’authentification du client est définie sur obligatoire et si le certificat client contient des extensions de stratégie, la validation du certificat échoue. Définissez un paramètre dans le profil SSL frontal pour ignorer cette vérification. Le paramètre est désactivé par défaut. En d’autres termes, la vérification est effectuée par défaut.
Ignorer la vérification de l’extension de stratégie lors de l’authentification du client à l’aide
À l’invite de commandes, tapez :
set ssl profile ns_default_ssl_profile_frontend -clientauth ENABLED -skipClientCertPolicyCheck ENABLED
Parameter
skipClientCertPolicyCheck
Control policy extension check, if present inside the X509 certificate chain. Applicable only if client authentication is enabled and client certificate is set to mandatory. Possible values functions as follows:
- ENABLED: Skip the policy check during client authentication.
- DISABLED: Perform policy check during client authentication.
Possible values: ENABLED, DISABLED
Default: DISABLED
<!--NeedCopy-->
Ignorer la vérification de l’extension de stratégie lors de l’authentification du client à l’aide
- Accédez à Système > Profils > Profils SSL.
- Créez un nouveau profil frontal ou modifiez un profil frontal existant.
- Vérifiez que l’authentification du client est activée et que le certificat client est défini sur obligatoire.
- Sélectionnez Ignorer la vérification de stratégie de certificat client
Lier les certificats d’autorité de certification au serveur virtuel
Une autorité de certification dont le certificat est présent sur l’appliance NetScaler doit émettre le certificat client utilisé pour l’authentification du client. Liez ce certificat au serveur virtuel NetScaler qui effectue l’authentification du client.
Liez le certificat d’autorité de certification au serveur virtuel SSL de telle sorte que l’appliance puisse former une chaîne de certificats complète lorsqu’elle vérifie le certificat client. Sinon, la formation de la chaîne de certificats échoue et le client se voit refuser l’accès même si son certificat est valide.
Vous pouvez lier des certificats d’autorité de certification au serveur virtuel SSL dans n’importe quel ordre. L’appliance passe la commande appropriée lors de la vérification du certificat client.
Par exemple, si le client présente un certificat émis par CA_A, où CA_Aest uneautorité de certification intermédiaire dont le certificat est émis parCA_B, dont le certificat est à son tour émis par une autorité de certification racine approuvée, Root_CA, une chaîne de certificats contenant ces trois certificats doit être liée au serveur virtuel sur l’appliance NetScaler.
Pour obtenir des instructions sur la liaison d’un ou de plusieurs certificats au serveur virtuel, voir Lier la paire de clés de certificat au serveur virtuel SSL.
Pour obtenir des instructions sur la création d’une chaîne de certificats, voir Créer une chaîne de certificats.
Contrôle plus strict de la validation des certificats clients
L’appliance NetScaler accepte les certificats CA intermédiaires valides s’ils sont émis par une seule autorité de certification racine. En d’autres termes, si seul le certificat d’autorité de certification racine est lié au serveur virtuel et que l’autorité de certification racine valide tout certificat intermédiaire envoyé avec le certificat client, l’appliance fait confiance à la chaîne de certificats et l’établissement de liaison réussit.
Toutefois, si un client envoie une chaîne de certificats dans la négociation, aucun des certificats intermédiaires ne peut être validé à l’aide d’un répondeur CRL ou OCSP, sauf si ce certificat est lié au serveur virtuel SSL. Par conséquent, même si l’un des certificats intermédiaires est révoqué, la prise de contact est réussie. Dans le cadre de l’établissement de la liaison, le serveur virtuel SSL envoie la liste des certificats d’autorité de certification qui lui sont liés. Pour un contrôle plus strict, vous pouvez configurer le serveur virtuel SSL pour qu’il accepte uniquement un certificat signé par l’un des certificats d’autorité de certification liés à ce serveur virtuel. Pour ce faire, vous devez activer le paramètre ClientAuthUseBoundCachain dans le profil SSL lié au serveur virtuel. La connexion échoue si l’un des certificats d’autorité de certification liés au serveur virtuel n’a pas signé le certificat client.
Par exemple, disons que deux certificats clients, clientcert1 et clientcert2, sont signés par les certificats intermédiaires int-CA-A et int-CA-B, respectivement. Les certificats intermédiaires sont signés par le certificat racine Root-CA. Int-CA-A et Root-CA sont liés au serveur virtuel SSL. Dans le cas par défaut (ClientAuthUseBoundCachain désactivé), clientcert1 et clientcert2 sont acceptés. Toutefois, si ClientAuthUseBoundCachain est activé, l’appliance NetScaler n’accepte que clientcert1.
Contrôle plus strict de la validation des certificats clients à l’aide de l’interface de ligne de commande
À l’invite de commandes, tapez :
set ssl profile <name> -ClientAuthUseBoundCAChain Enabled
<!--NeedCopy-->
Permettre un contrôle plus strict sur la validation des certificats clients à l’aide de l’interface graphique
- Accédez à Système > Profils, sélectionnez l’onglet Profils SSL et créez un profil SSL ou sélectionnez un profil existant.
- Sélectionnez Activer l’authentification client à l’aide de la chaîne de certification liée.