Séminaire SoSySec : A Universal Composability analysis of Android Protected Confirmation

Seminar
Starting on
Ending on
Location
IRISA Rennes
Room
Salle Pétri/Turing
Speaker
Maïwenn Racouchot - CISPA

As phones are used for more and more sensitive operations (such as bank transfers for example), there is a great necessity to design and deploy protocols that can ensure the security of such transactions, even in cases when the phone has been compromised. In order to accomplish that, Android in collaboration with Google have worked on a protocol called Android Protected Confirmation. The idea behind this protocol is to give to any application a way to leverage the security of the phone's Trusted Execution Environment (TEE) to sign operations without needing the application code to be directly included in the TEE. This allows a wider usability as the code of the application does not need to be verified to use the protocol. The protocol's main claim is the following: in order for a message to be signed, it must first have been seen and accepted by the user, even in presence of an adversary with root privileges. This gives better guaranties to the server (for example the bank) that the requested transaction is indeed demanded by the user.

Our analysis of this protocol allowed us to find two attacks. The first happens at the registration phase and allows an attacker to register credentials under the victim’s identity. The second one at the transaction phase allows a corrupted rich, non-secure, operating system to send signed messages to an unintended server. We also implemented a variation of the second attack on a Google Pixel 6. Then using the Universal Composability framework, we proposed an ideal functionality for Protected Confirmation and we proved fixes for both attacks.