ThingWorx Modelldefinition in Composer > Sicherheit > Sicherheitsmanagement-Tool
Sicherheitsmanagement-Tool
Das Sicherheitsmanagement-Tool bietet eine Methode zum Verwalten sicherer Informationen, die von der ThingWorx Software verwendet werden. Das Tool kann jeden Schlüsselwert aus den Konfigurationsdateien für diese Produkte verschlüsseln, wie z.B. Datenbank- und Lizenzierungspasswörter. Sie können dieses Tool mit jeder ThingWorx Anwendung verwenden. Es wird unter anderem von Produkten wie ThingWorx Platform, Connection Server, ThingWorx Azure IoT Hub Connector 3.0.0, ThingWorx Edge MicroServer (EMS) und Integration Runtime unterstützt.
Das Sicherheitsmanagement-Tool arbeitet mit PFX-Keystore-Dateien und verwendet die AES-Verschlüsselung für Verschlüsselungswörter. Die Verwendung der AES-Verschlüsselung setzt eine höhere Java-Version als Version 8U141 voraus.
Wenn Sie bereits einen JKS-Keystore hatten, sollten Sie den Keystore auf das Keystore-Format PFX aktualisieren. Dies geschieht, sobald Sie die Befehlszeilenschnittstelle für einen JKS-Keystore ausführen. Nach der Erstellung kann die JKS-Version des Keystore entfernt werden. Wir empfehlen jedoch, diese Version zu sichern, für den Fall, dass Probleme auftreten.
Die Datei des Typs conf für den Keystore funktioniert weiterhin in unveränderter Form, sollte jedoch aktualisiert werden. Der Keystore-Name sollte in den reinen Dateinamen ohne Dateierweiterung geändert werden, um den zusätzlichen Verarbeitungsaufwand zu reduzieren.
Speicherort
Dieses Tool steht auf der Seite PTC Software-Downloads bei den ThingWorx Software-Downloads zur Verfügung.
Unterstützte Versionen
Dieses Tool kann mit ThingWorx 8.4.0 und höher verwendet werden.
Berechtigungen
Dieses Tool ist nur für die Verwendung durch Administratoren vorgesehen. Installieren Sie es nach Bedarf, und entfernen Sie es nach der Verwendung.
Konfiguration
* 
Die default-encryption-key-length muss der Anwendungskonfiguration entsprechen. In ThingWorx ist das der Parameter InternalAesCryptographicKeyLength, der sich in platform-settings.json befindet. Der Standardwert lautet 128, Sie können jedoch auch die 256-Bit-Verschlüsselung verwenden, wenn Sie Java 1.8.0_162 oder höher verwenden. Gegebenenfalls können Sie auch ältere Java-Versionen verwenden, indem Sie die Java-Richtlinie im Hinblick auf die maximale Schlüsselgröße aktualisieren.
Linux-Einstellungen:
{
security {
secret-provider = "com.thingworx.security.provider.keystore.KeyStoreProvider"
default-encryption-key-length = 128
keystore {
password-file-path = "/<path to ThingworxPlatform folder>/ThingworxPlatform"
password-file-name = "keystore-password"
path = "/<path to ThingworxStorage folder>/ThingworxStorage"
name = "keystore"
}
}
}
Windows-Einstellungen:
{
security {
secret-provider = "com.thingworx.security.provider.keystore.KeyStoreProvider"
default-encryption-key-length = 128
keystore {
password-file-path = "C:\\<path to ThingworxPlatform folder>\\ThingworxPlatform"
password-file-name = "keystore-password"
path = "C:\\<path to ThingworxStorage folder>\\ThingworxStorage"
name = "keystore"
}
}
}
Befehlszeilenschnittstellen-Tool verwenden
Mit dem Befehlszeilenschnittstellen-Tool können Sie bestimmte Operationen außerhalb der Anwendung ausführen, um von einer Anwendung benötigte Verschlüsselungsworte im Voraus festzulegen. Das Anwendungsskript (security-common-cli) wird in der Verteilung für Linux und Windows bereitgestellt. Es gibt mehrere Möglichkeiten für die Ausführung des Befehlszeilenschnittstellen-Tools:
Ohne Konfigurationsdatei: Das Tool startet ohne konfigurierten Sicherheitsmanager, und Sie können eine begrenzte Anzahl von Befehlen ausführen. Sie müssen den Befehl init ausführen, um den Sicherheitsmanager zu konfigurieren:
# run without providing a config, will have to run init, prompt for input
./security-common-cli
Mit einer Konfigurationsdatei als erstem Skriptparameter: Das Tool wird gestartet und initialisiert den Sicherheitsmanager mit der angegebenen Konfiguration.
# initialize security manager with specified config, prompt for input
./security-common-cli <path to keystore>\keystore.conf
Mit einer Konfigurationsdatei und mehreren anderen Parametern: Das Tool wird im Modus für die einzelne Verwendung ausgeführt. Es führt die bereitgestellte Aktion aus und wird dann sofort beendet. Dies ist eine Möglichkeit, von einem einfachen Installationsprogramm aus aufzurufen. Wenn Parameter, die ein Leerzeichen enthalten, in der Befehlszeile übergeben werden, müssen Sie diese in einzelnen Anführungszeichen einschließen, damit sie als ein Argument verarbeitet werden. Bei Ausführung im Befehlszeilenmodus wird es nur im Gebietsschema der USA ausgeführt, um sicherzustellen, dass die Aktionsnamen vorhersehbar sind.
# run one command and tool exits
./security-common-cli <config file path> <action> <parameters>
./security-common-cli keystore.conf set 'mykeyname' 'some value for my key'
* 
Sie können den vollständigen Pfad zu der Konfigurationsdatei oder nur den Namen der Konfigurationsdatei verwenden, wenn sich die Konfigurationsdatei unter dem Klassenpfad befindet.
Allgemeine Befehle
Befehl
Beschreibung
help oder ?
Zeigt Informationen zur Verwendung an.
exit
Beendet das Tool.
config
Zeigt die aktuelle Konfiguration an.
init <config-file>
Lädt die Konfiguration.
createTokenFile<Pfad><Token>
Erstellt eine Token-Datei.
* 
Diese Option ist in Version 1.3.1 und höher des Sicherheitsmanagement-Tools verfügbar.
Befehle zur Verwaltung von Verschlüsselungswörtern
Befehl
Beschreibung
keys
Liste der Schlüssel im Anbieter von Verschlüsselungswörtern.
get <Name>
Ruft einen Wert aus dem Anbieter von Verschlüsselungswörtern ab.
set <Name> <Wert>
Legt einen Wert im Anbieter von Verschlüsselungswörtern fest.
remove <Name>
Entfernt einen Wert aus dem Anbieter von Verschlüsselungswörtern.
Verschlüsselungs- und Schlüsselspeicher-Befehle
Befehl
Beschreibung
generate-key <Name des Verschlüsselungsworts>
Generiert einen neuen Verschlüsselungsschlüssel, und speichert ihn in einem Verschlüsselungswort.
encrypt <Name des Verschlüsselungsschlüssels> <Name des Verschlüsselungsworts> <Zeichenfolge>
Verschlüsselt eine Zeichenfolge mit dem optionalen Schlüssel, und speichert sie in einem Verschlüsselungswort.
* 
<Name des Verschlüsselungsschlüssels> ist optional. Wenn kein <Name des Verschlüsselungsschlüssels> angegeben wird, wird der interne Standardschlüssel verwendet. Für Dateien gilt eine Größenbeschränkung von 10 MB.
decrypt<Name des Verschlüsselungsschlüssels> <Name des Verschlüsselungsworts>
Entschlüsselt eine Zeichenfolge, die in einem Verschlüsselungswort gespeichert ist, anhand des optionalen Schlüssels.
* 
<Name des Verschlüsselungsschlüssels> ist optional. Wenn kein <Name des Verschlüsselungsschlüssels> angegeben wird, wird der interne Standardschlüssel verwendet. Für Dateien gilt eine Größenbeschränkung von 10 MB.
encryptFile <Name des Verschlüsselungsschlüssels> <Quelle> <Ziel>
Verschlüsselt die Quelldatei und schreibt sie in die Zieldatei, wobei der optionale Schlüssel als Verschlüsselungswort gespeichert wird.
* 
<Name des Verschlüsselungsschlüssels> ist optional. Wenn kein <Name des Verschlüsselungsschlüssels> angegeben wird, wird der interne Standardschlüssel verwendet. Für Dateien gilt eine Größenbeschränkung von 10 MB.
decryptFile <Name des Verschlüsselungsschlüssels> <Quelle> <Ziel>
Entschlüsselt die Quelldatei und schreibt sie in die Zieldatei, wobei der optionale Schlüssel als Verschlüsselungswort gespeichert wird.
* 
<Name des Verschlüsselungsschlüssels> ist optional. Wenn kein <Name des Verschlüsselungsschlüssels> angegeben wird, wird der interne Standardschlüssel verwendet. Für Dateien gilt eine Größenbeschränkung von 10 MB.
viewFile <Name des Verschlüsselungsschlüssels> <Quelle>
Entschlüsselt die Quelldatei und Ansichtsinhalte, wobei der optionale Schlüssel als Verschlüsselungswort gespeichert wird.
* 
<Name des Verschlüsselungsschlüssels> ist optional. Wenn kein <Name des Verschlüsselungsschlüssels> angegeben wird, wird der interne Standardschlüssel verwendet. Für Dateien gilt eine Größenbeschränkung von 10 MB.
migrate <Passwort>
Migriert den Keystore zu einem neu generierten Passwort oder einem angegebenen Passwort.
addcert <Name><Pfad>
Lädt ein X.509-Zertifikat in den Schlüsselspeicher.
import <Orchestration-Keystore-Konfiguration>
Importiert Verschlüsselungswörter aus der Datei zum Verschlüsselungswort-Anbieter.
* 
Diese Option ist in Version 1.3.1 und höher des Sicherheitsmanagement-Tools verfügbar.
Beispiele für die Verwendung
Im folgenden Beispiel gibt es keine Konfiguration in der Befehlszeile:

./security-common-cli
Not initialized, use 'init <config-file>' to initialize
> init sample-keystore.conf
Loading config from file sample-keystore.conf
Secret Provider: com.thingworx.security.provider.keystore.KeyStoreProvider
KeyStore
Path: /tmp/keystore
Password File: /tmp/keystore-password
Keystore Password: 47886866662481XXXXX
> get mykey
No value found for mykey
> set mykey "this is the value"
mykey stored
> get mykey
this is the value
> remove mykey
mykey removed
> get mykey
No value found for mykey
> encrypt mykey "this is my value to encrypt"
mykey stored
> get mykey
YVljoGhjNVQjnlo/m8c+FRtZhkOb/rcfioakxxxxxx=
> decrypt mykey
this is my value to encrypt
> remove mykey
mykey removed
> exit
Complete
Im folgenden Beispiel ist eine Konfigurationsdatei in der Befehlszeile angegeben:
./security-common-cli sample-keystore.conf
Loading config from file sample-keystore.conf
Secret Provider: com.thingworx.security.provider.keystore.KeyStoreProvider
KeyStore
Path: /tmp/keystore
Password File: /tmp/keystore-password
Keystore Password: 47886866662481XXXXX
> get mykey
No value found for mykey
> set mykey "some test"
mykey stored
> get mykey
some test
> remove mykey
mykey removed
> exit
Complete
Im folgenden Beispiel gibt es direkte Änderungen der Befehlszeile:
./security-common-cli sample-keystore.conf get mykey
Loading config from file sample-keystore.conf
No value found for mykey
./security-common-cli sample-keystore.conf set mykey "this is the value to set"
Loading config from file sample-keystore.conf
mykey stored
./security-common-cli sample-keystore.conf get mykey
Loading config from file sample-keystore.conf
this is the value to set
Verwendung
Der Anbieter des Schlüsselspeichers verwendet ein sicheres Token, das verschlüsselt in einer Datei gespeichert wird, um die Nutzung des Schlüsselspeichers zu ermöglichen. Alle Daten, die in den Schlüsselspeicher geschrieben werden, werden anhand des Passworts sicher gespeichert. Beim ersten Starten des Anbieters werden ein zufälliger Passwortwert und eine Keystore-Datei generiert, wenn sie nicht bereits vorhanden sind.
* 
Das Schlüsselspeicherpassword und die Schlüsselspeicherdatei sind auf den Anwendungsbenutzer zu beschränken. Der Anwendungsbenutzer muss Lese- und Schreibberechtigungen für die Dateien haben.
Um eine Keystore-Datei zum Speichern der ursprünglichen Daten zu erstellen, müssen Sie das Sicherheitsmanagement-Tool verwenden.
1. Die ZIP-Datei für das Sicherheitsmanagement-Tool finden Sie auf der PTC Support Website (im Bereich zu Version 8.4 oder höher).
2. Extrahieren Sie den Inhalt der ZIP-Datei in ein Verzeichnis.
3. Erstellen Sie eine Konfigurationsdatei mit den Parametern, die Sie im folgenden Beispiel sehen, und platzieren Sie sie im Ordner bin.
In diesem Beispiel heißt die Datei keystore.conf, die Version des Tools ist 1.0.0.36, und es befindet sich unter C:\security-common-cli-1.0.0.36\bin.
{
security {
secret-provider = "com.thingworx.security.provider.keystore.KeyStoreProvider"
default-encryption-key-length = 128
keystore {
password-file-path = ":\\<path to ThingworxPlatform folder>\\ThingworxPlatform"
password-file-name = "keystore-password"
path = ":\\<path to ThingworxStorage folder>\\ThingworxStorage"
name = "keystore"
}
}
}
4. Starten Sie eine Eingabeaufforderung, und gehen Sie zum Speicherort security-common-cli-1.0.0.36\bin.
5. Führen Sie
C:\security-common-cli-1.0.0.36\bin> security-common-cli.bat <path to keystore>\keystore.conf
set encrypt.licensing.password "add-password-here"
aus. Dadurch werden eine Passwortdatei und ein Schlüsselspeicher am konfigurierten Speicherort erstellt.
6. Öffnen Sie ThingworxPlatform\platform-settings.json unter LicensingConnectionSettings, und ändern Sie den Wert password in encrypt.licensing.password. Beispielsweise "password": "encrypt.licensing.password". Dieses Passwort signalisiert der ThingWorx Plattform, das verschlüsselte Lizenzierungspasswort im Schlüsselspeicher zu suchen.
Schlüsselspeicherpasswörter ändern
Sie können das Schlüsselspeicherpasswort mit dem Sicherheitsmanagement-Tool auch zu einem neuen Passwort migrieren. Wenn das Passwort geändert wird, ist die Anwendung nicht mehr in der Lage, migrierte Schlüssel zu verwenden, bis das Keystore-Passwort der Anwendung zurückgesetzt wird. Derzeit ist dafür ein Anwendungsneustart erforderlich.
1. Beenden Sie die Anwendung, die den Schlüsselspeicher verwendet.
2. Führen Sie das Sicherheitsmanagement-Tool-Skript mit der Keystore-Konfiguration aus.
3. Führen Sie den Befehl migrate aus. Dadurch wird ein neues Passwort generiert, alle Daten werden zu dem neuen Passwort verschoben, und die sichere Datei wird mit dem neuen Passwort aktualisiert.
4. Starten Sie die Anwendung neu, um das neue Schlüsselspeicherpasswort zu laden.
War dies hilfreich?