The "customer key" feature may for instance be used by a customer to be sure that his application communicates only with certified MSX-E modules. More...
A "customer key" consists of two strings of data stored on the certified MSX-E module, to be used by the function MXCommon__TestCustomerID() to encrypt data.
These strings can not be read back. They are supposed to be kept secret by the user of this functionality.
To test if the MSX-E module you use is certified, you can request the MSX-E module to provide a set of randomly generated data and the result of the encryption (through the use of the stored "customer key") of the same data. Then your application must encrypt the delivered random data with its own "customer key" and compare it with the encrypted data delivered by the MSX-E module.
If the results are matching, the MSX-E module is certified for this application.
Detailed presentation of operations:
The user generates and stores on the module two keys (thanks to the software function : MXCommon__SetCustomerKey()). This needs only to be done once:
When requested (with the software function : MXCommon__TestCustomerID() ), the module generates a 16 bytes random value and do an encryption of this value using the two saved keys and the AES algorithm (Rijndael).
The user receives then two arrays of 16 bytes :
[B]=AES([A], K1, K2)
The user performs then the same computation from [A],K1,K2 and compares his result with [B]. If it is the same, it means that the module he is using was already configured with the correct identification token.
The security of the method comes from that even knowing [A] and [B] no one can deduce K1 and K2 back in practical times. ADDI-DATA is not aware of a practical way to remotely retrieve the value of the key stored on a module.
It is the responsibility of the developer of the application to ensure that these tokens are suitably protected. The authorisation of the change of the "customer key" on the MSX-E module can be managed with the web interface.
The use of the "customer key" don't have an impact of the other functionalities of the MSX-E module.