Chiffrement de mots de passe
Pour plus d'informations, consultez la rubrique Outil de gestion de la sécurité dans ce Centre d'aide.
Chiffrement des mots de passe de licence et de base de données
Le fournisseur du KeyStore utilise un jeton sécurisé chiffré dans un fichier afin d'utiliser le KeyStore. Toutes les données écrites dans le KeyStore seront stockées en toute sécurité à l'aide du mot de passe. Lors de son premier démarrage, le fournisseur génère une valeur de mot de passe aléatoire et un fichier keystore, s'ils n'existent pas déjà.
* 
L'accès au mot de passe du KeyStore et au fichier KeyStore doit être limité à l'utilisateur de l'application. Ce dernier doit disposer des droits d'accès en lecture/écriture aux fichiers.
* 
Les exemples ci-après sont basés sur Windows. Si vous utilisez un système d'exploitation basé sur le Linux, modifiez les commandes selon vos besoins.
Pour créer au préalable un fichier KeyStore et y stocker les données initiales, vous devez utiliser l'outil de gestion de la sécurité.
1. Téléchargez le fichier ZIP de l'outil de gestion de la sécurité depuis le site de support PTC.
2. Extrayez le contenu du fichier Zip dans un dossier.
3. Créez un fichier de configuration avec les paramètres suivants, puis placez-le dans le dossier bin des fichiers dézippés. Dans cet exemple, le fichier est nommé keystore.conf, la version de l'outil est 1.0.3.48, et il se trouve dans C://security-common-cli-1.0.3.48/bin.
* 
Le paramètre default-encryption-key-length doit correspondre à la configuration de l'application. Dans ThingWorx, cela correspond au paramètre InternalAesCryptographicKeyLength qui se trouve dans le fichier platform-settings.json. La valeur par défaut est 128, mais vous pouvez définir le chiffrement 256 bits si vous utilisez Java 1.8.0_162 ou une version ultérieure. Si nécessaire, vous pouvez également utiliser les versions antérieures de Java en mettant à jour la politique Java en matière de limite de taille de clé.
{
security {
secret-provider = "com.thingworx.security.provider.keystore.KeyStoreProvider"
default-encryption-key-length = 128
keystore {
password-file-path = "/ThingworxPlatform"
password-file-name = "keystore-password"
path = "/ThingworxStorage"
name = "keystore"
}
}
}
4. Lancez une invite de commande et accédez à l'emplacement security-common-cli-1.0.3.48\bin.
5. Exécutez ce qui suit pour créer un fichier de mot de passe et le KeyStore à l'emplacement configuré :
Mot de passe de licence :
C:\security-common-cli-1.0.3.48\bin> security-common-cli.bat <path to keystore>\keystore.conf
set encrypt.licensing.password "add-password-here"
Mot de passe de base de données :
C:\security-common-cli-1.0.3.48\bin> security-common-cli.bat <path to keystore>\keystore.conf
set encrypt.db.password "add-password-here"
Mot de passe de proxy de licence :
C:\security-common-cli-1.0.3.48\bin> security-common-cli.bat <path to keystore>\keystore.conf
set encrypt.proxy.password "add-password-here"
Mot de passe RabbitMQ (si vous avez installé ThingWorx Flow) :
C:\security-common-cli-1.0.3.48\bin> security-common-cli.bat <path to keystore>\keystore.conf
set encrypt.queue.password "add-password-here"
6. Ouvrez le fichier ThingworxPlatform\platform-settings.json et effectuez les mises à jour suivantes :
Mot de passe de licence : sous LicensingConnectionSettings, définissez la valeur de password sur encrypt.licensing.password. Par exemple : "password": "encrypt.licensing.password".
Mot de passe de base de données : sous PersistenceProviderPackageConfigs ConnectionInformation pour le fournisseur de persistance que vous utilisez, définissez la valeur de password sur encrypt.db.password. Par exemple : "password": "encrypt.db.password".
Mot de passe de proxy de licence : sous LicensingConnectionSettings, définissez la valeur de mot de passe sur encrypt.proxy.password. Par exemple : "proxyPassword": "encrypt.proxy.password".
Mot de passe RabbitMQ (si vous avez installé ThingWorx Flow) : dans le fichier platform-settings.json, sous OrchestrationSettings, remplacez la valeur de QueuePassword par encrypt.queue.password. Par exemple : "QueuePassword": "encrypt.queue.password".
Ce mot de passe indique à la plateforme ThingWorx de rechercher le mot de passe chiffré dans le keystore lorsqu'elle le rencontre.
Est-ce que cela a été utile ?