What de.fac2? Attacking an opensource U2F device in 30 minutes or less
2023-08-15 , Milliways
Language: English

Hardware FIDO U2F tokens are security devices which are meant to defend user second factor keys from physical and remote attacks.
In this presentation different security features and implemented by FIDO U2F tokens and how they are meant to protect a user from various attack scenarios.
We will focus on the open source implementation of FIDO U2F token developed and Common Criteria certified by Federal Office for Information Security (BSI).
Having access not only to the source code of the token applet, but the certification documents as well gives a unique opportunity of
Finally, a design flaw in the solution is discussed (CVE-2022-33172) and an attack on hardware token security feature will be presented, which could allow an attacker in control of user PC to fake user presence and execute a number of unauthorized sensitive operations.


De.fac2 is a Common Criteria (CC) and FIDO certified FIDO U2F Java Card applet developed and certified by Federal Office for Information Security (Bundesamt für Sicherheit in der Informationstechnik).
This solutions gives a unique opportunity to look at the internals of a FIDO U2F token as well as certification claims and product security features.

The presentation introduces the process of identification of the design flaw in the product in under an hour as well as the testing of a vulnerability without access to the actual physical device.

The vulnerability was disclosed to the Bundesamt für Sicherheit in der Informationstechnik and addressed in the updated commit
https://github.com/BSI-Bund/de.fac2

The acknowledged bug was addressed by the developer with the following statement:

The following attack scenario was reported to us by Sergei Volokitin: A reset command send by the reader to the card circumvents the user presence check.
For example, malware on the host PC / smartphone could send a reset command to the reader programmatically.
It is not possible for the card to distinguish if the reader sent a reset command or if it was physically removed from the reader.
With reference to this scenario, the Guidance Documentation (AGD) and the Security Target (ST) were updated in July 2022 in a "Assurance Maintenance".

Sergei Volokitin is a security analyst at Riscure in the Netherlands where his work is mostly focused on security evaluation of embedded systems and security testing of mobile devices. He has a number of publications on Java Card platform attacks and conference presentations on hardware security.