ACR1255U-J1 – Reference Manual
Version V1.01
www.acs.com.hk
Page 17 of 73
5.3. Authentication
Before any sensitive data can be loaded into ACR1255U-J1, the data processing server must be
authenticated by ACR1255U-J1 for the privilege to modify the secured data inside reader. In
ACR1255U-J1, a mutual authentication method is being used.
An authentication request is always initiated by either the data processing server or the bridging
device, which will then trigger ACR1255U-J1 to return a sequence of 16 bytes of random numbers
(RND_A[0:15]). The random numbers are encrypted with the Customer Master Key currently stored in
ACR1255U-J1 using the AES-128 CBC ciphering mode before being sent out from ACR1255U-J1.
The bridging device must pass this sequence of encrypted random numbers to the data processing
server, which will then undergo AES-128 CBC cipher mode decryption using the Customer Master
Key that is being used in the data processing server (which should be the same as the one that is
being used in ACR1255U-J1 and should be kept securely by the customer). The 16 bytes of
decrypted random numbers from ACR1255U-J1 is then padded to the end of another 16 bytes of
random numbers generated by the data processing server (RND_B[0:15]). The final sequence of 32
bytes of random numbers (RND_C[0:31]), that is:
RND_C[0:31] = RND_B[0:15] + RND_A[0:15],
will undergo decryption operation with the Customer Master Key being used in the server and the final
output data is sent to ACR1255U-J1 through the bridging device using an authentication response
message.
When ACR1255U-J1 receives the authentication response message, the message data will undergo
an encryption operation using its own Customer Master Key and will be converted back to the normal
32 bytes of random numbers. In theory, the first 16 bytes of random numbers should be equal to
RND_B[0:15] and are generated by the data processing server while the other 16 bytes should be
equal to RND_A[0:15] and are originally generated by ACR1255U-J1.
ACR1255U-J1 will first compare if RND_A[0:15] is the same as the original version. If it is the same,
then the data processing server is authenticated by ACR1255U-J1. ACR1255U-J1 will then encrypt
RND_B[0:15] obtained using the Customer Master Key and the feedback to the data processing
server through the bridging device using the answer to the authentication response message.
Upon receiving the answer to the authentication response message, the data processing server will
decrypt the data contained in the message and check if the 16 bytes of random numbers are all equal
to those originally generated RND_B[0:15]. If they are the same, then ACR1255U-J1 is authenticated
by the server. At this moment, the whole authentication process is completed and sensitive data can
be injected into ACR1255U-J1.
After successful authentication, a 16-byte Session Key is generated in both ACR1255U-J1 and the
data processing server. The Session Key (SK[0:15]) is obtained by padding the first 8 bytes of RND_B
at the end of the first 8 bytes of RND_A, that is:
SK[0:15] = RND_A[0:7] + RND_B[0:7]
All sensitive data leaving out of the Secured Data Processing Server must be encrypted with this
Session Key using the AES-128 CBC ciphering mode. Thus, even if the encrypted data may be
captured in the bridging mobile device, it is still very difficult to retrieve the original sensitive data
without any prior knowledge of the Customer Master Key.