OTP-Verschlüsselungstool
-
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.
Verwendung des OTP-Verschlüsselungswerkzeugs
-
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.
-
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
#@devicename=<16 or more bytes>&tag=<64bytes>&,
Geheime OTP-Daten im verschlüsselten Format
{
"otpdata”: {
“devices”: {
“device1”: “value1”,
“device2”: “value2”, …
}
}
}
{
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)
}
-
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.
Einrichtung des OTP-Verschlüsselungstools
\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\otptoolgefunden werden. -
Führen Sie das Tool mit den erforderlichen AD-Anmeldeinformationen aus.
OTP-Verschlüsselungstool-Schnittstelle
Argument OPERATION
| 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
certkey.merged, die als Wert für das Flag cert_path verwendet werden kann.
$ cat certificate.cert certificate.key > certkey.merged
$
-
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
-
-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
set aaa otpparameter [-encryption ( ON | OFF )]
set aaa otpparameter -encryption ON
Anwendungsfälle des OTP-Verschlüsselungstools
Registrieren neuer Geräte bei der NetScaler-Appliance Version 13.0 Build 41.20
Migrieren Sie OTP-Daten für die Geräte, die vor 13.0 Build 41.20 registriert wurden
-
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
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
-
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
Verschlüsselte Daten zurück in das Nur-Text-Format umwandeln
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
Problembehandlung
-
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.