Citrix ADC

Outil de cryptage OTP

À partir de la version 13.0 build 41.20 de Citrix ADC, les données secrètes OTP sont stockées dans un format crypté au lieu de texte brut pour une sécurité renforcée. Le stockage du secret OTP dans un format crypté est automatique et ne nécessite aucune intervention manuelle.

Auparavant, l’appliance Citrix ADC stockait le secret OTP en tant que texte brut dans Active Directory. Le stockage du secret OTP dans un format texte brut posait une menace pour la sécurité, car un attaquant malveillant ou un administrateur pouvait exploiter les données en visualisant le secret partagé par d’autres utilisateurs.

L’outil de chiffrement OTP offre les avantages suivants :

  • N’entraîne aucune perte de données, même si vous possédez d’anciens appareils utilisant un ancien format (texte brut).
  • La prise en charge de la rétrocompatibilité avec les anciennes versions de Citrix Gateway permet d’intégrer et de prendre en charge les appareils existants, ainsi que le nouvel appareil.
  • L’outil de chiffrement OTP aide les administrateurs à migrer toutes les données secrètes OTP de tous les utilisateurs à la fois.

Remarque :

l’outil de chiffrement OTP ne crypte ni ne déchiffre les données d’enregistrement KBA ou d’enregistrement des e-mails.

Utilisation de l’outil de chiffrement OTP

L’outil de chiffrement OTP peut être utilisé pour les opérations suivantes :

  • Chiffrement. Stockez le secret OTP dans un format crypté. L’outil extrait les données OTP des appareils enregistrés auprès de Citrix ADC, puis convertit les données OTP au format texte brut au format crypté.
  • Décryptage. Rétablissez le code secret OTP au format texte brut.
  • Mettre à jour les certificats. Les administrateurs peuvent mettre à jour le certificat vers un nouveau certificat à tout moment. Les administrateurs peuvent utiliser l’outil pour entrer le nouveau certificat et mettre à jour toutes les entrées avec les nouvelles données de certificat. Le chemin d’accès au certificat doit être soit un chemin absolu, soit un chemin relatif.

Important

  • Vous devez activer le paramètre de chiffrement dans l’appliance Citrix ADC pour utiliser l’outil de chiffrement OTP.
  • Pour les périphériques enregistrés auprès de Citrix ADC avant la version 41.20, vous devez effectuer les opérations suivantes :
    • Upgrade the 13.0 Citrix ADC appliance to 13.0 build 41.20.
    • Enable the encryption parameter on the appliance.
    • Use the OTP Secret migration tool to migrate OTP secret data from plain text format to encrypted format.

Données secrètes OTP au format texte brut

Exemple :

#@devicename=<16 or more bytes>&tag=<64bytes>&,

Comme vous pouvez le voir, le modèle de départ d’un ancien format est toujours « #@ » et le modèle de fin est toujours « & ». Toutes les données entre "devicename=" et le modèle final constituent des données OTP de l’utilisateur.

Données secrètes OTP au format crypté

Le nouveau format crypté des données OTP est au format suivant :

Exemple :

    {
         "otpdata”: {
         “devices”: {
                        “device1”: “value1”,
                        “device2”: “value2”, …
                    }
            }
    }
<!--NeedCopy-->

Où, valeur1 est la valeur codée en base64 des données kid+IV+chiffrer

Les données chiffrées sont structurées comme suit :

    {
      secret:<16-byte secret>,
      tag : <64-byte tag value>
      alg: <algorithm used> (not mandatory, default is sha1, specify the algorithm only if it is not default)
    }
<!--NeedCopy-->
  • Dans « appareils », vous avez une valeur pour chaque nom. La valeur est base64encode (kid) .base64encode (IV) .base64encode (données chiffrées).
  • Dans les algorithmes AES standard, IV est toujours envoyé sous la forme des 16 premiers octets ou 32 octets de données chiffrées. Vous pouvez suivre le même modèle.
  • IV diffère pour chaque appareil bien que la clé reste la même.

Configuration de l’outil de chiffrement OTP

