And then we end up in the bad situation with actors getting the password from one service can access and all the services that we use, which is pretty bad news for us, right now that we depend on digital services so much. So, so over the years, engineers have been thinking hard, and they were thinking, okay, so passwords are bad, how we can make them safe? Well, we can add multifactor authentication, we can add one time passwords, we can add biometrics, or hardware keys, everything on top of passwords. So now, not only I need to have, not only I need to know my passwords, but now I also need to have my phone to receive an SMS to be available or to check my one time passwords, for example, in a Google authenticator app, or I need to, on top of my passwords, provide my biometrics. And things get skipping, getting more complicated. And the more complicated things are, the most likely users are going to take shortcuts. So every time a service asked us to set up multifactor authentication, most of the time people will hit the remind me later button, or they don't ask me again, but only a few people will actually go through the process of setting up multifactor authentication. And in the case they do that, most people will opt to use SMS because it's the most convenient, though is the less secure option. So clearly, what we are doing is really not working. And we need a new solution. So what is the solution for the future and that identity engineers are talking all about? And it's passwordless, right? So it is time to get rid of passwords, and we need a better solution, we need something completely different. This is the only way we are going to move forward. But what is passwordless, right? Because it's just like a password word. So passwordless is authentication is the process of verifying a software's user's identity with with something other than a password. I mean, yes, passwordless means there's no password, right? I think that's the easy definition. And why do we love passwordless? Because it's more user friendly, right? All these things that I told about passwords have been a headache, and it's also safe. It is safer than passwords. So we should do passwordless whenever we can. But there are multiple ways to do passwordless. There's magic links, that's probably the less secure option. This is when on a service, for example, Slack, you put your email address, and then you receive a link in your email and click it as a link, you're automatically logged in into that service. That's pretty good, as long as your email account is not compromised. And yeah, so it's not the safest options. Then we have social logins, which are great for security. I love social logins, and I try to use them whenever I can or I used to do that. And we get to that in a minute. But social logins allow us to log in with our Google account, with our Apple account, with our Facebook account, and all of these social providers into different services. So they're great, because they are super easy. You're normally already logged in, in one of these accounts on your browser. So whenever you want to access a new service, you just click login with Google, and then you are automatically logged in. So it is great, it is safe. But from a privacy perspective, it's not ideal, because every time you register to one of these services, or every time we log into one of these services, you are giving that information to Google, you're giving that information to Facebook, you're giving that information to whomever your social provider is, and then they are going to use that information to provide you advertisements and who knows what else, right? So as the world is moving into a more privacy focused world, and we are more concerned about our privacy, we are trying to move away from this social login, which has become quite popular in the past few years. Yeah, exactly. Like we have here in the comments, social login, your data is shared, right? And you don't really, once you share your data, you don't really know where it's going to end up. So even though great, and much safer than MagicLink and Passwords, you're compromising your own data to these companies that you have to trust. So what other options do we have? Well, the other option is WebOfN. And WebOfN is a W3C recommendation for defining an API that lives in browsers for the creation of strong, attested, scoped, public key base credentials. So it's basically a way of using the hardware that you have on your laptops, and private public key cryptography to provide a strong method of authentication. There is a QR code on the screen that points to the WebOfN.me website. If you follow that website, if you scan the QR code, you'll find that there's a lot of information about what WebOfN is, how it works, how it's implemented in the in the browser. And what I love about that website is there's a flow where you can trigger the workflow. And you can see how the process from when it starts until the end is reflected between the client and the server, and how all the information is being shared. So it's a fantastic resource, WebOfN.me. I recommend that you check that out. I'm going to also post it here on the chat, if I can. So, WebOfN.me. There we go. So, okay, so to summarize, so WebOfN is basically two things happening in two different places. So you have a process to register a new user, and you have a process to authenticate a new user. And the process will happen in both the client side and the server side. And now we're going to see the flows of these two happening. So on the user side, we have the chart here that reflects the user registration. So we have this complicated API that I copy and pasted here for the reference. And then on the right side, we have the flow, the authorization flow. So it is quite complicated. It involves having a user, a user agent, which is normally a browser or web applications, and relying party. A reliant party is normally a server. It could be one of the social providers like Google, Facebook, Apple, etc. Well, not Facebook. They don't support this, but Google, Apple. But it can be a reliant party, which is a service like Auth0, that provides authentications for building third party applications. And it also requires an authenticator. An authenticator is normally a hardware device. It could be your modern laptop. It could be your phone using Face ID or Touch ID, or the equivalent on Android for the fingerprint scan, or it can be a YubiKey. And I have a YubiKey here just to show you what that looks like. But yeah, so this is a YubiKey, it's a USB-C key that you can connect to your laptop. And this key internally has a private key generator. And every time we push the button there on the registration flow, it will generate a new private, public key. And then we are going to use that to log into websites. So this is the best way to secure your accounts, because it requires you to have physical access to the key.
Comments