Conversation

Replying to and
To be blunt, measured boot is not system attestation. Even if verifying each of the boot images , stage by stage, this process maybe have the name " System Attestation on boot". But I would be very reserved to call it system attestation ,at all.
1
Replying to and
System Attestation is a process and Measured boot is one component of it. At its beginning indeed, but only measured boot is not by itself system attestation. Because "only on boot , until next boot" are already two conditions up. TBH I thought what you did was attestation app
1
Replying to
It is an attestation app and it relies entirely on the attestation capabilities provided by the firmware / hardware. I'm not sure what you expect it to have beyond measured boot and whatever runtime mitigations exist for the device, such as kernel monitoring on Samsung devices.
1
1
Replying to and
If the TEE / hardware-backed keystore consider the device compromised, they won't provide the signed result. There's a limit to what can actually be done in practice though. I don't think active monitoring has much value in reality but the app inherently benefits if it's present.
1
1
Replying to and
The work I'm doing on the attestation app / server is making the underlying, rarely used hardware/firmware capabilities usable for end users to perform local and remote device integrity and identity verification. I can't do more than working with the existing capabilities though.
2
Replying to
It's directly built on the hardware-backed keystore including the key attestation API, so it's essentially a frontend to firmware / hardware capabilities. It doesn't get much from the OS beyond gathering some configuration values to include in the reported data as "OS verified".
2
1
Replying to and
The API it uses specifically supporting attestation is developer.android.com/training/artic, and it pins the certificate chain for future verifications, which is not documented as something that can be done but works in practice. It also relies on security properties of the keystore itself.
1
1
Replying to and
It keeps around the initial hardware-backed key from the initial pairing and uses that to verify the identity of the device and to provide a chained form of attestation. It has to generate a temporary fresh key each time for a new key attestation result, and enforces pinning.
1
1