EMV 3DS Issue: Decrypting ARes.acsSignedContent
Microsoft recently diagnosed and resolved a tricky issue in our 3DS SDK. I'm sharing the details here in case it helps other merchants and ACS providers.
Symptom
In an app-based EMVCo 3DS authentication flow, there is session key generation using ephemeral keys based on elliptic curve cryptography. Contents of the authentication message are then encrypted, including the ARes.acsSignedContent field. Microsoft encountered an issue with the public keys returned in the ARes.acsSignedContent field from some ACS providers, resulting in our 3DS SDK throwing an error. The Microsoft SDK then sends a 001 (ACS Signed content verification failure) or 100 (Unknown Failure) error code in the error message to the ACS.
Impact
Currently (January 2021) 40% of Microsoft EMV 3DS challenge attempts fail with an error. Approximately 1/5 of these errors are caused by this issue.
Root Cause
Microsoft’s 3DS SDK expects the signed bits from the ACS to return with a length of 32 bytes for each of the X and Y coordinates. We noticed that some ACS providers who use Java BigInteger.toByteArray() to format the X and Y coordinate are returning 33 bytes for the coordinates. The details of why 33 bytes are returned are explained in this Stack Overflow forum thread:
The EMVCo 3DS specification does not specify or set a standard for how the X,Y coordinate array should be represented. It is therefore possible that a 3DS SDK and an ACS can process these coordinates differently, resulting in an error.
Fix
Microsoft has updated our 3DS SDK to handle EC public key coordinate sizes of both 32 and 33 bytes. Onward!
Fraud, Compliance and Cyber Security Expert
2 年Marcelo Liberato, sobre o que tinha te comentado quando falamos do issue dos 2 pontos…
Product Manager - Authentication & Consent
4 年Many thanks for sharing! René Post and Glenn Mac Donald and Axel Beune and Hannie Wielens
Vice President, Head of Enterprise & Digital Commerce, EMEA at Fiserv.
4 年Thanks Dean
Fintech & Risk (ex-Uber, Glovo, Scalapay)
4 年Thanks for sharing! Makes me wonder now if this is the source of some of the technical errors we see too.
EPSM, European Payment Association, Chairman
4 年I think this analysis can be very helpful for many market participants! Thank you for the hard work and this sharing! (I have shared it also to EPSM members internally.)