ADC

OTP-Verschlüsselungstool

Ab NetScaler Release 13.0 Build 41.20 werden die geheimen OTP-Daten für erhöhte Sicherheit in einem verschlüsselten Format anstelle von Klartext gespeichert. Das Speichern eines OTP-Geheimnisses in verschlüsseltem Format erfolgt automatisch und erfordert keinen manuellen Eingriff.

Zuvor speicherte die NetScaler-Appliance ein OTP-Geheimnis als Nur-Text im Active Directory. Das Speichern eines OTP-Geheimnisses in einem Nur-Text-Format stellte eine Sicherheitsbedrohung dar, da ein böswilliger Angreifer oder ein Administrator die Daten ausnutzen kann, indem er das gemeinsame Geheimnis anderer Benutzer anzeigt.

Das OTP-Verschlüsselungstool bietet folgende Vorteile:

  • Führt nicht zu Datenverlust, selbst wenn Sie alte Geräte haben, die ein altes Format (Nur-Text) verwenden.
  • Die Abwärtskompatibilitätsunterstützung mit einer alten NetScaler Gateway-Version hilft bei der Integration und Unterstützung der vorhandenen Geräte zusammen mit dem neuen Gerät.
  • Mit dem OTP-Verschlüsselungstool können Administratoren alle geheimen OTP-Daten aller Benutzer gleichzeitig migrieren.

Hinweis:

Das OTP-Verschlüsselungstool verschlüsselt oder entschlüsselt keine KBA-Registrierungs- oder E-Mail-Registrierungsdaten.

Verwendung des OTP-Verschlüsselungswerkzeugs

Das OTP-Verschlüsselungstool kann für Folgendes verwendet werden:

  • Verschlüsselung. Speichern Sie das OTP-Geheimnis in verschlüsseltem Format. Das Tool extrahiert die OTP-Daten der bei NetScaler registrierten Geräte und konvertiert dann die OTP-Daten im Nur-Text-Format in ein verschlüsseltes Format.
  • Entschlüsselung. Setzen Sie das OTP-Geheimnis auf das Nur-Text-Format zurück.
  • Zertifikate aktualisieren. Administratoren können das Zertifikat jederzeit auf ein neues Zertifikat aktualisieren. Administratoren können das Tool verwenden, um das neue Zertifikat einzugeben und alle Einträge mit den neuen Zertifikatsdaten zu aktualisieren. Der Zertifikatpfad muss entweder ein absoluter Pfad oder ein relativer Pfad sein.

Wichtig

  • Sie müssen den Verschlüsselungsparameter in der NetScaler-Appliance aktivieren, um das OTP-Verschlüsselungstool verwenden zu können.
  • Für Geräte, die vor Build 41.20 bei NetScaler registriert wurden, müssen Sie Folgendes ausführen:
    • 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.
  • Das OTP-Verschlüsselungstool unterstützt nur einwertige Benutzerattribute. Benutzerattribute mit mehreren Werten werden nicht unterstützt.

OTP-Geheimdaten im Nur-Text-Format

Beispiel:

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

Wie Sie sehen können, ist das Startmuster für ein altes Format immer “#@” und ein Endmuster ist immer “&”. Alle Daten zwischen “Gerätename =” und Endmuster stellen OTP-Daten des Benutzers dar.

Geheime OTP-Daten im verschlüsselten Format

Das neue verschlüsselte Format von OTP-Daten hat das folgende Format:

Beispiel:

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

Wobei value1 ein Base64-kodierter Wert von KID + IV +-Chiffredaten ist

