By default, the WebSphere Commerce database is encrypted using a Triple Data Encryption
algorithm Standard (Triple DES) encryption algorithm. This standard was implemented at a time when a
smaller cipher size was considered safe. While still considered a relevant industry standard, Triple
DES has since been superseded with a stronger standard known as Advanced Encryption Standard (AES).
With a stronger cipher standard, AES is less susceptible to brute force attacks that have become
feasible with the continual improvements in computational power over the years.
Upgrading to AES-128 is part of updating to NIST SP 800-131A security
standards. Consider NIST SP 800-131A for more enhancements to site security. See, Updating to NIST SP 800-131A security standards.
Procedure
Migrate encrypted data in the database to use AES 128-bit encryption. To complete this
migration, you must run MigrateEncryptedInfo by using the Key Locator Framework
(-k) to specify the new AES merchant key. Add the
algorithm="AES" attribute to the new key definition in the custom key configuration
file. Use 32 hex characters (128 bits) for the new key and optional key encryption key values.
Note: Switching to an AES merchant key can result in temporary session cookie decryption errors for
any existing sessions that were created before you upgrade to the AES merchant key.
Specify that the new key in the keys configuration file is using AES algorithm by adding
algorithm="AES" attribute to the new key definition in the custom keys
configuration file.
For example, create or update the
WC_eardir/xml/config/CustomKeys.xml file to have a new key
definition similar to the following
example.
Update the Business Audit Key that is defined in
BusinessAuditDataCapture.xml so it can be used with AES. The default audit key
is an encrypted 16 character audit key. To encrypt with AES, the key must be replaced by the
encrypted value of a new default 32 character audit key.
Go to the following directory:
WC_installdir\wc.ear\xml\config
workspace_dir\WC\xml\config
Open BusinessAuditDataCapture.xml for editing.
Optional: If you modified the default audit key to a custom value, rename the original AuditKey to
CustomAuditKey.
The CustomAuditKey node must be defined to continue validating existing
records/signatures in the database.
Search for the default audit key value: <AuditKey
value="rZ15ws0ely9yHk3zCs3sTMv/ho8fY17s" />
If the value matches your search, then you do not have to rename to
CustomAuditKey. Continue to 2.d.
If the value does not match your search, copy the <AuditKey> node.
Paste the node into the file.
For the node that you pasted, replace the word "AuditKey" with
"CustomAuditKey".
Update the <AuditKey> node with the following 32 character audit
key:
For the utility to complete successfully, ensure that the WebSphere Application Server is
continuously up and running during the process.
In a command prompt, go to the following directory:
WC_installdir/bin
WC_installdir\bin
WCDE_installdir\bin
Run the following command:
MigrateEncryptedFiles.sh
MigrateEncryptedFiles.bat
MigrateEncryptedFiles.bat
To verify that the utility ran successfully, in each of the
wc-server.xml or
product.xml files that you updated in step
3 and step 4, ensure that the
AES_Files parameter is set to "true".
Set the following namespace bindings in the WebSphere Application Server for each Search
machine.
In the WebSphere Commerce Search server WebSphere Application Server administrative console, go
to Environments > Naming > Name space bindings > scope:Node=demo_search_node,Server=solrServer.
The sessionKey value from the WebSphere Commercewc-server.xml file.
Required if application security is enabled on the Search server:
Set the following namespace binding in WebSphere Application Server for each WebSphere Commerce
Authoring and Production machine:In the WebSphere Commerce server WebSphere Application
Server administrative console, go to Environments > Naming > Name space bindings > scope:Node=WC_demo_node,Server=server1.
The Search server's application security password, encrypted by the
wcs_encrypt utility in WebSphere Commerce. You do not need to specify the merchant key
because WebSphere Commerce and Search are now using AES protocol.
Set the following namespace binding in WebSphere Application Server for each Search Production
and Repeater machine. In the Search server WebSphere Application Server administrative console, go
to Environments > Naming > Name space bindings > scope:Node=demo_search_node,Server=solrServer.
This step is only required if you are using the Commerce Insights BAC SFTP Server password
(used by Commerce Insights Product Sequencing), and assuming that WebSphere Commerce is already
using AES for its files.
Edit or create the file
Search_eardir/xml/config/com.ibm.commerce.foundation/wc-component.xml.
Set the property <_config:property name="BACSFTPServerSetting/userPassword" value=""
/> by running the wcs_encrypt utility (without the merchant key) from
the WC_install/bin directory.
Set the AES flags to true in under
Search_eardir/xml/config/com.ibm.commerce.foundation/wc-component.xml: