News for hackers. Stuff that matters.
Re:Passkeys now support external providers by ljlolel on Tuesday June 06, 2023 @05:25AM (#36210231)
The last one is a problem for a lot of use cases. Lots of sites have different domains (also for example when HBO max renamed to max).

Plaid also relies on entering bank passwords on neobank sites and is widely used.

Re:Passkeys now support external providers by ElFitz on Tuesday June 06, 2023 @05:40AM (#36210330)
I’ve never understood Plaid. Given what they do, they can’t possibly encrypt the credentials they’re given, let alone hash them, can they?

And considering how most banks are set up, we are talking about the user’s only set of credentials. Which have the user’s permissions.

Then there are all these fintech startups saying that they’re secure because they use Plaid to access all your financial life, all to provide you with centralised analytics or supposed financial advice.

Sure it’s probably (one can hope) more secure than every single one of them rolling out their own hacked together equivalent. But still.

Am I missing something?

Re:Passkeys now support external providers by masklinn on Tuesday June 06, 2023 @05:47AM (#36210378)
I don’t think you are, plaid is a horrible and completely insecure work around banks not providing programmatic access.

I’m not sure how it even works with second factors (I’ve never looked).

Re:Passkeys now support external providers by squeaky-clean on Tuesday June 06, 2023 @06:05AM (#36210501)
If you have 2 factor enabled for each login you get told your account settings are incompatible with Plaid and have to disable 2fah. If it's only enabled for first time logins on a new browser/client Plaid ask you for the code.

https://support-my.plaid.com/hc/en-us/articles/9098915502999...

I don't know for sure how they do it, but it must just be a thousand custom forms and browser automations for each bank they support. And have to be updated whenever the bank updates.

Re:Passkeys now support external providers by masklinn on Tuesday June 06, 2023 @07:07AM (#36210903)
As far as I know that’s pretty much what it is yes, a bunch of per-bank scraping systems, which get updated when the bank decides to switch things up.

IIRC Yodlee and Mint do (did?) about the same thing, for banks without a formal API.

Re:Passkeys now support external providers by WorldMaker on Tuesday June 06, 2023 @01:52PM (#36216577)
From my understanding in recent years Mint uses a lot more of the Quicken/QuickBooks semi-formal APIs when formal APIs don't exist. My understanding is that is one of the few, biggest benefits of Mint being bought by Intuit because that 200-pound gorilla has always had a surprising number of special read only APIs and export dump tools from even the quirkiest, smallest banks because of how ubiquitous their tax software is (and how many users would rebel if they didn't have easy access in Quicken or QuickBooks).
Re:Passkeys now support external providers by TheNewsIsHere on Tuesday June 06, 2023 @10:08AM (#36213022)
This is one of my (numerous) top complaints about Plaid. From the start they’ve been more about working against than working with banks, and that’s sort of obvious still today.

My credit union doesn’t give a flying fuck about Plaid and it’s a constant cat and mouse game that amuses me to watch. My credit union doesn’t have a path to online banking without per-session MFA.

I think banks should be required to provide a user-opt-in OAuth API for read-only access, but not so that companies like Plaid can pilfer your data.

Re:Passkeys now support external providers by cco on Tuesday June 06, 2023 @04:15PM (#36218525)
> From the start they’ve been more about working against than working with banks... At the very beginning sure, but very quickly Plaid built out a team to try and work with banks. Banks were the biggest roadblock to OAuth, most banks have (had) zero appetite to provide a good experience for users to delegate programmatic access to their own user data. Banks see user financial data as their own and _not_ belonging to their users (as it legally does).

However Plaid has made in-roads at many large institutions, and now supports OAuth, or OAuth-like, access at all (nearly all?) major US financial institutions.

Plaid never liked working against banks, that just made everything worse for everybody involved.

> My credit union doesn’t have a path to online banking without per-session MFA. This obviously kills async products at Plaid, like continuous transaction data, but doesn't block sync products like Auth (account and routing data).

In fact, Plaid made a huge push to increase the amount of MFA encountered on their platform. When banks or credit unions didn't offer MFA, or didn't allow users to enforce MFA on every login, Plaid would attempt to force it through a variety of mechanisms to ensure a bad actor would encounter MFA on Plaid even if the bank would otherwise let them through their actual website.

Re:Passkeys now support external providers by squeaky-clean on Tuesday June 06, 2023 @06:01AM (#36210468)
If your bank doesn't use something like OAuth they do store your login credentials. If your bank does use OAuth or similar Plaid still has to store the access token, which hopefully your bank has given a read-only scope.

They can definitely encrypt the credentials, they just also have to make it simple for their backend to decrypt it when they need access to your bank, which defeats a lot of the security there. (It's still better than just storing it in plaintext).

https://support-my.plaid.com/hc/en-us/articles/4410324401047...

> In other cases, when you link a financial institution to an app via Plaid, you provide your login credentials to us. We store those credentials and use them to collect the data to power the services you’ve chosen and, when requested, securely share it with the app you’re using and establish a secure connection that you control. We then help keep your data safe and private with best-in-class encryption protocols.

Re:Passkeys now support external providers by gjulianm on Tuesday June 06, 2023 @05:37AM (#36210310)
AFAIK, passkeys aren't really linked to a domain. It's old-school public-key verification, the server stores your public key and uses it to verify the signature of a challenge they send to your device on login. As long as the different domains/apps can share the public key you should be able to login.

And for things like Plaid, I think banks are moving towards OAuth-style permissions, where you login to your bank and authorize the connection. Under the hood, Plaid or other app can connect to the bank with limited permissions using API authorization keys. It's a different problem, I think.

Re:Passkeys now support external providers by tialaramex on Tuesday June 06, 2023 @06:11AM (#36210535)
> AFAIK, passkeys aren't really linked to a domain. It's old-school public-key verification, the server stores your public key and uses it to verify the signature of a challenge they send to your device on login. As long as the different domains/apps can share the public key you should be able to login.

In principle the fancier systems with a user interface could add a feature where you can change the DNS names associated with a key it's storing. That sounds like a monumental pain in the backside, and of course the primary consequence would be it increases phishing because now your users can be tricked into allowing it - but sure, they could do that.

For simpler devices like a Yubico Security Key, there is no such interface, they aren't storing any keys so there's no way to make such an association. The keys are bound to the DNS name and are actually stored (encrypted) by the sites you're actually authenticating to. So without a matching DNS name they're intentionally just useless nonsense.

Re:Passkeys now support external providers by vladvasiliu on Tuesday June 06, 2023 @06:47AM (#36210764)
I may be wrong here, but since the yubikey and similar don't actually store anything site-specific, it means they just respond to a challenge, right? What they prove is that they own a specific private key.

So if the website bundles its domain in the challenge, it can make sure that the client signed the challenge for itself, and the client can verify that it signs the challenge for the current domain.

So now, if the service's domain were to change, it would presumably be aware of it and incorporate it in the new challenge, which the client would sign, since it's browsing the correct domain, with the same private key used before.

Is this not how it works?

Re:Passkeys now support external providers by heavyset_go on Tuesday June 06, 2023 @07:28AM (#36211073)
FIDO2 allows for things like resident keys, which the Yubikey can only hold so many of.

The Yubikey can act in HMAC challenge mode, though, but that's not the mode used on the web.

Re:Passkeys now support external providers by TheNewsIsHere on Tuesday June 06, 2023 @10:03AM (#36212941)
Most web based services don’t seem to be using the discoverable credentials either. So far only my Apple ID and Azure AD accounts are utilizing those.
Re:Passkeys now support external providers by tialaramex on Tuesday June 06, 2023 @08:33AM (#36211657)
Nope, but I can see why you'd expect that because the actual design is very clever and so it's not obvious how this could work.

What's inside the cheapest authenticators isn't a private key, after all they present a unique random public key for every single enrolment, so that couldn't work if they held a single private key. Instead it's a symmetric key (e.g. AES-256). Lets see how that's done:

When you enrol at a site, the authenticator mints a completely random new public/private key pair (with Elliptic curve crypto it's really easy to pick random key pairs because with a few bit ops any random bits become a random key) and after signing the enrolment step, the authenticator encrypts its new private key using that secret symmetric key and the DNS name in an authenticated encryption mode and provides that encrypted value too.

The browser, with the authenticator's help, puts together the final enrolment document, with a signature and it includes that encrypted private key as a Unique Identifier. All the Unique Identifiers in the protocol are huge random looking numbers, so the encrypted key blends right in with that.

For a web site, you need to store the public key (obviously) and this unique unique identifier value. You have to do that for everybody, anyway, it's mandatory. You can't decrypt the identifier even if you were sure it's encrypted, you don't know the key, so all you can do is play it back when you want a user to authenticate.

When it's played back, the authenticator takes the web site's DNS name, plus its own secret key, and decrypts the identifier to get back its private key, which it can now use to sign authentication messages. Of course if the DNS name is wrong, the decryption fails, which is exactly the same thing as happens if you try to use the wrong authenticator, or you're being phished, or a dozen other things - the authentication can't succeed.

Re:Passkeys now support external providers by detourdog on Tuesday June 06, 2023 @08:48AM (#36211819)
It is essentially kerberos only Apple has managed to grow a coherent ticketing system for all hardware, services, and users. Each Developer essentially has their own ticket signing system. Apple can revoke any ticket at any time and a developer can revoke their own tickets.
Re:Passkeys now support external providers by danieldk on Tuesday June 06, 2023 @02:23PM (#36217023)
AFAIK, passkeys aren't really linked to a domain. It's old-school public-key verification, the server stores your public key and uses it to verify the signature of a challenge they send to your device on login. As long as the different domains/apps can share the public key you should be able to login.

The credentials are scoped to a relying party, which must be equal to the domain or registrable domain suffix:

https://www.w3.org/TR/webauthn-2/#scope

If this wasn't the case and it was old-school public-key verification, it would still be vulnerable to phishing, since the phishing site could just forward the challenges.

Re:Passkeys now support external providers by tialaramex on Tuesday June 06, 2023 @06:01AM (#36210472)
Sure, the Big Boss will be extremely annoyed. Thanks to their innovative branding strategy they've grown New Brand from $0 to $150M revenue in just the first year of operation, a huge success. Did it cannibalise customers from Old Brand, which was $180M revenue and now is just $1M of residual revenue on its way to closing down? Sure, but don't do arithmetic, focus on the tremendous leadership.

If authentication systems, like customers, think New Brand is just pointlessly confusing because it's different from Old Brand for no good reason, that undermines Big Boss's amazing strategy and makes it look like something a toddler would try, and that's not OK.

However the nice thing when you have players like Google is that their technical people have got license from above to say "Fuck off" on technical issues without somebody who doesn't know the first thing about it overruling them because their golf buddy asked them to. So you're not going to see a way to override this behaviour and thus allow phishing even though I'm sure HBO execs would think that's fine.

In terms of practical effect, what that means is that when they use WebAuthn outfits like HBO end up needing to keep login.old-brand.example working, even though supposedly old-brand.example was a completely different product and is now dead, because that's how users actually log into new-brand.example as they are in reality the exact same product.

Re:Passkeys now support external providers by arianvanp on Tuesday June 06, 2023 @06:30AM (#36210642)
They're actively working on an extension on WebAuthn that supports these kind of 3D-Secure usecases.

https://www.w3.org/TR/secure-payment-confirmation/ https://github.com/w3c/webauthn/issues/1667

Re:Passkeys now support external providers by madeofpalk on Tuesday June 06, 2023 @07:16AM (#36210980)
> Plaid also relies on entering bank passwords on neobank sites and is widely used.

This is an anti-pattern, and is not worth supporting in new tech that's supposed to be "secure first".

We already have tech for delegating authorization.

Re:Passkeys now support external providers by scott00 on Tuesday June 06, 2023 @08:38AM (#36211708)
Plaid isn't a solution to a technical problem. It's a way to deal with the fact that banks don't want their customers to bypass their websites/apps and the cross-selling ads within.
Re:Passkeys now support external providers by TheNewsIsHere on Tuesday June 06, 2023 @09:56AM (#36212845)
In their defense, Plaid also very quickly demonstrated why you might not want an online bank access free for all. At least in privacy-centric terms.
Re:Passkeys now support external providers by r00fus on Tuesday June 06, 2023 @07:32PM (#36220581)
Intuit Mint is not much different. Mint was forced by some banks to not use customer credentials, and instead request an OAuth token from the customer to allow read-only access. So Plaid/Mint have the tech, they just don't do it because of adoption issues at other banks.
Re:Passkeys now support external providers by patmorgan23 on Tuesday June 06, 2023 @08:36PM (#36221149)
That just means the auth service needs to have a stable domain, not necessarily the whole app