Hacker News new | ask | show | jobs
by jiveturkey 2074 days ago
When this was pre-announced awhile back I highlighted the lack of anonymity, due to the Apple secure element (T2 on laptop/desktop; whatever the name is on mobile) lacking attestation capability. That comment was downvoted by folks that presumably don't understand the problem at hand.

In that pre-announce video Apple dared to insinuate that attestation by current devices is de-anonymizing, when that isn't universally the case. And that their flavor of such would be "actually" privacy preserving. At the time, I figured this (a remote service) would be how they would address it, as the secure hardware probably doesn't have the burned in capability. Largely due to Apple needing to do it their own way.

Now of course, like the "normal" U2F attestation, this is private between the client and the service. But in Apple's case, like DOH, it is not private between client and Apple. IOW, a decrease in privacy, but marketed as an increase! LOL, classic Apple!

They go even further in their blind denial by stating:

> this approach avoids the security pitfall of Basic Attestation that the compromising of a single device results in revoking certificates from all devices with the same attestation certificate.

without recognizing or acknowledging that there is still a single point of compromise, but now it's a cloud service which many engineers have access to and presumably isn't 100% impervious to outsider attack either. So yes, it may avoid the single device security pitfall (resulting in a largish group of devices requireing to be revoked), but it trades it for an even bigger pitfall of all devices everywhere needing to be revoked!

It's sad that the reality distortion field has to be extended to privacy and security. Apple could easily just present their take on it without confusing the issues for the sake of marketing.

Further, it's up to the site to decide whether to use an anonymous attestation or not. The user will not be informed either way. With "standard" attestation, it's up to the user in their decision of what token (security key) to buy, and is always in effect. That said, a non-attested enrollment, if done correctly on the client side, doesn't give up privacy; just security.

To answer your question, it depends what you mean by "taking on". Yes, Apple is assuming some risk. They are not taking on any liability in the legal sense.

1 comments

> In that pre-announce video Apple dared to insinuate that attestation by current devices is de-anonymizing, when that isn't universally the case.

Most hardware devices use batch attestation, where some group of (say, 100 000) keys all get the same private key. This does still provide some data for correlating users based on make + model + batch of their authenticators.

ECDAA was meant to be an approach to solve this with pairing-friendly curves and crypto, but the industry stayed clear of this as an unproven algorithm.

Apple (and the rather similar SafetyNet approach by Google) use a service. The interaction between the device and this service is black-box and we do not yet know how much information is exchanged. By its nature, this service can change in the future and we will not know.

However, it _could_ be limited to an RSA or EC-based DAA attestation from the Secure Enclave, a curve point on P-256, and a SHA-256 hash value to embed. There's no reason Apple needs to know either the specific piece of hardware or the site a user is going to.

> Further, it's up to the site to decide whether to use an anonymous attestation or not. The user will not be informed either way.

Several browsers will give the user the option to not send attestation if a site asks for it, to the point where capturing attestations is a UX-impacting action. You could say the UX impact is intentional - not only do basic attestations leak some tracking information, but they limit user choice in how to authenticate.

> There's no reason Apple needs to know either the specific piece of hardware

In order to revoke a specific device without cooperation of the device itself, which is one of their advantageous claims, they do.

Disregarding that property, Apple needs to know that the "CSR", ie attestation request, is coming from the secure enclave. That means that the "CSR" needs to be signed by some key. If the CSR signing key is unique per device, Apple receives device-specific information. This can't be an ephemeral key, as there wouldn't be a chain back to the secure element. If OTOH the CSR signing key is shared, it is probably exposed, or at least accessible for malicious signing, via the now known T2 compromise. There is much to be gained by such an exploit, so this isn't merely a thought exercise.

This complexity is all avoided by on-device attestation. EPID or EPID-like scheme could have been used, vs batch attestation.

Honestly, Apple is derelict in not describing this in more detail. Had they not made claims, it would be ok. But they are directly claiming to be better. I think we can be 100% certain they are aware of this depth of detail internally. Apple is not amateur hour.

> Disregarding that property, Apple needs to know that the "CSR", ie attestation request, is coming from the secure enclave. That means that the "CSR" needs to be signed by some key. If the CSR signing key is unique per device, Apple receives device-specific information. This can't be an ephemeral key, as there wouldn't be a chain back to the secure element. If OTOH the CSR signing key is shared, it is probably exposed, or at least accessible for malicious signing, via the now known T2 compromise. There is much to be gained by such an exploit, so this isn't merely a thought exercise.

> This complexity is all avoided by on-device attestation. EPID or EPID-like scheme could have been used, vs batch attestation.

EPID is a DAA scheme. _If_ Apple is using a DAA scheme to their attestation service, then you would use that to protect the equivalent of a CSR (which really should only need the public point and hash of the creation request).

The intermediate service exists to hide the choice of DAA scheme (and needs to potentially require things like BN curve cryptography to handle it), and to do other value add logic. For example, the attestation format is extremely similar to DeviceCheck attestations, which assert hardware/os/application authenticity for a third-party remote service call.

> In order to revoke a specific device without cooperation of the device itself, which is one of their advantageous claims, they do.

My understanding is that there are methods to revoke a particular group key under DAA, which would prevent that device from being able to retrieve attestations in the future.

That said, revoking individual devices is somewhat nonsense from a security point of view. There's nothing (other than the difficulty of the hack itself) that prevents a compromise of one phone from being replicated across the entire production line, which impacts the security reputation of the entire line.

Also, it is hard to imagine the use case for identifying and revoking the attestation for a single user's devices that isn't troubling.