Thats right: that the user can’t do what they want with their own device. Obviously your key wouldn’t be trusted if they could.
There is no other conceivable purpose that attestation could serve.
Yes, they are. If there's a thread on HN about user-hostile features, you can be pretty confident that they've written a comment defending it.
>the user can’t do what they want with their own device
In the same way the user can't make their device have the Microsoft Word app send them $1 million from Microsoft's bank account. Once other people are in the picture you can't always have your way.
“Prison isn’t against being able to go wherever you want.”
> There are many changes that are possible which do not harm the integrity of applications.
“Well there’s a lot of places you can go in prison, you just can’t leave.”
Uh-huh.
> In the same way the user can't make their device have the Microsoft Word app send them $1 million from Microsoft's bank account.
This is completely incoherent. You and I both know that a bank refusing to give away someone else’s money has nothing to do with being able to run whatever code and operating systems we want to on our own devices.
Obviously the decision happens on some remote server which would require a username and password to authorize. It doesn’t matter one bit what piece of code sent it over.
This isn't a good analogy since the user really able to do whatever they want with their computer. A better analogy is that. "You can go wherever you want, but if you are trespassing on other people's property they can report you to the police." Just because you have the freedom to go anywhere does not mean you are not accountable for your actions or that people should not be able to tell that you are trespassing.
>has nothing to do with being able to run whatever code and operating systems we want to on our own devices.
My point is that one's freedom of how they want one's computer to work does not mean they can force other people's server to run code they want. Microsoft is in control of what there servers do.
Currently it's trespassing-style. If you modify your Google client, Google reserves the right to ban you.
With attestation it's prison-style: you can't modify your Google client. If you try, the modified client just won't work. Trying to walk out of the prison wall does not actually put you outside - you just bang into the wall and then you are still inside.
It's technically possible to exploit a kernel and get root access on a running device, of course, but the persistent root that is used most often will be detected by hardware integrity mechanisms. Exploit based root might be as well if it makes itself detectable enough.
My Galaxy S10, last update in 2023 passes strong integrity.
With the little amount of security updates most Android devices have, I'm pretty sure you can find an exploit for pretty much everything except the most expensive flagships.
What does integrity really means when nobody really knows what's in the device and with a terrible software update policy anyways.
MEETS_STRONG_INTEGRITY
The app is running on a genuine and certified Android device with a recent security update.
On Android 13 and higher, the MEETS_STRONG_INTEGRITY verdict requires MEETS_DEVICE_INTEGRITY and security updates in the last year for all partitions of the device, including an Android OS partition patch and a vendor partition patch.
On Android 12 and lower, the MEETS_STRONG_INTEGRITY verdict only requires hardware-backed proof of boot integrity and does not require the device to have a recent security update. Therefore, when using the MEETS_STRONG_INTEGRITY, it is recommended to also take into account the Android SDK version in the deviceAttributes field.
A single device will return multiple device labels in the device integrity verdict if each of the label's criteria is met.
The S10 should be on Android 13, so it should not pass STRONG_INTEGRITY. If it does, perhaps it's possible Google updated the docs early in anticipation of a change? The software update requirement wasn't always there.Also, there is still the DEVICE_INTEGRITY check that verifies the hardware side of things so if old devices have to be pushed, app developers still won't let you run their apps on LineageOS
It has happened and it probably will happen again. The EU is working on a wallet app that will be legally equivalent to an ID card, I imagine they'll rather have people stick to their plastic ID rather than risk accepting identity theft.
In turn, this enables any tyrannical or anti-competitive demand which can be implemented in software, such as "user is not on the blasphemer list" or "all communications are being CC'ed to the Ministry of Truth."
It has, but extracted keys aren't free.
It seems like the documentation for the feature is aimed entirely at MDM setups, though.
The basic API requirements are all there, and Windows 11 requires TPM 2.0, so I believe it should be possible for Google to build a Play Integrity equivalent around that.
https://developer.apple.com/documentation/devicecheck/dcappa...