L’outil de chiffrement OTP se trouve dans le répertoire \var\netscaler\otptool. Vous devez télécharger le code à partir de la source Citrix ADC et exécuter l’outil avec les informations d’identification AD requises.

  • Conditions préalables à l’utilisation de l’outil de chiffrement OTP :
    • Installez la version Python 3.5 ou supérieure dans l’environnement dans lequel cet outil est exécuté.
    • Installez pip3 ou une version ultérieure.
  • Exécutez les commandes suivantes :
    • pip install requirements.txt. Installe automatiquement les exigences
    • fichier main.py de python. Appelle l’outil de chiffrement OTP. Vous devez fournir les arguments requis en fonction de votre besoin de migration des données secrètes OTP.
  • L’outil peut être localisé sur \var\netscaler\otptool depuis l’invite du shell.
  • Exécutez l’outil avec les informations d’identification AD requises.

Interface de l’outil de chiffrement OTP

La figure suivante présente un exemple d’interface d’outil de chiffrement OTP. L’interface contient tous les arguments qui doivent être définis pour le chiffrement/le déchiffrement/la mise à niveau du certificat. En outre, une brève description de chaque argument est capturée.

Argument OPÉRATION

Vous devez définir l’argument OPERATION pour utiliser l’outil de chiffrement OTP pour le chiffrement, le déchiffrement ou la mise à niveau du certificat.

Le tableau suivant récapitule certains des scénarios dans lesquels vous pouvez utiliser l’outil de chiffrement OTP et les valeurs d’argument OPERATION correspondantes.

Scénario Valeur de l’argument d’opération et autres arguments
Convertir le code secret OTP en texte brut au format crypté dans le même attribut Entrez la valeur de l’argument OPERATION sur 0 et fournissez la même valeur pour l’attribut source et cible. Exemple : python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute unixhomedirectory -operation 0 -cert_path aaatm_wild_all.cert
Convertir le code secret OTP en texte brut au format crypté dans un attribut différent Entrez la valeur de l’argument OPERATION sous la forme 0 et indiquez les valeurs correspondantes pour les attributs source et cible. Exemple : python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 0 -cert_path aaatm_wild_all.cert
Convertissez les entrées cryptées en texte brut Entrez la valeur de l’argument OPERATION sur 1 et indiquez les valeurs correspondantes pour les attributs source et cible. Exemple : python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 1 -cert_path aaatm_wild_all.cert
Mettre à jour le certificat vers un nouveau certificat Entrez la valeur de l’argument OPERATION sur 2 et fournissez tous les détails du certificat précédent et du nouveau certificat dans les arguments correspondants. Exemple : python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -operation 2 -cert_path aaatm_wild_all.cert –new_cert_path aaatm_wild_all_new.cert

Argument CERT_PATH

L’argument CERT_PATH est un fichier contenant le certificat qui est utilisé dans Citrix ADC pour chiffrer les données. L’utilisateur doit fournir cet argument pour les trois opérations, à savoir les certificats de **chiffrement, de déchiffrementet de mise à jour**.

Le fichier d’arguments CERT_PATH doit contenir à la fois le certificat et la clé privée associée au format PEM ou CERT (pfx n’est pas pris en charge).

Par exemple, si les fichiers certificate.cert et certificate.key correspondent au fichier de certificat et à sa clé privée, dans un système similaire à Unix, la commande suivante crée le fichier certkey.merged qui peut être utilisé comme valeur pour l’indicateur cert_path.

$ cat certificate.cert certificate.key > certkey.merged
$
<!--NeedCopy-->

Points à noter sur le certificat

  • L’utilisateur doit fournir le même certificat qui est lié globalement dans l’appliance Citrix ADC pour le cryptage des données utilisateur.
  • Le certificat doit contenir le certificat public codé Base64 et sa clé privée RSA correspondante dans le même fichier.
  • Le format du certificat doit être PEM ou CERT. Le certificat doit respecter le format X509.
  • Le format de certificat protégé par mot de passe et le fichier .pfx ne sont pas acceptés par cet outil. L’utilisateur doit convertir les certificats PFX en .cert avant de fournir les certificats à l’outil.

Argument SEARCH_FILTER

