Veena Krish, Stony Brook University; Nicola Paoletti and Milad Kazemi, King's College London; Scott Smolka and Amir Rahmati, Stony Brook University
User authentication systems based on cardiovascular biosignals have gained prominence in recent years, as these signals are presumed difficult to forge. We challenge this assumption by showing that an observer who has access to one type of cardiac data – such as a user's pulse waveform, readily obtainable from video and commercial smartwatches – can design a spoofing attack strong enough to fool multiple authentication systems based on other cardiovascular biosignals. We present BioForge, an approach that leverages a cycle-consistent generative adversarial network to synthesize realistic physiological signals for a given user without relying on simultaneously collected supervision data. We evaluate BioForge on multiple open-access datasets and an array of verification systems – many of which can be fooled over 50% of the time in 10 or fewer attempts. Notably, we are able to fool systems that rely not just on heart rate and peak locations but also on the morphology of the waveforms. Our work conclusively demonstrates that authentication systems should not rely on the secrecy of cardiovascular biosignals.
cardiovascular biosignals.Open Access Media
USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.
author = {Veena Krish and Nicola Paoletti and Milad Kazemi and Scott Smolka and Amir Rahmati},
title = {Biosignal Authentication Considered Harmful Today},
booktitle = {33rd USENIX Security Symposium (USENIX Security 24)},
year = {2024},
isbn = {978-1-939133-44-1},
address = {Philadelphia, PA},
pages = {5521--5536},
url = {https://www.usenix.org/conference/usenixsecurity24/presentation/krish},
publisher = {USENIX Association},
month = aug
}