Verschlüsselungsdaten sind wie folgt strukturiert:

    {
      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-->
  • In “devices” haben Sie einen Wert für jeden Namen. Der Wert ist base64encode(KID).base64encode(IV).base64encode(cipherdata).
  • KID ist der Schlüssel-ID-Wert, der verwendet wird, um das Zertifikat zu identifizieren, das für die geheime OTP-Datenverschlüsselung verwendet wird. Die Schlüssel-ID ist insbesondere nützlich, wenn mehrere Zertifikate für die geheime OTP-Datenverschlüsselung verwendet werden.
  • In Standard-AES-Algorithmen wird IV immer als die ersten 16 oder 32 Byte Verschlüsselungsdaten gesendet. Sie können demselben Modell folgen.
  • IV unterscheidet sich für jedes Gerät, obwohl der Schlüssel derselbe bleibt.

Hinweis:

Das verschlüsselte Format der OTP-Daten wird in einem Benutzerattribut AD gespeichert.

Einrichtung des OTP-Verschlüsselungstools

Hinweis

Um das OTP-Verschlüsselungstool auszuführen, empfiehlt Citrix, anstelle der NetScaler Appliance eine alternative Plattform mit Python-Umgebung zu verwenden.

Das OTP-Verschlüsselungstool befindet sich im Verzeichnis \var\netscaler\otptool. Sie müssen den Code von der NetScaler-Quelle herunterladen und das Tool mit den erforderlichen AD-Anmeldeinformationen ausführen.

  • Voraussetzungen für die Verwendung des OTP-Verschlüsselungstools:
    • Installieren Sie Python 3.5 oder höher in der Umgebung, in der dieses Tool ausgeführt wird.
    • Installieren Sie pip3 oder neuere Versionen.
  • Führen Sie die folgenden Befehle aus:
    • pip install -r requirements.txt. Installiert die Anforderungen automatisch.
    • python main.py. Ruft das OTP-Verschlüsselungstool auf. Sie müssen die erforderlichen Argumente angeben, die Ihren Anforderungen für die Migration von geheimen OTP-Daten entsprechen.
  • Das Tool kann von einer Shell-Eingabeaufforderung aus in \var\netscaler\otptool gefunden werden.
  • Führen Sie das Tool mit den erforderlichen AD-Anmeldeinformationen aus.

OTP-Verschlüsselungstool-Schnittstelle

Die folgende Abbildung zeigt ein Beispiel für eine OTP-Verschlüsselungs-Tool-Schnittstelle. Die Schnittstelle enthält alle Argumente, die für die Verschlüsselung/Entschlüsselung/Zertifikatsaktualisierung definiert werden müssen. Außerdem wird eine kurze Beschreibung jedes Arguments erfasst.

Argument OPERATION

Sie müssen das Argument OPERATION definieren, um das OTP-Verschlüsselungstool für Verschlüsselung, Entschlüsselung oder Zertifikatsaktualisierung zu verwenden.

In der folgenden Tabelle sind einige Szenarien zusammengefasst, in denen Sie das OTP-Verschlüsselungstool und die entsprechenden Argumentwerte OPERATION verwenden können.

Szenario Operations-Argumentwert und andere Argumente
Konvertieren Sie OTP-Schlüssel im Klartext in ein verschlüsseltes Format mit demselben Attribut Geben Sie den Argumentwert OPERATION als 0 ein und geben Sie denselben Wert für das Quell- und Zielattribut an. Beispiel: 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
Konvertieren Sie OTP-Schlüssel im Klartext-Format in ein verschlüsseltes Format mit einem anderen Attribut Geben Sie den Argumentwert OPERATION als 0 ein und geben Sie die entsprechenden Werte für das Quell- und Zielattribut an. Beispiel: 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
Konvertiere die verschlüsselten Einträge zurück in Klartext Geben Sie den Argumentwert OPERATION als 1 ein und geben Sie die entsprechenden Werte für das Quell- und Zielattribut an. Beispiel: 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
Aktualisieren Sie das Zertifikat auf ein neues Zertifikat Geben Sie den Argumentwert OPERATION als 2 ein und geben Sie das gesamte vorherige Zertifikat und die Details des neuen Zertifikats in den entsprechenden Argumenten an. Beispiel: 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

CERT_PATH Argument

Das Argument CERT_PATH ist eine Datei, die das Zertifikat enthält, das im NetScaler zum Verschlüsseln der Daten verwendet wird. Der Benutzer muss dieses Argument für alle drei Vorgänge angeben, nämlich Verschlüsselung, Entschlüsselungund Update-Zertifikate.

Die CERT_PATH-Argumentdatei muss sowohl das Zertifikat als auch den zugehörigen privaten Schlüssel im PEM- oder CERT-Format enthalten (PFX wird nicht unterstützt).

Wenn beispielsweise die Zertifikate.cert- und certificate.key- Dateien der Zertifikatsdatei und ihrem privaten Schlüssel entsprechen, erstellt der folgende Befehl in einem Unix-ähnlichen System die Datei certkey.merged, die als Wert für das Flag cert_path verwendet werden kann.

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

Zu beachtende Punkte zum Zertifikat

  • Der Benutzer muss dasselbe Zertifikat bereitstellen, das global in der NetScaler Appliance für die Verschlüsselung von Benutzerdaten gebunden ist.
  • Das Zertifikat muss das Base64-codierte öffentliche Zertifikat und den entsprechenden privaten RSA-Schlüssel in derselben Datei enthalten.
  • Das Format des Zertifikats muss entweder PEM oder CERT sein. Das Zertifikat muss dem X509-Format entsprechen.
  • Das kennwortgeschützte Zertifikatsformat und die PFX-Datei werden von diesem Tool nicht akzeptiert. Der Benutzer muss die PFX-Zertifikate in .cert konvertieren, bevor er die Zertifikate an das Tool bereitstellt.

SEARCH_FILTER Argument

Das Argument SEARCH_FILTER wird verwendet, um die Active Directory-Domänen oder -Benutzer zu filtern.

Beispiele:

  • -search_filter "(sAMAccountName=OTP*)": Filtert Benutzer, deren samAccountNames (Benutzeranmeldenamen) mit „OTP“ beginnen.
  • -search_filter "(objectCategory=person)": Filtert die Objektkategorie des Typs Person.
  • -search_file "(objectclass=*)": Filtert alle Objekte.

Aktivieren der Verschlüsselungsoption in der NetScaler-Appliance

Um das Nur-Text-Format zu verschlüsseln, müssen Sie die Verschlüsselungsoption in der NetScaler-Appliance aktivieren.

Um OTP-Verschlüsselungsdaten mithilfe der CLI zu aktivieren, geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

set aaa otpparameter -encryption ON

Anwendungsfälle des OTP-Verschlüsselungstools

Das OTP-Verschlüsselungstool kann für die folgenden Anwendungsfälle verwendet werden.

Registrieren neuer Geräte bei der NetScaler-Appliance Version 13.0 Build 41.20

Wenn Sie Ihr neues Gerät bei der NetScaler-Appliance Version 13.0 Build 41.x registrieren und wenn die Verschlüsselungsoption aktiviert ist, werden die OTP-Daten in einem verschlüsselten Format gespeichert. Sie können einen manuellen Eingriff vermeiden.

Wenn die Verschlüsselungsoption nicht aktiviert ist, werden die OTP-Daten im Nur-Text-Format gespeichert.

Migrieren Sie OTP-Daten für die Geräte, die vor 13.0 Build 41.20 registriert wurden

Sie müssen Folgendes ausführen, um die geheimen OTP-Daten für die Geräte zu verschlüsseln, die vor dem 13.0 Build 41.20 bei der NetScaler Appliance registriert sind.

  • Migrieren Sie mit dem Konvertierungstool OTP-Daten vom Nur-Text-Format in das verschlüsselte Format.
  • Aktivieren Sie den Parameter “Encryption” auf der NetScaler Appliance.
    • So aktivieren Sie die Verschlüsselungsoption mithilfe der CLI:
      • set aaa otpparameter -encryption ON
    • So aktivieren Sie Verschlüsselungsoptionen mit der GUI:
      • Navigieren Sie zu Sicherheit > AAA — Anwendungsverkehr und klicken Sie im Abschnitt **Authentifizierungseinstellungen auf Authentifizierung ändern AAA OTP-Parameter** .
      • Wählen Sie auf der Seite AAA-OTP-Parameter konfigurieren die Option Geheime OTP-Verschlüsselungaus, und klicken Sie auf OK.
    • Melden Sie sich mit den gültigen AD-Anmeldeinformationen an.
    • Wenn es erforderlich ist, registrieren Sie weitere Geräte (optional).

Migrieren Sie verschlüsselte Daten vom alten Zertifikat zum neuen Zertifikat

Wenn Administratoren das Zertifikat auf ein neues Zertifikat aktualisieren möchten, bietet das Tool die Möglichkeit, die neuen Zertifikatsdateneinträge zu aktualisieren.

So aktualisieren Sie das Zertifikat mithilfe der CLI auf ein neues Zertifikat

Geben Sie in der Befehlszeile Folgendes ein:

Beispiel:

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

Hinweis

  • Die Zertifikate müssen sowohl private als auch öffentliche Schlüssel haben.
  • Derzeit wird die Funktion nur für OTP bereitgestellt.

Erneutes Verschlüsseln oder Migrieren auf neues Zertifikat für Geräte, die nach dem Upgrade der Appliance auf 13.0 Build 41.20 mit Verschlüsselung registriert wurden

Der Administrator kann das Tool auf Geräten verwenden, die bereits mit einem Zertifikat verschlüsselt sind, und dieses Zertifikat mit einem neuen Zertifikat aktualisieren.

Verschlüsselte Daten zurück in das Nur-Text-Format umwandeln

Der Administrator kann das OTP-Geheimnis entschlüsseln und auf das ursprüngliche Nur-Text-Format zurücksetzen. Das OTP-Verschlüsselungstool durchsucht alle Benutzer nach einem OTP-Geheimnis im verschlüsselten Format und wandelt sie in ein entschlüsseltes Format um.

So aktualisieren Sie das Zertifikat mithilfe der CLI auf ein neues Zertifikat

Geben Sie in der Befehlszeile Folgendes ein:

Beispiel:

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

Problembehandlung

Das Tool generiert die folgenden Protokolldateien.

  • app.log. Protokolliert alle wichtigen Ausführungsschritte und Informationen zu Fehlern, Warnungen und Ausfällen.
  • unmodified_users.txt. Enthält eine Liste von Benutzer-DNs, die nicht vom reinen Text auf das verschlüsselte Format aktualisiert wurden. Diese Protokolle werden zu einem Fehler im Format generiert oder aus einem anderen Grund.