About
The Auditor app uses hardware-based security features to validate the identity of a device, along with the authenticity and integrity of the operating system. It ensures the device is running a verified operating system with a locked bootloader and that no tampering has occurred. Auditor will also detect a downgrade to a previous operating system, patch, or app version. Auditor extends the hardware-based operating system verification by chaining verification to the app, performing software-based sanity checks, and gathering additional information about the device state and configuration beyond what hardware attestation directly provides.
The foundation of the Auditor app is generating a persistent key in the hardware-backed keystore for verifying the identity of the device and providing assurance that the operating system hasn't been tampered with or downgraded via verified boot. It performs a pairing process between the device performing verification (Auditor) and the device being verified (Auditee) to implement a Trust On First Use (TOFU) model. The device performing verification can either be another Android device running the app in the Auditor mode or the https://attestation.app/ service for automated verification on a regular schedule with support for email alerts. See the tutorial for usage instructions. The protocol used for both local and remote attestation is documented in the source code.
Verified boot validates the integrity and authenticity of firmware and the entire operating system (both the kernel and userspace) from an immutable hardware root of trust. The results are passed along to the hardware-backed keystore and used to protect the keys.
The key attestation feature provided by the hardware-backed keystore provides direct support for attesting to device properties and bootstrapping the Trust On First Use model of the Auditor app with a basic initial verification chained up to a known root certificate. The latest version of key attestation provides a signed result with the verified boot state, verified boot key, a hash of all data protected by verified boot and the version of the operating system partitions among other properties. It also has support for chaining trust to the application performing the attestation checks, which is used by the Auditor app for bootstrapping checks at the software layer.
Devices shipping with Android 9 or later may ship a StrongBox Keymaster implementation, allowing the Auditor app to keep the keys used by the attestation protocol in the dedicated Hardware Security Module (HSM) (such as the Titan M in Pixel devices) rather than using the Trusted Execution Environment (TEE) on the main processor. This can provide substantial attack surface reduction.
Security enhancements offered by future generations of hardware and future Android releases will be closely tracked by these projects. The core workflow and feature set is already implemented but the foundation will be regularly improved along with major improvements to the user interface and documentation. The app and service are designed to be forwards and backwards compatible via a versioned protocol to permit substantial changes down the road.
Device support
Any device with Android 12 or higher can run the Auditor app and use it to verify other devices. However, only devices launched with Android 8.0 or later have the necessary hardware support for being verified. Each device model also needs to be explicitly integrated into the app. The following devices are currently supported by the most recent stable release:
- Google Pixel 3
- Google Pixel 3 XL
- Google Pixel 3a
- Google Pixel 3a XL
- Google Pixel 4
- Google Pixel 4 XL
- Google Pixel 4a
- Google Pixel 4a (5G)
- Google Pixel 5
- Google Pixel 5a
- Google Pixel 6
- Google Pixel 6 Pro
- Google Pixel 6a
- Google Pixel 7
- Google Pixel 7 Pro
- Google Pixel 7a
- Google Pixel Tablet
- Google Pixel Fold
- Google Pixel 8
- Google Pixel 8 Pro
- Google Pixel 8a
- Google Pixel 9
- Google Pixel 9 Pro
- Google Pixel 9 Pro XL
- Google Pixel 9 Pro Fold
- OnePlus 7 Pro (GM1913 model)
- Samsung Galaxy Note 10 (SM-N970F and SM-N970U models)
- Samsung Galaxy Note 10+ (SM-N975U model)
- Samsung Galaxy S10e (SM-G970F model)
- Samsung Galaxy S10+ (SM-G975F model)
The following devices provide an HSM with StrongBox support used by Auditor:
- Google Pixel 3
- Google Pixel 3 XL
- Google Pixel 3a
- Google Pixel 3a XL
- Google Pixel 4
- Google Pixel 4 XL
- Google Pixel 4a
- Google Pixel 4a (5G)
- Google Pixel 5
- Google Pixel 5a
- Google Pixel 6
- Google Pixel 6 Pro
- Google Pixel 6a
- Google Pixel 7
- Google Pixel 7 Pro
- Google Pixel 7a
- Google Pixel Tablet
- Google Pixel Fold
- Google Pixel 8
- Google Pixel 8 Pro
- Google Pixel 8a
- Google Pixel 9
- Google Pixel 9 Pro
- Google Pixel 9 Pro XL
- Google Pixel 9 Pro Fold
- Samsung Galaxy Note 10 (SM-N970U model)
- Samsung Galaxy Note 10+ (SM-N975U model)
The following devices support the attest key feature for generating a pairing specific attestation signing key:
- Google Pixel 6
- Google Pixel 6 Pro
- Google Pixel 6a
- Google Pixel 7
- Google Pixel 7 Pro
- Google Pixel 7a
- Google Pixel Tablet
- Google Pixel Fold
- Google Pixel 8
- Google Pixel 8 Pro
- Google Pixel 8a
- Google Pixel 9
- Google Pixel 9 Pro
- Google Pixel 9 Pro XL
- Google Pixel 9 Pro Fold
The Auditor app also has support for verifying alternative operating systems on devices supporting it. It can verify GrapheneOS running on the following devices:
- Google Pixel 3
- Google Pixel 3 XL
- Google Pixel 3a
- Google Pixel 3a XL
- Google Pixel 4
- Google Pixel 4 XL
- Google Pixel 4a
- Google Pixel 4a (5G)
- Google Pixel 5
- Google Pixel 5a
- Google Pixel 6
- Google Pixel 6 Pro
- Google Pixel 6a
- Google Pixel 7
- Google Pixel 7 Pro
- Google Pixel 7a
- Google Pixel Tablet
- Google Pixel Fold
- Google Pixel 8
- Google Pixel 8 Pro
- Google Pixel 8a
- Google Pixel 9
- Google Pixel 9 Pro
- Google Pixel 9 Pro XL
- Google Pixel 9 Pro Fold
Alternative operating systems need their verified boot key included in the Auditor app and Attestation Server. The app and service display the name of the operating system being verified on the device. Unfortunately, most alternative operating systems lack support for full verified boot and most devices don't support using verified boot with a custom key. The app also depends on the OS preserving the core security model for extensions beyond the baseline hardware-based attestation support.
GrapheneOS is a hardened mobile OS with Android app compatibility focused on the research and development of privacy and security technology including substantial improvements to sandboxing, exploit mitigations and the permission model. GrapheneOS also maintains all the standard baseline security features. Releases are available on the GrapheneOS releases page and can be used with the Auditor app and server.