Mit der Schlüsselbestätigung können Sie sich darauf verlassen, dass die in Ihrer App verwendeten Schlüssel im hardwaregestützten Keystore eines Geräts gespeichert sind. In den folgenden Abschnitten wird beschrieben, wie Sie die Eigenschaften von hardwaregestützten Schlüsseln überprüfen und die Erweiterungsdaten der Attestierungszertifikate interpretieren.
Hinweis : Bevor Sie die Eigenschaften der hardwarebasierten Schlüssel eines Geräts in einer Produktionsumgebung überprüfen, müssen Sie sicherstellen, dass das Gerät die Schlüsselbestätigung auf Hardwareebene unterstützt. Prüfen Sie dazu, ob die Attestierungszertifikatkette ein Root-Zertifikat enthält, das mit dem Google-Attestierungs-Root-Schlüssel signiert ist, und ob das attestationSecurityLevel
-Element in der Datenstruktur Schlüsselbeschreibung auf die Sicherheitsstufe TrustedEnvironment
oder StrongBox
festgelegt ist.
Außerdem ist es wichtig, die Signaturen in der Zertifikatskette zu überprüfen und zu bestätigen, dass keiner der Schlüssel in der Kette widerrufen wurde. Dazu muss die Liste mit dem Status des Zertifikatswiderrufs geprüft werden. Wenn nicht alle gültig sind und der Root-Schlüssel der Google-Root-Schlüssel ist, vertrauen Sie der Attestierung nicht vollständig.
Hardwaregestütztes Schlüsselpaar abrufen und überprüfen
Bei der Schlüsselattestierung geben Sie den Alias eines Schlüsselpaars an und rufen die zugehörige Zertifikatskette ab, mit der Sie die Eigenschaften dieses Schlüsselpaars überprüfen können.
Wenn das Gerät die Schlüsselattestierung auf Hardwareebene unterstützt, wird das Stammzertifikat in dieser Kette mit einem Attestierungsstammschlüssel signiert, der sicher im hardwaregestützten Keystore des Geräts bereitgestellt wird.
Hinweis:Auf Geräten, die mit einer Schlüsselbestätigung auf Hardwareebene, Android 7.0 (API-Level 24) oder höher und Google Play-Diensten ausgeliefert werden, wird das Stammzertifikat mit dem Google-Bestätigungsstammschlüssel signiert. Prüfen Sie, ob dieses Stammzertifikat in der Liste im Abschnitt Stammzertifikate enthalten ist.
So implementieren Sie die Schlüsselattestierung:
-
Verwenden Sie die Methode
getCertificateChain()
einesKeyStore
-Objekts, um einen Verweis auf die Kette von X.509-Zertifikaten zu erhalten, die mit dem hardwaregestützten Keystore verknüpft sind. -
Senden Sie die Zertifikate zur Validierung an einen separaten Server, dem Sie vertrauen.
Achtung:Führen Sie den folgenden Validierungsprozess nicht auf demselben Gerät durch. Wenn das Android-System auf diesem Gerät manipuliert wurde, kann es sein, dass beim Validierungsprozess etwas als vertrauenswürdig eingestuft wird, das nicht vertrauenswürdig ist.
-
Rufen Sie einen Verweis auf die Bibliothek zum Parsen und Validieren der X.509-Zertifikatskette ab, die für Ihr Toolset am besten geeignet ist. Prüfen Sie, ob das öffentliche Stammzertifikat vertrauenswürdig ist und ob jedes Zertifikat das nächste Zertifikat in der Kette signiert.
-
Prüfen Sie den Widerrufsstatus jedes Zertifikats, um sicherzustellen, dass keines der Zertifikate widerrufen wurde.
-
Prüfen Sie optional die Zertifikaterweiterung für Bereitstellungsinformationen, die nur in neueren Zertifikatsketten vorhanden ist.
Rufen Sie eine Referenz zur CBOR-Parserbibliothek ab, die für Ihr Toolset am besten geeignet ist. Suchen Sie das Zertifikat, das dem Root-Zertifikat am nächsten ist und die Zertifikaterweiterung mit Bereitstellungsinformationen enthält. Verwenden Sie den Parser, um die Daten der Zertifikaterweiterung für die Bereitstellungsinformationen aus diesem Zertifikat zu extrahieren.
Weitere Informationen finden Sie im Abschnitt zur Erweiterung für Bereitstellungsinformationen.
-
Rufen Sie einen Verweis auf die ASN.1-Parserbibliothek ab, die für Ihr Toolset am besten geeignet ist. Suchen Sie das Zertifikat, das dem Stammzertifikat am nächsten ist und die Schlüsselbestätigungszertifikaterweiterung enthält. Wenn die Zertifikaterweiterung für die Bereitstellungsinformationen vorhanden war, muss sich die Zertifikaterweiterung für die Schlüsselbestätigung im unmittelbar nachfolgenden Zertifikat befinden. Verwenden Sie den Parser, um die Daten der Zertifikaterweiterung für die Schlüsselattestierung aus diesem Zertifikat zu extrahieren.
Achtung:Gehen Sie nicht davon aus, dass sich die Zertifikaterweiterung für die Schlüsselbestätigung im Blattzertifikat der Kette befindet. Nur dem ersten Vorkommen der Erweiterung in der Kette kann vertraut werden. Alle weiteren Instanzen der Erweiterung wurden nicht von der sicheren Hardware ausgestellt und könnten von einem Angreifer ausgestellt worden sein, der die Kette verlängert, um gefälschte Attestierungen für nicht vertrauenswürdige Schlüssel zu erstellen.
Im Beispiel für die Schlüsselattestierung wird der ASN.1-Parser von Bouncy Castle verwendet, um die Erweiterungsdaten eines Attestierungszertifikats zu extrahieren. Sie können dieses Beispiel als Referenz für die Erstellung Ihres eigenen Parsers verwenden.
Weitere Informationen finden Sie im Abschnitt zum Datenschema für die Schlüsselbestätigungserweiterung.
-
Prüfen Sie die Erweiterungsdaten, die Sie in den vorherigen Schritten abgerufen haben, auf Konsistenz und vergleichen Sie sie mit den Werten, die der hardwaregestützte Schlüssel enthalten soll.
Root-Zertifikate
Die Vertrauenswürdigkeit der Attestierung hängt vom Root-Zertifikat der Kette ab. Auf Android-Geräten, die die erforderlichen Tests für die Google-App-Suite, einschließlich Google Play, bestanden haben und mit Android 7.0 (API-Level 24) oder höher eingeführt wurden, sollten Attestierungsschlüssel verwendet werden, die mit dem Google Hardware Attestation Root-Zertifikat signiert sind. Die Geräteattestierung war erst ab Android 8.0 (API-Ebene 26) erforderlich. Die Menge der gültigen Stammzertifikate kann als JSON-formatiertes Array heruntergeladen werden.
Root-Zertifikate
Die folgenden beiden Root-Zertifikate sollten als Vertrauensanker verwendet werden, wenn eine Zertifikatskette für die Schlüsselattestierung überprüft wird.
-----BEGIN CERTIFICATE----- MIIFHDCCAwSgAwIBAgIJAPHBcqaZ6vUdMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjIwMzIwMTgwNzQ4WhcNNDIwMzE1MTgw NzQ4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7 tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um AGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud IwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQB8cMqTllHc8U+qCrOlg3H7 174lmaCsbo/bJ0C17JEgMLb4kvrqsXZs01U3mB/qABg/1t5Pd5AORHARs1hhqGIC W/nKMav574f9rZN4PC2ZlufGXb7sIdJpGiO9ctRhiLuYuly10JccUZGEHpHSYM2G tkgYbZba6lsCPYAAP83cyDV+1aOkTf1RCp/lM0PKvmxYN10RYsK631jrleGdcdkx oSK//mSQbgcWnmAEZrzHoF1/0gso1HZgIn0YLzVhLSA/iXCX4QT2h3J5z3znluKG 1nv8NQdxei2DIIhASWfu804CA96cQKTTlaae2fweqXjdN1/v2nqOhngNyz1361mF mr4XmaKH/ItTwOe72NI9ZcwS1lVaCvsIkTDCEXdm9rCNPAY10iTunIHFXRh+7KPz lHGewCq/8TOohBRn0/NNfh7uRslOSZ/xKbN9tMBtw37Z8d2vvnXq/YWdsm1+JLVw n6yYD/yacNJBlwpddla8eaVMjsF6nBnIgQOf9zKSe06nSTqvgwUHosgOECZJZ1Eu zbH4yswbt02tKtKEFhx+v+OTge/06V+jGsqTWLsfrOCNLuA8H++z+pUENmpqnnHo vaI47gC+TNpkgYGkkBT6B/m/U01BuOBBTzhIlMEZq9qkDWuM2cA5kW5V3FJUcfHn w1IdYIg2Wxg7yHcQZemFQg== -----END CERTIFICATE-----
Das folgende Stammzertifikat wird ab dem 1. Februar 2025 zum Signieren von Attestzertifikatsketten verwendet.
-----BEGIN CERTIFICATE----- MIICIjCCAaigAwIBAgIRAISp0Cl7DrWK5/8OgN52BgUwCgYIKoZIzj0EAwMwUjEc MBoGA1UEAwwTS2V5IEF0dGVzdGF0aW9uIENBMTEQMA4GA1UECwwHQW5kcm9pZDET MBEGA1UECgwKR29vZ2xlIExMQzELMAkGA1UEBhMCVVMwHhcNMjUwNzE3MjIzMjE4 WhcNMzUwNzE1MjIzMjE4WjBSMRwwGgYDVQQDDBNLZXkgQXR0ZXN0YXRpb24gQ0Ex MRAwDgYDVQQLDAdBbmRyb2lkMRMwEQYDVQQKDApHb29nbGUgTExDMQswCQYDVQQG EwJVUzB2MBAGByqGSM49AgEGBSuBBAAiA2IABCPaI3FO3z5bBQo8cuiEas4HjqCt G/mLFfRT0MsIssPBEEU5Cfbt6sH5yOAxqEi5QagpU1yX4HwnGb7OtBYpDTB57uH5 Eczm34A5FNijV3s0/f0UPl7zbJcTx6xwqMIRq6NCMEAwDwYDVR0TAQH/BAUwAwEB /zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFFIyuyz7RkOb3NaBqQ5lZuA0QepA MAoGCCqGSM49BAMDA2gAMGUCMETfjPO/HwqReR2CS7p0ZWoD/LHs6hDi422opifH EUaYLxwGlT9SLdjkVpz0UUOR5wIxAIoGyxGKRHVTpqpGRFiJtQEOOTp/+s1GcxeY uR2zh/80lQyu9vAFCj6E4AXc+osmRg== -----END CERTIFICATE-----
Zuvor ausgestellte Root-Zertifikate
-----BEGIN CERTIFICATE----- MIIFYDCCA0igAwIBAgIJAOj6GWMU0voYMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTYwNTI2MTYyODUyWhcNMjYwNTI0MTYy ODUyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7 tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um AGMCAwEAAaOBpjCBozAdBgNVHQ4EFgQUNmHhAHyIBQlRi0RsR/8aTMnqTxIwHwYD VR0jBBgwFoAUNmHhAHyIBQlRi0RsR/8aTMnqTxIwDwYDVR0TAQH/BAUwAwEB/zAO BgNVHQ8BAf8EBAMCAYYwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cHM6Ly9hbmRyb2lk Lmdvb2dsZWFwaXMuY29tL2F0dGVzdGF0aW9uL2NybC8wDQYJKoZIhvcNAQELBQAD ggIBACDIw41L3KlXG0aMiS//cqrG+EShHUGo8HNsw30W1kJtjn6UBwRM6jnmiwfB Pb8VA91chb2vssAtX2zbTvqBJ9+LBPGCdw/E53Rbf86qhxKaiAHOjpvAy5Y3m00m qC0w/Zwvju1twb4vhLaJ5NkUJYsUS7rmJKHHBnETLi8GFqiEsqTWpG/6ibYCv7rY DBJDcR9W62BW9jfIoBQcxUCUJouMPH25lLNcDc1ssqvC2v7iUgI9LeoM1sNovqPm QUiG9rHli1vXxzCyaMTjwftkJLkf6724DFhuKug2jITV0QkXvaJWF4nUaHOTNA4u JU9WDvZLI1j83A+/xnAJUucIv/zGJ1AMH2boHqF8CY16LpsYgBt6tKxxWH00XcyD CdW2KlBCeqbQPcsFmWyWugxdcekhYsAWyoSf818NUsZdBWBaR/OukXrNLfkQ79Iy ZohZbvabO/X+MVT3rriAoKc8oE2Uws6DF+60PV7/WIPjNvXySdqspImSN78mflxD qwLqRBYkA3I75qppLGG9rp7UCdRjxMl8ZDBld+7yvHVgt1cVzJx9xnyGCC23Uaic MDSXYrB4I4WHXPGjxhZuCuPBLTdOLU8YRvMYdEvYebWHMpvwGCF6bAx3JBpIeOQ1 wDB5y0USicV3YgYGmi+NZfhA4URSh77Yd6uuJOJENRaNVTzk -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- MIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAz NzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7 tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um AGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud IwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnu XKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83U h6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cno L/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2ok QBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vA D32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAI mMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoW Fua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91 oeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09o jm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUB ZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCH ex0SdDrx+tWUDqG8At2JHA== -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- MIIFHDCCAwSgAwIBAgIJAMNrfES5rhgxMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjExMTE3MjMxMDQyWhcNMzYxMTEzMjMx MDQyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7 tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um AGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud IwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBTNNZe5cuf8oiq+jV0itTG zWVhSTjOBEk2FQvh11J3o3lna0o7rd8RFHnN00q4hi6TapFhh4qaw/iG6Xg+xOan 63niLWIC5GOPFgPeYXM9+nBb3zZzC8ABypYuCusWCmt6Tn3+Pjbz3MTVhRGXuT/T QH4KGFY4PhvzAyXwdjTOCXID+aHud4RLcSySr0Fq/L+R8TWalvM1wJJPhyRjqRCJ erGtfBagiALzvhnmY7U1qFcS0NCnKjoO7oFedKdWlZz0YAfu3aGCJd4KHT0MsGiL Zez9WP81xYSrKMNEsDK+zK5fVzw6jA7cxmpXcARTnmAuGUeI7VVDhDzKeVOctf3a 0qQLwC+d0+xrETZ4r2fRGNw2YEs2W8Qj6oDcfPvq9JySe7pJ6wcHnl5EZ0lwc4xH 7Y4Dx9RA1JlfooLMw3tOdJZH0enxPXaydfAD3YifeZpFaUzicHeLzVJLt9dvGB0b HQLE4+EqKFgOZv2EoP686DQqbVS1u+9k0p2xbMA105TBIk7npraa8VM0fnrRKi7w lZKwdH+aNAyhbXRW9xsnODJ+g8eF452zvbiKKngEKirK5LGieoXBX7tZ9D1GNBH2 Ob3bKOwwIWdEFle/YF/h6zWgdeoaNGDqVBrLr2+0DtWoiB1aDEjLWl9FmyIUyUm7 mD/vFDkzF+wm7cyWpQpCVQ== -----END CERTIFICATE-----
Wenn das Stammzertifikat in der Attestierungskette, die Sie erhalten, diesen öffentlichen Schlüssel enthält und keines der Zertifikate in der Kette widerrufen wurde, wissen Sie Folgendes:
- Ihr Schlüssel befindet sich auf Hardware, die Google für sicher hält.
- Es hat die im Attestierungszertifikat beschriebenen Eigenschaften.
Wenn die Attestierungskette einen anderen öffentlichen Stammschlüssel enthält, macht Google keine Aussagen zur Sicherheit der Hardware. Das bedeutet nicht, dass Ihr Schlüssel manipuliert wurde, sondern nur, dass die Attestierung nicht beweist, dass sich der Schlüssel in sicherer Hardware befindet. Passen Sie Ihre Sicherheitsannahmen entsprechend an.
Wenn das Stammzertifikat den öffentlichen Schlüssel auf dieser Seite nicht enthält, gibt es dafür zwei wahrscheinliche Gründe:
- Wahrscheinlich wurde das Gerät mit einer Android-Version unter 7.0 eingeführt und unterstützt keine Hardware-Attestierung. In diesem Fall hat Android eine Softwareimplementierung der Attestierung, die dieselbe Art von Attestierungszertifikat erzeugt, aber mit einem Schlüssel signiert wird, der im Android-Quellcode hartcodiert ist. Da dieser Signaturschlüssel nicht geheim ist, wurde die Attestierung möglicherweise von einem Angreifer erstellt, der vorgibt, sichere Hardware bereitzustellen.
- Der andere wahrscheinliche Grund ist, dass es sich bei dem Gerät nicht um ein Google Play-Gerät handelt. In diesem Fall kann der Gerätehersteller einen eigenen Root erstellen und beliebige Behauptungen darüber aufstellen, was die Attestierung bedeutet. Weitere Informationen finden Sie in der Dokumentation des Geräteherstellers. Google ist nicht bekannt, dass Gerätehersteller dies getan haben.
Rotation des Root-Zertifikats für die Hardware-Attestierung
Google führt ein neues Root-Zertifikat für die Android-Schlüsselattestierung ein. Diese Änderung erhöht die Sicherheit und Zuverlässigkeit des Attestierungsprozesses für vertrauliche Anwendungen. Ein neuer Stammschlüssel wurde für die Android-Schlüsselbestätigung (KeyMint) generiert. Der neue Stamm ist ein ECDSA-P-384-Schlüssel. Ein ML-DSA-Schlüssel (Post-Quantum Digital Signature Algorithm) ist für die Zukunft geplant.
Maßnahmen für Entwickler
- Wenn Ihre App auf Android Key Attestation basiert, fügen Sie das neue Root-Zertifikat bis Januar 2026 Ihren Trust-Stores hinzu. Laden Sie sowohl das neue als auch das alte Zertifikat von https://android.googleapis.com/attestation/root herunter.
- Geräte, die Remote Key Provisioning (RKP) verwenden, erhalten ab Februar 2026 Zertifikate, die in diesem neuen Zertifikat verwurzelt sind. RKP-fähige Geräte verwenden ab dem 10. April 2026 ausschließlich den neuen Root.
- Aktualisieren Sie Ihre Attestierungsprozesse so, dass sowohl die neuen als auch die vorhandenen Root-Zertifikate vertrauenswürdig sind. Ältere Geräte mit werkseitig bereitgestellten Schlüsseln unterstützen die Schlüsselrotation nicht und verwenden weiterhin den alten Root.
- Das Schema der Zertifikaterweiterung selbst bleibt unverändert. Nur das Root-Zertifikat wird geändert.
- Sowohl die für Menschen als auch die für Maschinen lesbare Form der neuen Root-Zertifizierungsstelle wird öffentlich verfügbar sein.
Best Practices
Fragen Sie zur Laufzeit keinen Endpunkt nach vertrauenswürdigen Stammzertifikaten ab, da dies Sicherheitsrisiken birgt. Änderungen an Roots of Trust müssen über einen formalen Prozess abgewickelt werden.
Ausphasung von Werksschlüsseln: Remote Key Provisioning (RKP)
Auf Geräten, die mit Android 16 auf den Markt kommen, wird nur RKP unterstützt. Mit dieser Richtlinie werden Werksschlüssel nach und nach abgeschafft. Sie verbessert die Bereitstellung und Verwaltung von Attestierungsschlüsseln und erweitert die Android 15-Richtlinie, in der die RKP-Unterstützung optional war. RKP verhindert das Auslesen von Schlüsseln, da das System keine Schlüssel direkt auf dem Gerät programmiert. Sie können diese Schlüssel nicht vom Gerät löschen. Wenn Sie einen Schlüssel widerrufen müssen, können Sie den Widerruf auf ein einzelnes Gerät ausrichten.
Bibliotheken für die Attestierungsüberprüfung
Verwenden Sie die Kotlin-Bibliothek zur Attestierungsüberprüfung, um Zertifikatsketten für die Schlüsselattestierung zu überprüfen. Außerdem sind in dieser Bibliothek bereits die neuen Stammzertifikate enthalten. Wenn Sie einen anderen Verifier verwenden, empfehlen wir, stattdessen zur Kotlin-Bibliothek zu wechseln. Sie ist gut getestet und deckt Grenzfälle ab, die bei benutzerdefinierten Prüfungen oft übersehen werden.
Liste des Zertifikatsperrstatus
Bestätigungsschlüssel können aus verschiedenen Gründen widerrufen werden, z. B. bei unsachgemäßer Handhabung oder wenn ein Angreifer versucht, sie zu extrahieren. Daher ist es wichtig, dass der Status jedes Zertifikats in einer Attestierungskette mit der offiziellen Liste des Zertifikatsperrstatus (Certificate Revocation List, CRL) abgeglichen wird.
Diese Liste wird von Google verwaltet und unter
https://android.googleapis.com/attestation/status veröffentlicht. Der Cache-Control
-Header in der HTTP-Antwort bestimmt, wie oft nach Updates gesucht werden soll. Daher ist für jedes zu überprüfende Zertifikat keine Netzwerkanfrage erforderlich.
Diese URL gibt eine JSON-Datei mit dem Sperrstatus für alle Zertifikate zurück, die keinen normalen gültigen Status haben. Das Format der JSON-Datei entspricht der folgenden JSON-Schema-Definition (Entwurf 07):
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "entries": { "description" : "Each entry represents the status of an attestation key. The dictionary-key is the certificate serial number in lowercase hex.", "type": "object", "propertyNames": { "pattern": "^[a-f1-9][a-f0-9]*$" }, "additionalProperties": { "type": "object", "properties": { "status": { "description": "[REQUIRED] Current status of the key.", "type": "string", "enum": ["REVOKED", "SUSPENDED"] }, "expires": { "description": "[OPTIONAL] UTC date when certificate expires in ISO8601 format (YYYY-MM-DD). Can be used to clear expired certificates from the status list.", "type": "string", "format": "date" }, "reason": { "description": "[OPTIONAL] Reason for the current status.", "type": "string", "enum": ["UNSPECIFIED", "KEY_COMPROMISE", "CA_COMPROMISE", "SUPERSEDED", "SOFTWARE_FLAW"] }, "comment": { "description": "[OPTIONAL] Free form comment about the key status.", "type": "string", "maxLength": 140 } }, "required": ["status"], "additionalProperties": false } } }, "required": ["entries"], "additionalProperties": false }
Beispiel für eine CRL:
{ "entries": { "2c8cdddfd5e03bfc": { "status": "REVOKED", "expires": "2020-11-13", "reason": "KEY_COMPROMISE", "comment": "Key stored on unsecure system" }, "c8966fcb2fbb0d7a": { "status": "SUSPENDED", "reason": "SOFTWARE_FLAW", "comment": "Bug in keystore causes this key malfunction b/555555" } } }
Richtlinie zum Sperren von Zertifikaten
Die Attestierung bildet das Fundament für die Bekämpfung von Missbrauch und für das Vertrauen in das Android-Ökosystem. Sie stellt eine kryptografisch verifizierbare Aussage für externe Parteien über den Boot-Status des Geräts bereit.
Die Zertifikate für Android-Attestierungsschlüssel werden gesperrt, wenn die Schlüssel manipuliert wurden. Das liegt an der kritischen Natur der Attestierungsgültigkeit. In diesem Abschnitt wird eine Richtlinie für den Fall beschrieben, dass Zertifikate widerrufen werden. Diese Richtlinie wird sich wahrscheinlich weiterentwickeln und im Laufe der Zeit zusätzliche Fälle umfassen.
Was qualifiziert sich für einen Widerruf?
Schlüsselverluste bei der Geräteattestierung betreffen nur den älteren Bereitstellungsmechanismus, der in Android unterstützt wird, und gelten nicht für Attestierungsschlüssel, die durch den neueren RKP-Mechanismus (Remote Key Provisioning) zertifiziert wurden.
Bei Attestierungsschlüsseln, die offengelegt wurden, können die zugehörigen Zertifikate immer gesperrt werden. Lecks können auf verschiedene Arten entdeckt werden, darunter:
- Analyse von Attestierungsdaten in der Praxis.
- Auffinden von Attestierungsschlüsseln in sozialen Medien oder auf anderen öffentlichen Websites.
- Berichte direkt von Sicherheitsforschern.
Nach der Erkennung werden Attestierungszertifikate widerrufen, indem ihre Seriennummern der Sperrliste hinzugefügt werden. Normalerweise erfolgt dies innerhalb weniger Tage nach der Entdeckung, kann in seltenen Fällen aber auch länger dauern. Die Sperrung von Zertifikaten für geleakte Attestierungsschlüssel wird in der Regel verzögert, wenn die von der Sperrung betroffenen Geräte sicher neu bereitgestellt werden können. Auch das Ausmaß der Auswirkungen des Widerrufs ist ein wichtiger Faktor für die Widerrufsfristen.