L’argument SEARCH_FILTER est utilisé pour filtrer les domaines AD ou les utilisateurs. Le format de ce filtre de recherche est le même que celui du filtre de recherche LDAP utilisé dans la commande d’action LDAP dans l’appliance Citrix ADC.

Activation de l’option de chiffrement dans l’appliance Citrix ADC

Pour chiffrer le format texte brut, vous devez activer l’option de cryptage dans l’appliance Citrix ADC.

Pour activer les données de chiffrement OTP à l’aide de l’interface de ligne de commande, à l’invite de commandes, tapez :

set aaa otpparameter [-encryption ( ON | OFF )]

Exemple :

set aaa otpparameter -encryption ON

Cas d’utilisation de l’outil de chiffrement OTP

L’outil de chiffrement OTP peut être utilisé pour les cas d’utilisation suivants.

Enregistrer de nouveaux appareils avec l’appliance Citrix ADC version 13.0 build 41.20

Lorsque vous enregistrez votre nouvel appareil auprès de l’appliance Citrix ADC version 13.0 build 41.x, et si l’option de cryptage est activée, les données OTP sont enregistrées dans un format crypté. Vous pouvez éviter toute intervention manuelle.

Si l’option de cryptage n’est pas activée, les données OTP sont stockées au format texte brut.

Migrer les données OTP pour les appareils enregistrés avant la version 13.0 build 41.20

Vous devez effectuer les opérations suivantes pour chiffrer les données secrètes OTP pour les appareils enregistrés auprès de l’appliance Citrix ADC antérieure à la version 13.0 build 41.20.

  • Utilisez l’outil de conversion pour migrer les données OTP du format texte brut au format crypté.
  • Activez le paramètre « Encryption » sur l’appliance Citrix ADC.
    • Pour activer l’option de cryptage à l’aide de la CLI :
      • set aaa otpparameter -encryption ON
    • Pour activer les options de chiffrement à l’aide de l’interface graphique :
      • Accédez à Sécurité > AAA — Trafic de l’application et cliquez sur Modifier le paramètre OTP AAAd’authentification sous la section Paramètres d’authentification .
      • Sur la page Configurer le paramètre OTP AAA, sélectionnez Chiffrement secret OTP, puis cliquez sur OK.
    • Connectez-vous avec les informations d’identification AD valides.
    • Si cela est nécessaire, enregistrez des appareils supplémentaires (facultatif).

Migrer les données cryptées d’un ancien certificat vers un nouveau certificat

Si les administrateurs souhaitent mettre à jour le certificat vers un nouveau certificat, l’outil fournit une option pour mettre à jour les nouvelles entrées de données de certificat.

Pour mettre à jour le certificat en un nouveau à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

Exemple :

python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 2 -cert_path aaatm_wild_all.cert –new_cert_path aaatm_wild_all_new.cert

Remarque

  • Les certificats doivent contenir des clés privées et publiques.
  • Actuellement, la fonctionnalité n’est fournie que pour OTP.

Rechiffrer ou migrer vers un nouveau certificat pour les appareils enregistrés après la mise à niveau de l’appliance vers la version 13.0 build 41.20 avec chiffrement

L’administrateur peut utiliser l’outil sur les appareils déjà chiffrés avec un certificat et peut mettre à jour ce certificat avec un nouveau certificat.

Reconvertir les données cryptées au format texte brut

L’administrateur peut déchiffrer le secret OTP et le rétablir au format texte brut d’origine. L’outil de cryptage OTP scanne tous les utilisateurs à la recherche du secret OTP dans un format crypté et les convertit au format déchiffré.

Pour mettre à jour le certificat en un nouveau à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

Exemple :

python3 main.py -Host 192.0.2.1 –Port 636 -username  ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 1
<!--NeedCopy-->

Résolution des problèmes

L’outil génère les fichiers journaux suivants.

  • Fichier app.log. Consigne toutes les principales étapes d’exécution et les informations sur les erreurs, les avertissements et les échecs.
  • Fichier unmodified_users.txt. Contient une liste de noms distinctifs utilisateur qui n’ont pas été mis à niveau du texte brut au format crypté. Ces journaux sont générés à une erreur de format ou peuvent être dus à une autre raison.