← Back to context

Comment by notpushkin

7 days ago

> Sure, mobile device app attestation is a big problem for openness, but it has nothing to do with passkeys, where attestation is effectively dead for non-enterprise uses.

It’s dead so far. Again, X.com could ask you to re-enroll your passkey next time you sign in, but this time requiring attestation. It’ll be phrased like “we’re upgrading your account security, please click ‘Accept’ to proceed”.

> banks could require [...a] signature of some sandboxed secure element that runs independently from the application OS

They can. Why don’t they?

> Again, X.com could ask you to re-enroll your passkey next time you sign in, but this time requiring attestation.

How? Almost none of their users own an authenticator capable of attestation (i.e., a Yubikey or similar).

> They can. Why don’t they?

They can't, because open/neutral access secure elements do not exist yet, and nobody really wants to carry an external one.

  • Every iPhone, every supported macOS device, all Windows machines capable of running Windows 11 and all mainstream Android devices capable of running Netflix have a Secure Enclave of some sort capable of doing remote attestation, and for virtually all of them, Secure Boot providing the foundation for it is enabled and enforced.

    It just took a decade worth of waiting after the first failed attempt by MS to push TPM support.

    The only device categories where Secure Boot and Remote Attestation are either disabled, unsupported or not usable for the purpose of trusted attestation are many Linux systems and Android devices not sanctioned by Google.

    • No, Apple used to support passkey attestation on iOS, but has since removed that feature. The same is true for macOS. Android still supports it, but not for synchronized passkeys as far as I know.

      Not sure how DRM factors in here; it's a completely different problem space. Or is your stance something like "anything even theoretically capable of performing trusted computing is evil"?

      4 replies →

  • > How? Almost none of their users own an authenticator capable of attestation (i.e., a Yubikey or similar).

    I haven’t checked, but I suppose both Google and Apple have passkeys implementations capable of attestation? (If not, it should be fairly easy to add, and considering Google has been pushing for various “integrity” bullshit, this would be a no-brainer for them.)

    > They can't, because open/neutral access secure elements do not exist yet, and nobody really wants to carry an external one.

    I’m not 100% sure if this would work: https://developer.android.com/privacy-and-security/security-...

    Presumably, banks trust Google, so if Android doesn’t erase attestation information from the HSM when unlocking the bootloader, they could use this process to verify that the key they’ve generated is stored there, regardless of whatever other software the user is running. (If Android does erase attestation info then eh, it’s just as bad as relying on Play Integrity APIs.)

    • Apple used to support attestation but removed it. That alone makes it non-viable for sites to enforce attestation.

      > I’m not 100% sure if this would work: [...]

      I believe it might, but like you I'm not sure if they really don't measure some secure boot properties into that keystore these days.

      It's also usually implemented in TEEs and attested by the device manufacturer, which means there's a high chance of getting either insecure implementations in the mix or ending up with a heterogeneous mess of supported and non-supported manufacturers varying from bank to bank.

      FIDO at least has their manufacturer directory; not sure if Google has something similar for Android (and if it does, whether non Google certified Android OEMs may apply).

      8 replies →