Migration de données chiffrées

Lors de la migration de IBM Websphere Commerce Version 8 vers HCL Commerce Version 9.1, vous devez migrer vos données chiffrées. Les versions précédentes de WebSphere Commerce autorisent votre site à utiliser le chiffrement 3DES (merchantKey 16 bits) ou AES (merchantKey 32 bits). Dans HCL Commerce Version 9.1, seul le chiffrement AES est utilisé.

Avant de commencer

Connectez-vous à l'environnement requis.
    1. Connectez-vous à l'environnement qui héberge le Utility server Docker container.

      Si un Utility server Docker container n'est pas déployé, voir Préparation d'un serveur hôte Docker pour lancer Utility server Docker container.

    2. Entrez le Utility server Docker container.
      Par exemple,
      docker exec -it utility_container_name bash

      Vous êtes maintenant dans le Utility server Docker container. La procédure suivante doit être effectuée dans cet environnement.

Procédure

  1. Créez les fichiers requis pour migrer vos données chiffrées.
    1. Créer Product.xml.
      Product.xml est utilisé pour spécifier le type de chiffrement utilisé à la fois dans la base de données et pour les fichiers de votre environnement IBM Websphere Commerce Version 8.
      <security>
        <AES_Files>true</AES_Files>
        <AES_DB>false</AES_DB>
      </security>

      Dans cet exemple, AES est spécifié comme étant utilisé pour les fichiers, mais pas pour la base de données. L'algorithme de chiffrement par défaut de la base de données est donc supposé (3DES).

      Remarque : Après avoir exécuté l'utilitaire migrateEncryptedInfo sur votre base de données, les deux doivent être définis sur true.
    2. Mettez à jour le fichier de configuration HCL Commerce (wc-server.xml).
      Vérifiez que les mêmes informations sont spécifiées dans le fichier de configuration wc-server.xml.
      AES_DB="false"
      AES_Files="true"
      Remarque : Après avoir exécuté l'utilitaire migrateEncryptedInfo sur votre base de données :
      • AES_DB et les AES_Files doivent être définis sur true.
      • Dans l'élément <Database>, mettez à jour DBUserPwd vers la valeur chiffrée AES à l'aide de l'utilitaire wcs_encrypt.sh.
        wcs_encrypt.sh password
      • Pour plus d'informations sur le fichier de configuration wc-server.xml, voir HCL Commerce fichier de configuration (wc-server.xml).
    3. Facultatif : créez KeyEncryptionKey.xml.

      La valeur keyEncryptionKey ajoute un niveau de sécurité supplémentaire lors du chiffrement de merchantKey. La valeur contenue est une chaîne de 32 caractères.

      La valeur keyEncryptionKey peut être une combinaison des caractères alphanumériques suivants : abcdef0123456789.

      Par exemple: abcdef0123456789abcdef0123456789.

  2. Configurez la migration du chiffrement des données.
    Créer CustomKeys.xml. Ce fichier est utilisé pour donner à l'utilitaire MigrateEncryptedInfo les instructions relatives à la migration des données d'origine et de destination.

    Placez ce fichier à l'emplacement suivant : /opt/WebSphere/AppServer/profiles/default/installedApps/localhost/ts.ear/xml/config/CustomKeys.xml.

    Un exemple de fichier de configuration se présente comme suit :
    <?xml version="1.0" encoding="UTF-8"?>
      <keys xmlns="http://www.ibm.com/xmlns/prod/WebSphereCommerce"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.ibm.com/xmlns/prod/WebSphereCommerce xsd/WCKeys.xsd">
    		
        <key name="MerchantKey" providerName="WC" status="current"
         className="com.ibm.commerce.security.keys.WCExternalFileMerchantKeyImpl" algorithm="3DES">
    	<config name="keyFile" value="oldMerchantKey.xml"/>
        </key>
    
        <key name="MerchantKey" providerName="WC" status="new"
         className="com.ibm.commerce.security.keys.WCExternalFileMerchantKeyImpl" algorithm="AES">
    	<config name="keyFile" value="merchantKey.xml"/>
    	<config name="keyEncryptionKeyFile" value="KeyEncryptionKey.xml"/>
    	<config name="newKeyFile1" value="newMerchantKey1.xml"/>
    	<config name="newKeyFile2" value="newMerchantKey2.xml"/>
         </key>
    		
         <key name="SessionKey" providerName="WC" status="current"
    	className="com.ibm.commerce.security.keys.WCSessionKeyImpl">
         </key>
      </keys>
    Dans le customKeys.xml, il y a trois éléments <key> :
    1. La première clé désigne la valeur MerchantKey avec laquelle vos données sont actuellement chiffrées. Il s'agit de votre clé actuelle qui est spécifiée dans ce fichier de configuration avec la valeur de statut current.

      Elle est utilisée par l'utilitaire afin de déterminer comment les données sont actuellement chiffrées et ce qu'il faut utiliser pour déchiffrer les données pour la transition vers une nouvelle clé et/ou un nouvel algorithme de chiffrement.

      Cette clé deviendra obsolète une fois l'utilitaire exécuté avec succès et peut être supprimée.

    2. La seconde clé désigne la valeur MerchantKey que vous souhaitez utiliser avec votre site à l'avenir. Il s'agit de votre nouvelle clé qui est indiquée dans ce fichier de configuration avec la valeur de statut new.

      Il s'agit de la clé que vous utilisez pour effectuer la transition. Elle est utilisée par l'utilitaire pour chiffrer à nouveau les données déchiffrées par la clé d'origine (actuellement current).

      Une fois l'utilitaire exécuté, cette clé est désormais la clé actuelle. Elle remplace la clé actuelle d'origine (la première valeur de clé spécifiée dans le fichier de configuration, avec le statut current) pour toute migration future d'algorithme de chiffrement ou de clé.

    3. La troisième clé indique votre valeur sessionKey et n'est pas importante pour l'utilitaire MigrateEncryptedInfo.

    Pour spécifier la configuration de l'utilitaire, mettez à jour ce fichier en conséquence :

    1. Spécifiez l'algorithme utilisé par votre clé actuelle et la nouvelle clé.
      Pour ce faire, spécifiez l'élément algorithm pour chaque clé sur 3DES ou AES en conséquence.
    2. Spécifiez la clé actuelle (oldMerchantKey.xml).
      Dans l'exemple ci-dessus, la clé actuelle est spécifiée comme étant contenue dans oldMerchantKey.xml. Ce fichier contiendra la valeur merchantKey de votre installation IBM Websphere Commerce Version 8.

      Elle est contenue dans la version IBM Websphere Commerce Version 8 de wc-server.xml.

      Vous devez la spécifier dans ce fichier chiffré par AES. Pour chiffrer cette valeur avec AES, utilisez l'utilitaire wcs_encrypt.sh.
      wcs_encrypt.sh password

      La chaîne chiffrée AES générée est la valeur qui doit être entrée dans oldMerchantKey.xml.

      Par exemple, si votre valeur merchantKey non chiffrée est abcdef0123456789, l'utilitaire génère la valeur de chaîne chiffrée AES de 000ITx0jBS3xHdvCq2EJXzDhtd9o3cRAEo/5eoVZy9vl+O2yV1SDG/iSURev3mc.

      Cette valeur est ensuite placée dans oldMerchantKey.xml.
      <?xml version="1.0" encoding="UTF-8"?>
        <keys xmlns="http://www.ibm.com/xmlns/prod/WebSphereCommerce" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://www.ibm.com/xmlns/prod/WebSphereCommerce xsd/key.xsd">
          <key value="000ITx0jBS3xHdvCq2EJXzDhtd9o3cRAEo/5eoVZy+9vl+O2yV1SDG/iSURev3mc"/>
        </keys>
    3. Spécifiez la nouvelle clé (newMerchantKey1.xml/newMerchantKey2.xml).
      Ces deux fichiers contiennent 16 bits de la nouvelle valeur merchantKey non chiffrée de 32 bits. Dès lors, newMerchantKey1.xml contiendra les 16 premiers caractères et newMerchantKey2.xml les 16 caractères suivants.

      Chaque valeur de clé peut être une combinaison des caractères alphanumériques suivants : abcdef0123456789.

      Placez ces fichiers de clés à l'emplacement suivant :
      • /opt/WebSphere/AppServer/profiles/default/installedApps/localhost/ts.ear/xml/config/newMerchantKey1.xml
      • /opt/WebSphere/AppServer/profiles/default/installedApps/localhost/ts.ear/xml/config/newMerchantKey2.xml
        Voici un exemple de fichier de clés :
        <?xml version="1.0" encoding="UTF-8"?>
          <keys xmlns="http://www.ibm.com/xmlns/prod/WebSphereCommerce" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ibm.com/xmlns/prod/WebSphereCommerce xsd/key.xsd">
             <key value="abcdef0123456789"/>
        </keys>
        Remarque : newMerchantKey1.xmlet newMerchantKey2.xml sont supprimés lors de l'exécution de l'utilitaire migrateEncryptedInfo. Si vous rencontrez un incident ou si vous devez réexécuter migrateEncryptedInfo, ces fichiers doivent être recréés.
  3. Effectuez la migration du chiffrement des données.
    Faites migrer votre chiffrement de données à l'aide de l'utilitaire migrateEncryptedInfo.
    Remarque : Si vous avez déjà exécuté l'utilitaire migrateEncryptedInfo, vous devez effacer la valeur merchantKey existante avant de réexécuter l'utilitaire migrateEncryptedInfo.
    Voici un exemple d'exécution réussie de cet utilitaire :
    [root@utils /]# /opt/WebSphere/CommerceServer90/bin/MigrateEncryptedInfo.sh db2 demo 1 1 -k /opt/WebSphere/AppServer/profiles/default/installedApps/localhost/ts.ear/xml/config/CustomKeys.xml
    
    Migration completed. Please check /opt/WebSphere/CommerceServer90/logs/MigrateEncryptedInfoError.log for any errors. Some errors can be ignored; see documentation for details.

    L'utilitaire migrateEncryptedInfo génère un fichier de clé de commerçant nouvellement chiffré, merchantKey.xml.

  4. Assurez-vous que la migration du chiffrement des données a abouti.
    Vérifiez les fichiers journaux MigrateEncryptedInfoError.log et CCInfoMigration.log pour déterminer si l'utilitaire a recontré des erreurs.
  5. Mettez à jour votre installation HCL Commerce Version 9.1 pour utiliser le chiffrement AES.
    1. Mettez à jour wc-server.xml Définissez AES_DB="true".
    2. Mettez à jour product.xml Définissez <AES_DB>true<AES_DB/>.
    3. Rendez la clé de commerçant accessible à votre environnement.
      • Si vous utilisez Key Locator Framework (KLF) :
        1. Mettez à jour la configuration de votre site.
          1. Ouvrez le fichier de configuration wc-server.xml pour édition.
          2. Ajoutez ce qui suit dans la section <Instance> :
            KeysConfigFile = "config/CustomKeys.xml"
          3. Enregistrez et fermez le fichier.
        2. Définissez CustomKeys.xml comme suit :
          <?xml version="1.0" encoding="UTF-8"?>
            <keys xmlns="http://www.ibm.com/xmlns/prod/WebSphereCommerce"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.ibm.com/xmlns/prod/WebSphereCommerce xsd/WCKeys.xsd">
            
               <key name="MerchantKey" providerName="WC" status="current"
          className="com.ibm.commerce.security.keys.WCExternalFileMerchantKeyImpl" algorithm="AES">
                 <config name="keyFile" value="merchantKey.xml"/>
                 <config name="keyEncryptionKeyFile" value="KeyEncryptionKey.xml"/> 
               </key>
          		
               <key name="SessionKey" providerName="WC" status="current" className="com.ibm.commerce.security.keys.WCSessionKeyImpl">
               </key>
            </keys>
          Remarque : Utilisez la valeur keyEncryptionKeyFile uniquement si vous avez rechiffré votre valeur merchantKey à l'aide de ce fichier.
      • Si vous n'utilisez pas Key Locator Framework (KLF) :
        1. Procurez-vous la nouvelle clé de commerçant chiffrée à partir du fichier merchantKey.xml généré.
          • Si vous utilisez Vault, stockez cette valeur.
          • Si vous n'utilisez pas Vault, mettez à jour votre valeur merchantKey wc-server.xml avec cette valeur.
    4. Déployez wc-server.xml, CustomKeys.xml, merchantKey.xml et KeyEncryptionKey.xml sur votre Transaction server (ts-app).
    5. Si votre Transaction server est en cours d'exécution, redémarrez l'application.

Résultats

Votre chiffrement de données est migré de votre ancien algorithme de chiffrement et de votre clé de commerçant vers l'algorithme de chiffrement et la clé de commerçant nouvellement spécifiée.