Comment by danpalmer
8 days ago
The very last thing, past the conclusion, the very last footnote is:
> Addendum: I feel I have made a compelling case for passkeys in this article. And I haven’t even pointed out one of their best security features: they are (in most use cases) domain-bound, meaning they are resistant to what are called Man-In-The-Middle attacks.
"I made a compelling case... but didn't point out the most important security feature that motivated passkeys in the first place"
Honestly I don't think this post did make a compelling case. There's a lot of assuming bad faith on the part of the FIDO alliance, while completely missing that preventing MITM attacks was a key design feature. The FIDO alliance members deal with stolen accounts all the time, and passkeys largely solve that. Stealing accounts is almost always done with phishing or social engineering, and passkeys solve the former and reduce the surface for the latter.
I sort of started skimming when the article was saying industry solved the problem with text messages and TOTP. I think there are several arguable problems with Passkeys as implemented, but to argue TOTP is equivalent is going to leave lots of people vulnerable.
The protections against MITM you mentioned is probably the biggest one, but the other one in the back of my mind is TOTP is a shared secret. So a compromise of the server side allows impersonation of users undetected, which can be a big problem. Maybe I'm over reacting because no company has ever lost a copy of it's database and they're all super secure. But, imagine trying to argue as a user I didn't do a thing when there is an audit log saying we challenged the user for TOTP and it was provided, was definitely the users fault.
TOTP is this decade's "just have a better password", and we all know how well that went before.
I think it's rather this millenium's "just check the domain really carefully". You can't choose a weak TOTP, write it on a post it or share TOTPs on multiple websites. The main (only?) failure mode is that you type it in an attacker-controlled input.
> solved the problem with text messages
Especially considering how easy it still is to do a SIM swap.
Highly economy specific. Ease varies by nation state. Social engineering attacks in Australia are far LESS common than they used to be and I believe other economies in Asia and Europe all have less than the USA.
If you aren't talking from a US perspective, where are you that SIM swap is a low bar?
1 reply →
> Especially considering how easy it still is to do a SIM swap.
Heh.
Several months ago, I found myself in need of a new phone. I even had the means to do an orderly transition, with the old one still in hand and mostly working.
My mobile provider was an MVNO that was also my home ISP. I had enabled "enhanced security" to prevent ev0l hackerz from swapping my SIM without authorization. It turns out that this mode is so secure that it prevented me and the support staff from a normal upgrade procedure.
There were various glitches along the way, and a conversation with certain LLMs indicated that the SIM->eSIM disparity was also causing trouble, and with the online system's rejection of authentication I decided it was expedient to walk into their nearby storefront location.
It turns out that the salespeople in the storefronts are not really empowered in any technical way, except they were quite capable of changing my password without any reason, and wasting my time, so leaving the store empty-handed after mind games from three haughty female STEM dropouts was rather infuriating.
The process eventually succeeded after giving it a little time, space, and grace, but it looks like I'm leaving "enhanced security" disabled if it's so customer-hostile.
2 replies →
It’s not just man in the middle.
If the credentials get stolen from a website database, they’re useless for every other website on earth. No matter how poorly they’re stored, it’s just a public key and is not useful. Hell, they can get code executing on the webserver that collects full login information, and it’s not useful.
Passwords always require full transmission. Hashing for storage requires a proper implementation, which we’ve seen does not happen. 100% of the time. There’s a reason hackers are still stealing passwords from websites after three decades.
Passkeys solve that. Nothing else available to the average user does.
>Passwords always require full transmission.
Into a hash algorithm not to a remote server.
>Nothing else available to the average user does.
Literally every person could use a unique password for each login.
We have been trying to get users to use good passwords since passwords were invented, and still haven't managed to get them to use unique passwords. It clearly doesn't work.
> Into a hash algorithm not to a remote server.
You know what MITM is, yes? There are a ton of points between you and that hash algorithm, and any single one immediately and permanently compromises you.
Meanwhile passkeys are completely invulnerable.
1 reply →
Could.
3 replies →
>There's a lot of assuming bad faith on the part of the FIDO alliance
Yeah, it's just a bunch of "big company bad!"
Yes, Google and Twitter and Yahoo are just trying to get your data and sell ads, but I fail to see how Passkeys furthers that specific goal. Even if these companies have bad motivations in certain parts of their business, they all have an incentive to make accounts more secure (to reduce fraud) and improve the user experience (to increase engagement/happiness)
I noticed that too. This also seems like a bit of an insult to the intelligence level of the average person. It’s precisely because attestation is a nuclear weapon that I doubt one of the big three will try it outside of their own specialized credentials. If someone tries to change ecosystems and finds that they’re going to have to reset all their passkeys it’s not going to take long for them to tell all their friends that passkeys suck and not to use them. This instantly kills adoption.
Furthermore, the rest of us are the people at the companies implementing passkeys. I did an implementation recently, didn’t require attestation, and can’t imagine why I ever would.
If we’re at this level of trust for all of FIDO, why aren’t we at legislative centers doing something much more dramatic about it instead of navel gazing about how we’re the smart ones who have recognized FIDO’s next big trick? How is attestation the problem here?
If the spec doesn’t guarantee portability, they’ll boil the frog to make sure you don’t get any.
> If someone tries to change ecosystems and finds that they’re going to have to reset all their passkeys it’s not going to take long for them to tell all their friends that passkeys suck and not to use them.
And their friends won’t care until they’re personally affected.
Why is your grandpa or fictional billions users being MITM’d?
Passkeys are an end run on general purpose hardware largely under your own control, which is a much bigger issue in scale than dealing with customers who can’t access the services they pay for because of some byzantine security or know your customer laws/procedures.
There is a reason that banks send increasingly strident text messages that they will never ask for this code.
And then undermine that effort by actually asking for that code anyway.
2 replies →
For their bank accounts, search tech support scam on youtube to see how that goes. Btw passkeys do nothing to stop this, they probably make it easier since grandpa doesn't have to search for a password or unlock a password manager to send his money to the scammers.
Convincing someone to log in to their bank and send you money is strictly harder than convincing someone to log in to their bank.
9 replies →
Why are they being MITM'd? Because some people want money and don't mind breaking laws.
Seems to me that the institutions of the FIDO alliance would have better luck chasing these people that break laws.
Instead we’re increasingly locked out of devices we buy and told/mandated this is how you’ll use them.
3 replies →
PKI already prevents man in the middle attacks.
Users constantly fall for website impersonation, this can be solved by your password manager it just has to check the host and the certificate of the login page.
Now browsers don't let password managers do that, I wonder why.
But lets say you don't like the fact that passwords are sent over the wire. I get that I don't like that either. You could just take a random token and have an hmac signature on all your requests, for most cryptographic hashing functions that would probably be quantum secure as well.
But lets just say you don't want to have a shared secret because you know servers get hacked all the time. Totally legit, I like the way you think, asymmetric cryptography it is.
How could we possibly do it? Like ssh with pki on top.
The spec could be literally these 25 words:
Do what ssh does but request a PKI signed certificate instead of a key signature from the server and validate it against your known CAs.
Passkeys are the consumer implementation of PKI to solve these problems.
There's functionally no alternative for consumer logins, and certainly not one that doesn't require learning what PKI is. "like SSH with PKI" is a bit "draw the rest of the owl".
PKI is already in place for domain verification. SSh with PKI is exactly what it sounds like, "passkeys" without attestation, hardware, corporate bullshit.
4 replies →
> this can be solved by your password manager it just has to check the host and the certificate of the login page
Which is exactly what Passkeys does. And it also has built-in functionality to prevent any kind of "Oops! We changed our login method, just ignore the warning and retrieve it manually." social engineering, which a user would often genuinely see when random services move their login page to a different url.
Then why do we need all the stuff about attestation and data bits?
Because it prevents an attacker from stealing the password. It's both extremely hard to "steal" a passkey, and to phish a login from one. Neither of those are true for passwords, and TOTP only partially solves the stealing part.
Passkeys aren't solving for security nerds who like portability and have 30 character long passwords, they're solving for grandpa who will happily read their bank's 2FA SMS to the "bank" over the phone. The FIDO alliance has literally billions more of these users than they do users who know what hardware attestation is and how it impacts their auth workflows.
This level of security is perfectly achievable with an unattested passkey.
And Grandpa will have fun if he has to juggle 20 passkeys with different security requirements on his devices.
1 reply →
We don't need attestation and most of the data bits. Apple consumer devices don't support attestation. Only Apple enterprise managed devices do. It's a paranoia tool for big enterprises with strict device management requirements. Apple has a lot of good reasons to believe attestation is a privacy violation for consumers and seems likely to keep up the good fight in making sure it remains an enterprise-only tool.
So companies can use passkeys and set policies around what hardware they're stored on. IMHO, not particularly useful or desirable for everyday Internet users, but really nice if you have specific requirements.
So that our device vendors can say:
> I attest that this user's advertising ID is 12345, and for a fee I'll tell you all about what they've been up to.
Think of how much money they're just leaving on the table by letting us authenticate in ways that don't create such a side channel.
I think the real issue is that it's all about tracking. It's another level of spying on people, data being mined, people being locked in somehow someway so someone somewhere else can have an increased level of precision in some floating point number in some algorithm that is being used to grind the joy out of human existence in exchange for money being moved from one incredibly rich consortium to another, the animus of cpr on a dead god for a dying race.
> Stealing accounts is almost always done with phishing or social engineering
This only becomes real if you don't have e-mail fallback access to your account. Something which seems like a very bad idea.