Podcast
Root Causes 231: What Is FIDO?


Hosted by
Tim Callan
Chief Compliance Officer
Jason Soroko
Fellow
Original broadcast date
July 6, 2022
Recent announcements about consumer passwordless authentication build on standards like FIDO and WebAuthn. In this episode we explain device-centric authentication, the FIDO Alliance, and how it all works.
Podcast Transcript
Lightly edited for flow and brevity.
Let’s also tease out what the FIDO2 project is, and I’d like to introduce that by talking about a number of the standards that have fallen out of that – and by falling out I mean have been produced and have been used based on the work that the FIDO Alliance has done. So FIDO is an open industry association. I believe it was created in 2013. So it’s nearly ten years old, Tim. It’s been around a while, and you may have heard of standards such as UAF or Universal Authentication Framework; a U2F, Universal Second Factor; CTAP, Client To Authentication Protocol; and then more recently we’ve heard about WebAuthn also known as the W3C, Web Authentication Protocol.
What’s interesting is that the FIDO2 project was really about saying okay, we’ve got an evolution of these standards through time. These things all kind of build on top of one another, I am definitely not going to go through the whole history of how these things, how these LEGO blocks all kind of connected together, but all those different acronyms I just rhymed off kind of led to this ecosystem now of allowing for device centric authentication using at the heart of it, public key cryptography.
With these announcements recently, Tim, I think we really are getting there. I think in the enterprise world, a lot of the centralized PKI technologies and other authenticators that are out there are – they’re good, and those are really good, and they absolutely have their purposes in controlled environments, but now we’re talking about authenticating for the general public. Authenticating where you don’t necessarily have control or know who your client is going to be in five minutes.
What you first have to have is a user-controlled cryptographic authenticator. We are talking about Smartphone, hardware token, TPM, something containing a TPM, an embedded secure enclave, USB tokens, smart cards, NFC, Smartphones. A modern laptop which probably has a TPM if it’s running Windows, etc., etc. There’s a lot of places to put your secrets, and this is the point. This is the point. And by the way, there is a certification program. If you want to be labeled as FIDO compliant, there is a certification program out there. If you wanted to become a, say, a USB hardware token authenticator vendor, you could go off and build your design and get that certified by FIDO, and then you could say you’re a FIDO complaint authenticator. So that’s interesting. So that is the authenticator. That’s – I like to call it the thing that’s holding the keys, and isn’t it neat, Tim, that the form factors - FIDO choose to have a very vast array of form factors. That’s the one thing about FIDO that I give them a lot of credit for is they were essentially authenticator form factor agnostic, for a lack of a better term. I like that. I really like that because at that heart of it, really is about the cryptographic key pair and what’s that doing for you as a strong authenticator. Who cares where you put it, as long as it complies to, is this thing safe. Is it holding it? Is it holding the keys in a safe manner? And there’s a certain bar that you can’t go below if you want to call yourself FIDO compliant, which is a good thing.
There’s the authenticator, the thing holding the keys. And then there is the WebAuthn relying party. That’s also known as the FIDO2 Server, and so, that server which is sitting out and basically being used by – that is the thing that is being used by the web app developer. The web app developer now will utilize, the actual user agent, which would be a browser alongside a WebAuthn client. Now a WebAuthn client really is just a blob of JavaScript code that is implementing the WebAuthn API. The reason why I’m making this distinction between the browser and the client, which is essentially the code, is that you can actually have on your machine more than one WebAuthn client, Tim. In other words, it’s very important to note, using our typical parlance, you can have more than one identity. In other words, you can register your device to many different websites, not just one. Therefore, there is a separation of the browser, which might be going to all of these websites and the actual client which is registered against specific websites.
There’s something interesting to note here, and this has to do with the history, and that’s why I brought up the history a little bit. Because of the evolution, there’s a lot of backwards compatibility because of some of the older protocols that were used, and so, there are at least a couple of combinations of authenticator protocols. In other words, the original CTAP, used along side UTF for applications that are UTF compliant which is the older protocol, as well as CTAP2, which is a new version of that. WebAuthn can utilize either one of those, but the user experience will be a little bit different. So, that’s something to note, is when you’re using a FIDO authenticator, it really kind of depends a lot on when the web developer built the application, what standards that they chose to be compliant with and your user experience will be, probably not a ton different, but a little different depending on what the developer has chosen.
A big part of that is going to be about how do you exchange your public keys. Because that’s what you have to do. In a managed PKI, it’s done for you. Typically, a good PKI will basically have the public keys registered in a directory. All I gotta do is look you up and if I’m already able to authenticate into the system, I can say, I want to send an e-mail to Tim. I want to encrypt data to Tim. I want to - something with Tim that’s encrypted. I can look your public key because it is available as part of the directory. Terrific. Well how does it work when there is no centralization? Well, it’s kind of like an opt-in, Tim. In other words, you have to say, I want to register this device. In other words, my Mac device to a particular web app, and then you might turn around and say what, I’ve also got this Windows laptop that I also want to register as a device into so I can authenticate into this web application as well.
And that, of course, is the secret behind using asymmetric key pairs.
Or not play at all or, you know, what is it giving you. What is it giving you and what is it not giving you?
What you just touched on is what it is not giving you at all. So, anyway, very, very interesting topic. I’m impressed with how FIDO has put together these building blocks. I think the evolution has been good. I think the implementations have been good enough that big players like Microsoft and Apple and others, have now implemented this and it’s gonna - this is going to be finally the way that mass consumption of true passwordless probably will come about. I’m hoping and crossing my fingers. There’s still a place for really tough world gardens and other forms of authentication. Tim, I think that that’s – teasing all that out could be a set of conversations you and I have.

