ADC

Outil de cryptage OTP

À partir de la version 13.0 de NetScaler build 41.20, les données secrètes OTP sont stockées dans un format crypté plutôt qu’en texte brut pour une sécurité renforcée. Le stockage d’un secret OTP au format crypté est automatique et ne nécessite aucune intervention manuelle.

Auparavant, l’appliance NetScaler stockait un secret OTP sous forme de texte brut dans Active Directory. Le stockage d’un secret OTP au format texte brut représentait une menace pour la sécurité, car un attaquant malveillant ou un administrateur peut exploiter les données en consultant le secret partagé 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 une ancienne version de NetScaler 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 chiffre 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 NetScaler, puis convertit les données OTP au format texte brut en 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 NetScaler pour utiliser l’outil de chiffrement OTP.
  • Pour les appareils enregistrés auprès de NetScaler avant la version 41.20, vous devez effectuer les opérations suivantes :
    • Upgrade the 13.0 NetScaler 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.
  • L’outil de chiffrement OTP ne prend en charge que les attributs utilisateur à valeur unique. Il ne prend pas en charge les attributs utilisateur à valeurs multiples.

Données secrètes OTP au format texte brut

Exemple :

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

Comme vous pouvez le constater, le motif de départ d’un ancien format est toujours « #@ » et le motif de fin est toujours « & ». Toutes les données entre « devicename= » et end pattern constituent les 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ù, value1 est une valeur codée en base64 des données de chiffrement KID + IV +

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 associée à chaque nom. La valeur est base64encode (KID) .base64encode (IV) .base64encode (cipherdata).
  • KID est la valeur d’identification de la clé utilisée pour identifier le certificat utilisé pour le chiffrement des données secrètes OTP. L’ID de clé est particulièrement utile lorsque plusieurs certificats sont utilisés pour le chiffrement des données secrètes OTP.
  • Dans les algorithmes AES standard, IV est toujours envoyé sous forme de 16 ou 32 premiers 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.

Remarque :

Le format crypté des données OTP est stocké dans un attribut utilisateur AD.

Configuration de l’outil de chiffrement OTP

Remarque

Pour exécuter l’outil de chiffrement OTP, Citrix vous recommande d’utiliser une autre plate-forme avec un environnement Python au lieu de l’appliance NetScaler.

L’outil de chiffrement OTP se trouve dans le répertoire \var\netscaler\otptool. Vous devez télécharger le code depuis la source NetScaler 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 -r 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 situé à \var\netscaler\otptool partir d’une invite de 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 utilisé dans NetScaler pour crypter les données. L’utilisateur doit fournir cet argument pour les trois opérations, à savoir les certificats de chiffrement, de déchiffrement et 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 à l’appliance NetScaler pour le chiffrement 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 ou les utilisateurs d’Active Directory.

Exemples :

  • -search_filter "(sAMAccountName=OTP*)": filtre les utilisateurs dont les SAMAccountNames (noms de connexion utilisateur) commencent par « OTP ».
  • -search_filter "(objectCategory=person)": filtre la catégorie d’objet de type personne.
  • -search_file "(objectclass=*)": filtre tous les objets.

Activation de l’option de chiffrement dans l’appliance NetScaler

Pour crypter le format de texte brut, vous devez activer l’option de cryptage dans l’appliance NetScaler.

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.

Enregistrez de nouveaux appareils avec l’appliance NetScaler version 13.0 build 41.20

Lorsque vous enregistrez votre nouvel appareil auprès de l’appliance NetScaler 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 des appareils enregistrés auprès de l’appliance NetScaler avant la version 13.0 41.20.

  • Utilisez l’outil de conversion pour migrer les données OTP du format texte brut au format crypté.
  • Activez le paramètre « Chiffrement » sur l’appliance NetScaler.
    • 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 nécessaire, enregistrez d’autres appareils (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 comporter 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 analyse tous les utilisateurs à la recherche d’un secret OTP au 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-->

Dépannage

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

  • app.log. Consigne toutes les principales étapes d’exécution et les informations sur les erreurs, les avertissements et les échecs.
  • 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.