{"id":20498559,"url":"https://github.com/grapheneos-archive/attestationsamples","last_synced_at":"2025-05-09T05:33:08.081Z","repository":{"id":145974996,"uuid":"128533671","full_name":"GrapheneOS-Archive/AttestationSamples","owner":"GrapheneOS-Archive","description":"A small subset of the submitted sample data from https://github.com/GrapheneOS/Auditor. It has a sample attestation certificate chain per device model (ro.product.model) along with a subset of the system properties from the sample as supplementary information.","archived":true,"fork":false,"pushed_at":"2022-07-28T07:27:38.000Z","size":454,"stargazers_count":34,"open_issues_count":0,"forks_count":23,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-21T07:15:17.645Z","etag":null,"topics":["android","attestation","authenticity","cryptography","hsm","integrity","remote-attestation","secure-boot","secureboot","security","strongbox","verifiedboot"],"latest_commit_sha":null,"homepage":"https://attestation.app/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GrapheneOS-Archive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"thestinger","custom":"https://attestation.app/donate"}},"created_at":"2018-04-07T14:01:02.000Z","updated_at":"2025-03-10T06:29:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"c1c57753-4698-4caa-b994-96dcf7691435","html_url":"https://github.com/GrapheneOS-Archive/AttestationSamples","commit_stats":null,"previous_names":["grapheneos-archive/attestationsamples","grapheneos/attestationsamples"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrapheneOS-Archive%2FAttestationSamples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrapheneOS-Archive%2FAttestationSamples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrapheneOS-Archive%2FAttestationSamples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrapheneOS-Archive%2FAttestationSamples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GrapheneOS-Archive","download_url":"https://codeload.github.com/GrapheneOS-Archive/AttestationSamples/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253199305,"owners_count":21870078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","attestation","authenticity","cryptography","hsm","integrity","remote-attestation","secure-boot","secureboot","security","strongbox","verifiedboot"],"created_at":"2024-11-15T18:14:46.232Z","updated_at":"2025-05-09T05:33:07.681Z","avatar_url":"https://github.com/GrapheneOS-Archive.png","language":"Shell","funding_links":["https://github.com/sponsors/thestinger","https://attestation.app/donate"],"categories":[],"sub_categories":[],"readme":"This repository contains sample Android key attestation certificate chains in\ndirectories named after the `ro.product.model` value for the devices where they\nwere generated.\n\nEach of these is a valid certificate chain up to the key attestation root. The\ndevices are running the stock OS with the bootloader locked and verified boot\nenforcing integrity, which can be confirmed from the [metadata in the initial\nattestation\ncertificate](https://developer.android.com/training/articles/security-key-attestation.html#certificate_schema).\n\nThe challenge string is set to `sample` (UTF-8 encoded) rather than the usual\nrandom challenge. These are collected with the [Auditor\napp](https://github.com/AndroidHardening/Auditor) so the app id in the\ncertificate is app.attestation.auditor and the fingerprint is for the release\nsigning key. Older samples are marked with an empty LEGACY file in the\ndirectory and use a legacy app id and signing key. The legacy H3113 sample is\neven older and predates the sample gathering code in the Auditor app. It was\ngenerated using ad hoc code in a debug build so it has a different key, random\n32 byte challenge string and quick expiry date.\n\nThe collection of data published here is public domain / CC0 licensed and is\ncrowdsourced.\n\n## Contributing\n\nThis project and the apps / services using it depend on data submissions being\nmade from a variety of Android devices.\n\nTo help out by contributing data, you'll need any Android device launched with\nAndroid 8.0 or later. A device upgraded to Android 8.0 from an earlier version\nisn't enough. Data submitted from devices running an aftermarket OS is okay but\nwe need at least one submission from a device variant where the device has the\nstock OS and the bootloader locked. It's easy to tell if the device is running\nthe stock OS from the certificate chain so there's no harm in submissions where\nthe OS has been modified.\n\nTo submit data, install [the Auditor\napp](https://github.com/AndroidHardening/Auditor/releases) (which is available free\nfor non-commercial usage on GitHub), press the menu button in the action bar\nand press 'Submit sample data' which will submit a sample certificate chain and\nsystem properties accessible to the app to https://attestation.app/.\nThe system properties will only be published in a heavily filtered form without\nproperties that aren't constant across devices of that model.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrapheneos-archive%2Fattestationsamples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrapheneos-archive%2Fattestationsamples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrapheneos-archive%2Fattestationsamples/lists"}