Optimisation de l'utilitaire MigrateEncryptedInfo
MigrateEncryptedInfo est un utilitaire permettant le rechiffrement des données sensibles stockées dans la base de données. Il exécute deux tâches et chacune d'elles est contrôlée par un fichier de configuration distinct.
utilities_root/bin/MigrateEncryptedInfo.sh
Lorsque vous ouvrez le script MigrateEncryptedInfo, vous pouvez voir deux appels vers MKChangeApp. Chacun de ces appels représente une tâche distincte, effectuée par le script.
Tâche un
La première tâche impose aux données sensibles de la base d'être cohérentes avec l'indicateur PDIEncrypt spécifié dans le fichier de configuration de l'instance. Si cette tâche détecte que les données et l'indicateur PDIEncrypt sont désynchronisés, elle fait migrer les données vers la clé de commerçant en cours.Par défaut, cette tâche est mise en commentaire.
Si la valeur de l'indicateur PDIEncrypt est modifié, cela signifie que vous souhaitez chiffrer les données à partir de texte en clair ou déchiffrer les données pour les convertir en texte en clair. Vous pouvez activer manuellement cette section dans le script MigrateEncryptedInfo. La valeur par défaut du paramètre PDIEncrypt est on.
Par exemple, si les données de la base sont en texte en clair et que vous souhaitez les chiffrer, remplacez la valeur de PDIEncrypt dans le fichier de configuration de l'instance par "on". Ensuite, activez cette partie dans le script MigrateEncrytedInfo et exécutez cette tâche. Une fois l'indicateur PDIEncrypt activé, toutes les données suivantes entrées dans la base seront également chiffrées. De même, si les données de la base sont chiffrées et que vous souhaitez les afficher en texte en clair, remplacez la valeur de PDIEncrypt dans le fichier de configuration de l'instance par "off". Ensuite, activez cette partie dans le script MigrateEncryptedInfo, et exécutez cette tâche pour déchiffrer les données existantes. toutes les données suivantes entrées dans la base seront également déchiffrées.
Vous devez activer les sections suivantes du script MigrateEncryptedInfo :
# echo "#######################" >> $WCLOGDIR/MigrateEncryptedInfoError.log
# echo "### CCInfoMigration ###" >> $WCLOGDIR/MigrateEncryptedInfoError.log
# echo "#######################" >> $WCLOGDIR/MigrateEncryptedInfoError.log
# cp -f CCInfoDBUpdate.$DBTYPEEXT.txt $WCTEMPDIR/DBUpdate.txt
# cd $WCTEMPDIR
# ${JAVA_EXE?} -Xmx512m -DnewKeyNeeded=true -DInstanceXMLFileAccess.debug=true -DReencryptionRequestDispatcher.debug=true -DReencryptionTask.debug=true -Dwclogdir=$WCLOGDIR -cp $CP com.ibm.commerce.dbupdatetool.MKChangeApp "action1_2" $WCINST $param3 $param4 $param5 $param6 $param7 $interactive_output > $WCLOGDIR/CCInfoMigration.log 2>> $WCLOGDIR/MigrateEncryptedInfoError.log
# if [ "$?" = "1" ]
# then
# echo "Migration failed. Please check $WCLOGDIR/CCInfoMigration.log and $WCLOGDIR/MigrateEncryptedInfoError.log for details."
# rm -f DBUpdate.txt
# cd $WCS_HOME/bin
# exit 1
# fi
# rm -f DBUpdate.txt
# cd $WCS_HOME/bin
utilities_root/bin/CCInfoDBUpdate.DBTYPE.txt
Tâche deux
utilities_root/schema/DBTYPE/migration/DBUpdate.txt
- ReEncryptUserPasswords
- La première action, ReEncryptUserPasswords, migre des mots de passe utilisateur (stockés dans la table USERREG) vers le nouveau schéma de mot de passe (chiffrement à sens unique) et vers la nouvelle clé de commerçant. En raison des améliorations de la sécurité, si vous faites migrer la base de données d'une version de HCL Commerce antérieure à la version 5.4, l'exécution de l'action ReEncryptUserPasswords est obligatoire pour chiffrer les mots de passe utilisateur dans le nouveau format. Cette action effectue également la migration des mots de passe utilisateur vers une nouvelle clé de commerçant.
- ReEncryptUserPasswordHistory
- L'action suivante, ReEncryptUserPasswordHistory, fait migrer les anciens mots de passe utilisateur (stockés dans la table USERPWDHST) vers la nouvelle clé de commerçant. Si vous avez configuré une stratégie de mot de passe pour stocker les mots de passe précédents, vous devez exécuter cette action.
- ReEncryptCreditCards
- La troisième action de la configuration, ReEncryptCreditCards, rechiffre les données de carte de crédit à l'aide d'une nouvelle clé de commerçant. Cette action est requise si l'indicateur PDIEncrypt est activé ("on") dans le fichier de configuration de l'instance et si les données de carte de crédit doivent être rechiffrées avec la nouvelle clé. Les données des tables suivantes sont traitées dans le cadre de cette action :
- ReEncryptGiftCenterUserPasswords
- Migre les mots de passe utilisateur du centre de gestion des listes de cadeaux (stocké dans la table GRUSERAUTH) vers la nouvelle clé de commerçant. Si vous n'utilisez pas la liste de cadeaux, il n'est pas nécessaire d'exécuter cette action.
Réduction de l'exécution de l'utilitaire MigrateEncryptedInfo en éliminant les actions inutiles
L'utilitaire MigrateEncryptedInfo lit préalablement les données de la base avant de vérifier si le rechiffrement doit être effectué sur les données extraites pour chaque action. Si vous anticipez que certaines tâches ne s'appliquent pas à votre configuration de site, vous pouvez personnaliser le script afin de ne pas exécuter ces tâches. Cela permet de réduire le temps de lecture et de traitement des données. Cela est utile, notamment si le fichier est volumineux.
Si votre site utilise LDAP comme référentiel d'utilisateurs, les mots de passe précédents et en cours de l'utilisateur ne sont pas conservés dans les tables USERREG and USERPWDHST. Cela signifie que les actions pouvant rechiffrer les mots de passe actuel et précédent de l'utilisateur deviennent inutiles.
[ActionItem]
ID=ReEncryptUserPasswords
DisplayID=Change Merchant Key
UpdateClassName=com.ibm.commerce.dbupdatetool.OneWayHashEncoder
[DBAccess]
DriverClassName=COM.ibm.db2.jdbc.app.DB2Driver
HostName=
HostJDBCPort=
ConnectionPrefix=jdbc:db2
DatabaseName=
DatabaseUserName=
DatabaseUserPassword=
[DBTable]
TableName=USERREG
TableColumns=USERS_ID,LOGONPASSWORD,SALT,CHALLENGEANSWER
UniqueColumns=USERS_ID
[Parameter]
ID=OldEncryptionKey
DisplayID=OldEncryptionKey
Value=
[Parameter]
ID=NewEncryptionKey
DisplayID=NewEncryptionKey
Value=
[ActionItem]
ID=ReEncryptUserPasswordHistory
DisplayID=Change User Password History
UpdateClassName=com.ibm.commerce.dbupdatetool.DataReEncrypter
[DBAccess]
DriverClassName=COM.ibm.db2.jdbc.app.DB2Driver
HostName=
HostJDBCPort=
ConnectionPrefix=jdbc:db2
DatabaseName=
DatabaseUserName=
DatabaseUserPassword=
[DBTable]
TableName=USERPWDHST
TableColumns=PREVLOGONPASSWORD
UniqueColumns=USERPWDHST_ID
[Parameter]
ID=OldEncryptionKey
DisplayID=OldEncryptionKey
Value=
[Parameter]
ID=NewEncryptionKey
DisplayID=NewEncryptionKey
Value=Si vous ne configurez pas votre stratégie de mot de passe pour qu'elle stocke les anciens mots de passe de l'utilisateur, vous pouvez désactiver l'action ReEncryptUserPasswordHistory qui traite les données dans la table USERPWDHST.
[ActionItem]
ID=ReEncryptUserPasswordHistory
DisplayID=Change User Password History
UpdateClassName=com.ibm.commerce.dbupdatetool.DataReEncrypter
[DBAccess]
DriverClassName=COM.ibm.db2.jdbc.app.DB2Driver
HostName=
HostJDBCPort=
ConnectionPrefix=jdbc:db2
DatabaseName=
DatabaseUserName=
DatabaseUserPassword=
[DBTable]
TableName=USERPWDHST
TableColumns=PREVLOGONPASSWORD
UniqueColumns=USERPWDHST_ID
[Parameter]
ID=OldEncryptionKey
DisplayID=OldEncryptionKey
Value=
[Parameter]
ID=NewEncryptionKey
DisplayID=NewEncryptionKey
Value=[ActionItem]
ID=ReEncryptCreditCards
DisplayID=Re encrypt the credit cards
UpdateClassName=com.ibm.commerce.dbupdatetool.CCInfoReencoder
[DBAccess]
DriverClassName=COM.ibm.db2.jdbc.app.DB2Driver
HostName=
HostJDBCPort=
ConnectionPrefix=jdbc:db2
DatabaseName=
DatabaseUserName=
DatabaseUserPassword=
[DBTable]
TableName=PATTRVALUE
TableColumns=STRINGVALUE,ENCRYPTFLAG
UniqueColumns=PATTRVALUE_ID
[DBTable]
TableName=ORDPAYINFO
TableColumns=VALUE
UniqueColumns=ORDPAYINFO_ID
[DBTable]
TableName=ORDPAYMTHD
TableColumns=PAYDEVICE
UniqueColumns=ORDERS_ID,PAYMETHOD,PAYDEVICE,REFUNDNUMBER
[DBTable]
TableName=PPCEXTDATA
TableColumns=DATAVALUE,ENCRYPTED
UniqueColumns=PPCEXTDATA_ID
[DBTable]
TableName=PPCPAYINST
TableColumns=ACCOUNTNUMBER
UniqueColumns=PPCPAYINST_ID
[DBTable]
TableName=MERCHCONFINFO
TableColumns=PROPERTY_VALUE,ENCRYPTED
UniqueColumns=MERCHCONFINFO_ID
[Parameter]
ID=OldEncryptionKey
DisplayID=OldEncryptionKey
Value=
[Parameter]
ID=NewEncryptionKey
DisplayID=NewEncryptionKey
Value=