Optimización del programa de utilidad MigrateEncryptedInfo
MigrateEncryptedInfo es un programa de utilidad que se utiliza para volver a cifrar datos confidenciales que se almacena en la base de datos. Ejecuta dos tareas dentro de este programa de utilidad y cada una de las tareas se controla mediante un archivo de configuración distinto.
utilities_root/bin/MigrateEncryptedInfo.sh
Cuando se abre el script MigrateEncryptedInfo, puede ver que hay dos llamadas a MKChangeApp. Cada una de estas llamadas representa una tarea distinta que ejecuta el script.
Tarea una
La primera tarea impone que los datos sensibles de la base de datos sean coherentes con el distintivo PDIEncrypt especificado en el archivo de configuración de la instancia. Si esta tarea detecta que los datos y el distintivo PDIEncrypt no están sincronizados, los migra a la clave de comerciante actual. De forma predeterminada, esta tarea está comentada.
Si el valor del distintivo PDIEncrypt cambia, significa que desea cifrar los datos de texto sin formato o descifrar los datos a texto sin formato. Puede habilitar manualmente esta parte en el script MigrateEncryptedInfo. El valor predeterminado del distintivo PDIEncrypt es on.
Por ejemplo, si los datos de la base de datos son en texto sin formato, pero desea que estén cifrados, cambie el valor de PDIEncrypt en el archivo de configuración de instancia por "on". A continuación, habilite esta parte en el script MigrateEncrytedInfo y ejecute esta tarea. Una vez que el distintivo PDIEncrypt está habilitado, también se cifran los datos subsiguientes entrados. De forma alternativa, si los datos de la base de datos están cifrados, pero desea que estén en texto sin formato, cambie el valor de PDIEncrypt en el archivo de configuración de instancia por "off". A continuación, habilite esta parte en el script MigrateEncryptedInfo y ejecute esta tarea para descifrar los datos existentes. Los datos posteriores que se entran en la base de datos también se descifran.
Deben habilitarse las secciones siguientes del 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
Tarea dos
utilities_root/schema/DBTYPE/migration/DBUpdate.txt
- ReEncryptUserPasswords
- El primer elemento de acción, ReEncryptUserPasswords, migra contraseñas de usuario (almacenadas en la tabla USERREG) al nuevo esquema de contraseña (hash unidireccional) y a la nueva clave de comerciante. Debido a las mejoras en seguridad, si migra la base de datos de una versión de HCL Commerceanterior a la versión 5.4, es obligatorio ejecutar la acción ReEncryptUserPasswords para cifrar las contraseñas de usuario al nuevo formato. Esta acción también migra contraseñas de usuario a una nueva clave de comerciante.
- ReEncryptUserPasswordHistory
- El siguiente elemento de acción, ReEncryptUserPasswordHistory, migra contraseñas de usuario antiguas (almacenadas en la tabla USERPWDHST) a la nueva clave de comerciante. Si ha configurado una política de contraseñas para almacenar contraseñas anteriores, es necesario ejecutar esta acción.
- ReEncryptCreditCards
- El tercer elemento en la configuración, ReEncryptCreditCards, vuelve a cifrar datos de tarjeta de crédito utilizando una nueva clave de comerciante. Esta acción es necesaria si el distintivo PDIEncrypt tiene el valor "on" en el archivo de configuración de la instancia y es necesario volver a cifrar los datos de tarjeta de crédito con la nueva clave. Los datos de las siguientes tablas se procesan como parte de esta acción:
- ReEncryptGiftCenterUserPasswords
- Migra las contraseñas de usuario del centro de regalos (almacenadas en la tabla GRUSERAUTH) a la nueva clave de comerciante. Si no está utilizando el registro de regalos, no es necesario que ejecute esta acción.
Minimizar el tiempo de ejecución del programa de utilidad MigrateEncryptedInfo eliminando acciones innecesarias
El programa de utilidad MigrateEncryptedInfo lee primero los datos de la base de datos antes de comprobar si el cifrado debe realizarse de nuevo en los datos recuperados para cada acción. Si conoce con antelación determinadas tareas, no las aplique a la configuración del sitio, puede personalizar el script de forma que estas tareas no se realicen. La personalización del script ahorra algo de tiempo a la hora de leer y procesar los datos. Esto es especialmente valioso si tiene un conjunto de datos de gran tamaño.
Si el sitio utiliza LDAP como depósito de usuarios, las contraseñas actual y anterior del usuario no se conservan en las tablas USERREG y USERPWDHST. Esto significa que las acciones que vuelven a cifrar las contraseñas anterior y actual del usuario ya no son necesarias.
[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 no configura la política de contraseñas para almacenar las contraseñas anteriores del usuario, puede inhabilitar la acción ReEncryptUserPasswordHistory que procesa los datos de la tabla 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=