News for hackers. Stuff that matters.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by hn_throwaway_99 on Friday August 20, 2021 @03:56PM (#28250673)
> Beating 2FA is almost always SMS hijacking

That's most definitely not true, as someone who works in this space. Plain old phishing is much more common, where the hacker tricks a user into entering their code into a malicious website.

To echo OP, this is why it's important to support non-phishable types of 2FA.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by baxtr on Friday August 20, 2021 @04:20PM (#28250946)
Could you describe the types that are non-phishable?
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by tialaramex on Friday August 20, 2021 @04:39PM (#28251142)
WebAuthn (or its predecessor U2F but that's obsolete, so in green field deployments do WebAuthn) is the only practical non-phishable second factor for ordinary users on the web.

You can do this two ways, one of which will make more sense for your web site:

1. PCs/ laptops/ etc. can use little USB hardware devices, from outfits like Yubico, the word to Google or type into your preferred hardware source is "FIDO" although if you have spare cash and like cool toys FIDO2 is a more capable second generation of the technology.

In this situation the FIDO authenticator is your second factor. Your web browser takes responsibility for telling this authenticator which web site you're looking at, and it's just a dumb machine, so from its point of view obviously refunds-my-bank.example isn't mybank.example because those strings are different. The FIDO authenticator just does whatever the browser tells it.

This could be attacked by specialist malware, but it's tricky because the FIDO authenticator wants you to take physical action to trigger authentication, so the malware needs to not only tell the authenticator "Yeah, I'm totally er, Internet Explorer, and I need you to authenticate for mybank.example" but also persuade you to press the button or whatever to make it happen.

Or I guess bad guys can be like "please FedEx your FIDO dongle to us" if people really are that dumb, but then no need for phishing, just call people "Hey, I'm the IRS, send me $5000 in unmarked bills, in a FedEx box marked er cat food for some reason that totally makes sense, to a residential address in a different state, yeah".

2. High end smartphones, the sort with a fingerprint reader, can do the same exact trick using that fingerprint reader (I think some iPhones do facial recognition instead?) to do WebAuthn instead for their onboard browser.

In this case the smartphone is in charge of everything, it knows which web site this really is, it knows if that's really your fingerprint or not (the fingerprint never leaves your device) and it decides whether to send credentials.

For machines it's much easier to do a secure transaction, but machines don't fall for a lot of phishing scams.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by jrockway on Friday August 20, 2021 @05:23PM (#28251561)
> PCs/ laptops/ etc. can use little USB hardware devices, from outfits like Yubico

This is actually built into most computers now -- Windows Hello, and Apple has something similar. Websites can check the attestation response to specifically block those, however. (Seems like Github allows it, and I've written code that allows it.)

> I think some iPhones do facial recognition instead?

Yup, they use whatever you use to unlock your phone. So if it's a FaceID phone, you can use FaceID to log in. You can also hold up your NFC Yubikey to the back of the phone and use that, even if you registered the key over USB on a PC! It's really, really good.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by munchbunny on Friday August 20, 2021 @08:03PM (#28252769)
> Websites can check the attestation response to specifically block those, however. (Seems like Github allows it, and I've written code that allows it.)

For the client side of things WebAuthn contains a standard option to block/allow "platform" authenticators, which I empirically know includes Windows Hello, and I'm not sure about Apple's or other equivalents. Of course you'd still want to verify the attestation on the server side.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by tialaramex on Saturday August 21, 2021 @02:48AM (#28254832)
> Of course you'd still want to verify the attestation on the server side.

You almost certainly do not want to do this for a public web site. If you insist on attestation right thinking people will hit "No" and block the site.

Think about it, what is attestation doing for you in this scenario? You're saying that you don't trust your users/ customers to pick the authentication methods that work for them, and instead you're going to insist on methods you prefer. Do you also choose each user's passwords? "No, sorry, that resembles an English word, we have selected the password 48'J3X$q)M3NBfr_2 for you instead" ?

In a corporate environment this could make sense. If you issue every employee a $100 FooCorp Security Key with their photo engraved on it, maybe you decide to require attestation that the keys used are FooCorp brand keys to prevent employees adding some off-brand Yubico product. I don't know whether that's a good idea, but it's no crazier than lots of corporate policies, however doing this for a public site makes no sense, please just skip attestation.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by franga2000 on Saturday August 21, 2021 @03:28AM (#28254999)
Yes! Any developer that forces the user to use a specific type of device needs to be smacked around a bit (or more accurately, the manager that told them to do it that way). Banks are notorious for this, since their stupid 2FA apps will do insane things like scan your app list for common root-only apps and non-vendor ROMs (even with no root). Some even have a vendor whitelist that obscure brands (like OnePlus used to be) aren't on and in both cases, their only response is "well just factory reset your phone" or "just buy a different device". I've switched banks twice because of this insanity.

And there's no reason to do this! It's not like they're liable if I get my money stolen. If they prove 2FA was used and the security issue was on my device, not their app/server, it's my fault! As you said, if you're a custodian of something sensitive (an account, documents, money..), not the owner of it, it makes sense that the owner shouldd be able to dictate how you should protect it (like if you're accessing confidential company documents using 2FA). But in any other case, the service provider should never be allowed to force you to use a certain type of authentication device.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by laurent92 on Friday August 20, 2021 @05:54PM (#28251842)
Can you hold your NFC Yubikey to the back of an iPhone? I thought Apple didn’t do NFC, appart from ApplePay?
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by xoa on Friday August 20, 2021 @06:04PM (#28251926)
Your recollection was correct but is now a few years out of date. As is typical Apple they intro'd it (in 2017 IIRC) as a 1st party dogfood item, started read only. Then in 2019 with iOS 13 allowing far more power including full range of two way authentication capability. Yubico blogged about it [0] after the announcement, and Apple's HIG on use of NFC [1] is also available. Also, Safari itself needed to have support added, but that too is now available.

So old workarounds like using the lightning port are no longer necessary, though AFAIK are still supported. It's nice to have it there as well since to really be most effective every platform a user has needs to support hardware 2FA. If something still needs SMS or OTP or whatever that becomes the weakest link.

----

0: https://www.yubico.com/blog/yubico-ios-authentication-expand...

1: https://developer.apple.com/design/human-interface-guideline...

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by nimih on Friday August 20, 2021 @05:58PM (#28251874)
My NFC Yubikey works fine with my iPhone 8.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by djhworld on Saturday August 21, 2021 @09:41AM (#28256949)
It's built into Apple devices yeah (touch ID) but this is only supported in Chrome and Safari.

Firefox does NOT support Touch ID for webauthn

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by notanzaiiswear on Saturday August 21, 2021 @03:11AM (#28254935)
I can't make sense of your explanation.

In 1) I don't think my YubiKey knows anything about the sites I use it for? It just creates keys, so a phishing site could presumably still steal the key created by YubiKey and pass it on to the real site.

2) My fingerprints definitely don't know anything about web sites. So WebAuthn being unphishable has nothing to do with fingerprints. It is only incidental that some devices decide to unlock the functionality with fingerprints.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by Thorrez on Saturday August 21, 2021 @03:25AM (#28254984)
1) The browser tells the Yubikey: "sign this: 'logging in to site.com at 12:34PM'". The yubikey signs it and gives the signature to the browser. The browser gets the signature and passes it on to the site. attacker.com will get a signature over 'logging in to attacker.com at 12:34PM'. That signature will not allow the attacker to log in to facebook.com .

2) Correct. In fact you don't even need a hardware token. You can do the whole thing in software. It could even theoretically be built right into your browser (but you would have the problem of logging in to the account on a different device or different browser). The fingerprint protects against physically stolen devices, and slightly against malware on your computer.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by tialaramex on Saturday August 21, 2021 @05:34AM (#28255552)
> The browser tells the Yubikey: "sign this: 'logging in to site.com at 12:34PM'"

It's even a little bit cleverer than that. During enrollment (to say, Facebook.com) your Yubikey provides a random looking "identifier" to Facebook.com, and it promises that it can sign future logins if Facebook.com shows it the same identifier. The identifier is bound to the DNS name!

So a phishing site has a few choices, none of which help the bad guys even a tiny bit:

* It claims to be Facebook.com, but it isn't, so the web browser just doesn't even show the UI for Security Keys. There's a behind the scenes Javascript error basically, "What? You aren't Facebook.com fool".

* It admits its real DNS name, and makes up a random identifier. The browser gives the random identifier and the real DNS name to your Yubikey. But, it has never heard of this combination, so, it blanks the entire authentication figuring this must be for a different Security Key plugged in on another port or something.

* It gets that identifier code for your login from Facebook, and then admits its real name to your browser and provides the identifier taken from Facebook. This still doesn't match, and the Yubikey again assumes it must be for some other Security Key on your system.

Behind the scenes this is actually done with AEAD cryptography, maybe with AES keys baked inside your Yubikey. The "identifier" is actually something like a private key (likely elliptic curve parameters) that has been encrypted using an onboard secret AES key in an AEAD mode, with the DNS name (well, a hash derived from it) as a factor.

As a result, your Yubikey can't even decrypt the "identifier" correctly in order to log you in without the matching DNS name. This means goofs in the implementation fail safe - e.g. one brand of cheap Security Keys can fail to sign in once every 256 tries on average due to a logic bug. But they'd never sign in where they shouldn't because of mathematics, to do that they'd need to "accidentally" completely break the mathematical foundations of the cryptography!

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by stavros on Saturday August 21, 2021 @04:43AM (#28255310)
I'm still waiting for password managers to add soft-WebAuthn support, so I can log in using my password manager (and no physical keys or passwords). That would make password managers ten times better.

Then again, it doesn't have to be the password manager that does this, but it'd be nice if it were integrated.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by gingerlime on Saturday August 21, 2021 @06:04AM (#28255692)
yes exactly! Bitwarden supports TOTP nicely already. And I think you can authenticate to it with FIDO2 apparently. It would be awesome if it could do software-based WebAuthN but I don’t think it does…
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by stavros on Saturday August 21, 2021 @06:08AM (#28255711)
It doesn't, unfortunately. I've opened an issue on their forum but nothing yet. Not many websites support WebAuthn (let alone passwordless), so I guess password manager vendors aren't in a hurry to implement it.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by kerng on Saturday August 21, 2021 @01:46PM (#28258952)
At high level imagine it like this:

The browser will only give access to the Yubikey token for a specific domain name - so if the attacker phishes for examle.org, rather then example.org, then there is just no tokens (signing keys) available the Yubikey could use and give to the browser.

In the early days WebUSB in Chrome had bugs that allowed to bypass that same origin check but that has been fixed 3 years ago.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by notanzaiiswear on Sunday August 22, 2021 @03:00PM (#28268420)
I've been using the browser's password manager as protection against phishing, as the password manager won't fill in passwords on the wrong site. So I guess it works in a similar way with the Yubikey? OK.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by kerng on Sunday August 22, 2021 @03:41PM (#28268801)
At a very very high level yes - but the reason you want to use tokens is that you get a second factor and you have better entropy and created tokens are time based (password is valid forever).
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by aj3 on Friday August 20, 2021 @05:24PM (#28251573)
And of course client side certificates. It's a pity they are rarely available as an option on public websites.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by josephcsible on Friday August 20, 2021 @11:32PM (#28253932)
The UX for client certificates is horrific, especially if you choose the more secure approach of storing them on a smart card.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by u801e on Saturday August 21, 2021 @01:43AM (#28254534)
It certainly would make sense to improve the UX as opposed to coming up with different implementations.

webauthn basically forces use of HTTP as the application level protocol, whereas a client side TLS certificate will work regardless of which application protocol is in use.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by tialaramex on Saturday August 21, 2021 @02:57AM (#28254867)
Client certificates, as the name might hint, certify your identity. But a big thrust of technologies like U2F and WebAuthn was not to do that, for privacy reasons.

My FIDO authenticator has no idea who I am, no opinion who I am, so you can't use it to do identity correlation. It's only useful for the very specific problem we wanted to solve "Are you still you?" "Yes".

In contrast a client certificate for u801e is enduring proof you're u801e and signatures the client cert makes during login will be durable proof that u801e logged in. PornHub can show Facebook and GitHub that the same user is using their site. So that's a privacy hole you can drive a truck through.

There are numerous practical problems with trying to leverage TLS client certificates for this work, but that's a big privacy problem.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by u801e on Saturday August 21, 2021 @07:42AM (#28256161)
> In contrast a client certificate for u801e is enduring proof you're u801e and signatures the client cert makes during login will be durable proof that u801e logged in. PornHub can show Facebook and GitHub that the same user is using their site. So that's a privacy hole you can drive a truck through.

Client certificates can certainly be separated based on different domains. So, there would be no way to really determine my identity across multiple websites if I sent each one a different CSR and they each gave me different client certificates. The browser should only send the client side TLS certificate that's relevant to the server it's trying to connect to via TLS.

The main purpose of the client side TLS certificate is to verify the identity of the client on the server side, just as a server side TLS certificate signed by a trusted CA allows the client to verify the identity of the server. In the case of the client side TLS certificate, it doesn't have to be signed by an outside entity. There could be an internal CA the server uses to sign those CSRs and when the client connects, the server need only to verify that the client cert presented has a valid internal CA signature.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by ufmace on Saturday August 21, 2021 @11:17AM (#28257664)
There's no reason why it has to be horrific. I'd like to see someone make a decent attempt at making client TLS certs actually work well, including not using the same cert for multiple domains by default. Other problem is, I don't think many web server frameworks have support for them either.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by AlexCoventry on Friday August 20, 2021 @09:58PM (#28253389)
> if you have spare cash and like cool toys FIDO2 is a more capable second generation of the technology.

Why would you want passwordless authentication? Isn't the whole point of 2FA that you have to have something and you have to know something?

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by tialaramex on Saturday August 21, 2021 @06:18AM (#28255759)
The cheapest available FIDO2 option is PIN-based so your PIN (actually any password, it doesn't need to be like a bank PIN) is the something you know, and the FIDO2 authenticator is something you have, two factors. You don't need to pick a PIN to have conventional "second factor" working but if you want a usernameless authentication you can have that by choosing a PIN.

What's different compared to having a web site password? The web site knows the password, but they don't know your PIN. This means suddenly relatively weak human memorable passwords are good enough, because bad guys can't break in and steal 40 million of them in seconds or leverage them across multiple sites, the PIN is useless without the authenticator.

But other FIDO2 authenticators can do fingerprints, making it something you are (a person with that fingerprint) and something you have (the authenticator) so two factors again.

Usernameless (rather than passwordless) is the differentiator. You can literally have the sign-in flow be a "Sign In" button and the user does the thing (finger on reader, types in PIN, or maybe looks at camera) and they're authenticated. No step where you type in an email address or a username. This has a privacy cost because it means the authenticator knows in some sense who you are, but it is super convenient if that's what you're all about - while being much more secure than today's username + password dance.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by stavros on Saturday August 21, 2021 @04:45AM (#28255321)
The FIDO2 key is usually protected by a PIN that wipes the key after a few wrong attempts, so it combines the two itself.

Besides, there's nothing that dictates how secure the key should be. You could use your hardware cryptocurrency wallet for this, which is probably much more secure and convenient than the average Yubikey (you can duplicate it with the seed phrase).

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by Thorrez on Saturday August 21, 2021 @08:20PM (#28261825)
You can duplicate the Yubikey or the hardware cryptocurrency wallet?

Wouldn't the ability to duplicate it make it weaker?

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by stavros on Saturday August 21, 2021 @08:22PM (#28261838)
You can duplicate the wallet. It would make it weaker, but it's more secure in that they usually have hardware keypads for you to enter your PIN on.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by josephcsible on Friday August 20, 2021 @11:31PM (#28253929)
Some people care more about convenience than security. And for everyone else, it doesn't have to be passwordless. You can use a regular password and a FIDO authenticator.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by dmoy on Friday August 20, 2021 @04:23PM (#28250976)
So, popping up three comments, this explains which types of 2FA are not phisable:

> I wish he'd mention what kind of 2FA. The reason you _really_ should use U2F/WebAuthn is because it does origin binding which, unlike entering a TOTP, a code from your hardware token/authenticator app on your phone/SMS/etc is not phishable, i.e. you can't enter it by accident on accounts.google.com.totallylegit.ru and then have them enter it on real accounts.google.com. This is so because the U2F/WebAuthn security key signs a request, sent by your browser, which embeds the requesting page's domain, so a signature on attacker.com will not pass victim.com's verification checks, whereas a code from your authentication app is trivially copied.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by anamexis on Friday August 20, 2021 @04:24PM (#28250987)
The first comment in this thread describes why U2F is unphishable.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by fossuser on Friday August 20, 2021 @04:23PM (#28250972)
Yubikey is one - it requires the user touch a hardware device which signs something locally that I think is never sent? I don’t know enough of the implementation specifics, but it’s supposed to guard against this kind of thing.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by laggyluke on Friday August 20, 2021 @04:44PM (#28251189)
Yubikey is actually pretty "phishable", at least in the OTP mode. It will happily put the token into a phishing website (or literally anywhere else) as soon as you touch it.

It's also good to know that Yubikey's OTP tokens don't expire based on time, but based on a hidden counter that gets incremented with every issued token.

So if you've accidentally touched your Yubikey and leaked the token publicly, you just have to log out and then log back in using your Yubikey - that action will invalidate all tokens issued before this point.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by greggyb on Friday August 20, 2021 @05:11PM (#28251450)
Yubikeys (or at least some models) can be configured with multiple different OTP implementations. Yubico's own OTP implementation behaves as you have described. It is not a guarantee that generating an OTP from a Yubikey means you have generated a Yubico OTP.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by klodolph on Friday August 20, 2021 @04:33PM (#28251082)
YubiKey uses U2F and FIDO2/WebAuthn. The YubiKey also does a lot of other things, depending on which YubiKey you have... but if you want 2FA on random websites, those are the most likely protocols (used for GitHub and the like).

The basic U2F + FIDO2/WebAuthn is the least expensive model, around US$25. These days it works seamlessly on Chrome, Firefox, and Safari.

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by 1024core on Friday August 20, 2021 @05:12PM (#28251454)
What happens if the Yubikey goes bad? I use one for work, and the last 2 keys I had developed some hardware issues, and stopped responding, so I had to get a new one.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by rob-olmos on Friday August 20, 2021 @05:51PM (#28251823)
The recommendation is to have at least one backup key.

There's also a WebAuthn extension in the works to at least make it easier to maintain a backup key by not having to pull it out of the safe every time you register MFA with a new service:

https://www.yubico.com/blog/yubico-proposes-webauthn-protoco...

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by shawnz on Saturday August 21, 2021 @09:02AM (#28256676)
I really wish I could find a password manager which supports WebAuthn, and can also be unlocked with WebAuthn, so that only one secret needs to be replaced in such a situation.
Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by Flatcircle on Friday August 20, 2021 @06:02PM (#28251907)
I wondered about this in regards to Crypto and NFT's in the digital wallet space. It seems like Metamask with a ledger wallet is stadard, but I have a theory that if you're not sophisticated and you get into Crypto/NFT's, it may be safer to just use Coinbase Wallet, as it is less popular target than matamask and you're able to leverage Coinbase's ongoing security updates. and if you're not sophisticated, you're just as likely to lose your stuff via user error with a hard wallet set up.

Just don't click on giveaways and never enter your secret code

Re:Facebook hacker beat my 2FA, bricked my Oculus, and hit t... by ruipgil on Friday August 20, 2021 @07:39PM (#28252612)
How’s it any relevant?