Hardwaregestützte Schlüsselpaare mit Schlüsselattestierung prüfen

Die Schlüsselattestierung gibt Ihnen mehr Sicherheit, dass die in Ihrer App verwendeten Schlüssel im hardwaregestützten Schlüsselspeicher eines Geräts gespeichert sind. In den folgenden Abschnitten wird beschrieben, wie Sie die Eigenschaften von hardwaregestützten Schlüsseln überprüfen und wie Sie die Erweiterungsdaten der Attestierungszertifikate interpretieren.

Vorbereitung: Prüfen Sie, ob Ihr Gerät die Schlüsselattestierung auf Hardwareebene unterstützt.

Bevor Sie die Eigenschaften der hardwaregestützten Schlüssel eines Geräts in einer Produktionsumgebung überprüfen, müssen Sie prüfen, ob das Gerät die Schlüsselattestierung auf Hardwareebene unterstützt. Prüfen Sie dazu, ob die Attestierungszertifikatskette ein Root-Zertifikat enthält, das mit dem Google-Attestierungs-Root-Schlüssel signiert ist, und ob das attestationSecurityLevel Element in der Schlüsselbeschreibung Datenstruktur auf das TrustedEnvironment Sicherheitsniveau oder auf das StrongBox Sicherheitsniveau festgelegt ist.

Außerdem ist es wichtig, die Signaturen in der Zertifikatskette zu überprüfen und zu bestätigen, dass keine der Schlüssel in der Kette widerrufen wurde. Dazu können Sie die Liste mit dem Status des Zertifikatswiderrufs prüfen. Wenn nicht alle gültig sind und der Root-Schlüssel nicht der Google-Root-Schlüssel ist, sollten Sie der Attestierung nicht vollständig vertrauen.

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 dieser können Sie die Eigenschaften des Schlüsselpaars überprüfen.

Wenn das Gerät die Schlüsselattestierung auf Hardwareebene unterstützt, wird das Root-Zertifikat in dieser Kette mit einem Attestierungs-Root-Schlüssel signiert, der sicher im hardwaregestützten Schlüsselspeicher des Geräts bereitgestellt wird.

So implementieren Sie die Schlüsselattestierung:

  1. Verwenden Sie die Methode eines KeyStore Objekts getCertificateChain() , um einen Verweis auf die Kette der X.509-Zertifikate zu erhalten, die mit dem hardwaregestützten Schlüsselspeicher verknüpft sind.
  2. Senden Sie die Zertifikate zur Überprüfung an einen separaten Server, dem Sie vertrauen.

    Achtung:Führen Sie den folgenden Überprüfungsprozess auf demselben Gerät aus. Wenn das Android-System auf diesem Gerät kompromittiert ist, kann es passieren, dass der Überprüfungsprozess etwas als vertrauenswürdig einstuft, das nicht vertrauenswürdig ist.

  3. Rufen Sie einen Verweis auf die Bibliothek zum Parsen und Überprüfen von X.509-Zertifikatsketten ab, die am besten zu Ihrem Toolset passt. Prüfen Sie, ob das öffentliche Root-Zertifikat vertrauenswürdig ist und ob jedes Zertifikat das nächste Zertifikat in der Kette signiert.

  4. Prüfen Sie den Widerrufsstatus jedes Zertifikats, um sicherzustellen, dass keines der Zertifikate widerrufen wurde.

  5. Optional können Sie die Zertifikatserweiterung mit den Bereitstellungsinformationen prüfen, die nur in neueren Zertifikatsketten vorhanden ist.

    Rufen Sie einen Verweis auf die CBOR-Parserbibliothek ab, die am besten zu Ihrem Toolset passt. Suchen Sie das Zertifikat, das dem Root-Zertifikat am nächsten ist und die Zertifikatserweiterung mit den Bereitstellungsinformationen enthält. Verwenden Sie den Parser, um die Daten der Zertifikatserweiterung mit den Bereitstellungsinformationen aus diesem Zertifikat zu extrahieren.

    Weitere Informationen finden Sie im Abschnitt zur Zertifikatserweiterung mit den Bereitstellungsinformationen.

  6. Rufen Sie einen Verweis auf die ASN.1-Parserbibliothek ab, die am besten zu Ihrem Toolset passt. Suchen Sie das Zertifikat, das dem Root-Zertifikat am nächsten ist und die Zertifikatserweiterung für die Schlüsselattestierung enthält. Wenn die Zertifikatserweiterung mit den Bereitstellungsinformationen vorhanden war, muss sich die Zertifikatserweiterung für die Schlüsselattestierung im unmittelbar nachfolgenden Zertifikat befinden. Verwenden Sie den Parser, um die Daten der Zertifikatserweiterung für die Schlüsselattestierung aus diesem Zertifikat zu extrahieren.

    Achtung:Gehen Sie nicht davon aus, dass sich die Zertifikatserweiterung für die Schlüsselattestierung im Blattzertifikat der Kette befindet. Nur das erste Vorkommen der Erweiterung in der Kette ist vertrauenswürdig. Alle weiteren Instanzen der Erweiterung wurden nicht von der sicheren Hardware ausgestellt und möglicherweise von einem Angreifer, der die Kette erweitert hat, um gefälschte Attestierungen für nicht vertrauenswürdige Schlüssel zu erstellen.

    Im Beispiel für die Schlüssel attestierung 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 der Zertifikatserweiterung für die Schlüsselattestierung.

  7. 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 bestanden haben, um die Google-App-Suite einschließlich Google Play zu erhalten, und die mit Android 7.0 (API-Level 24) oder höher auf den Markt gekommen sind, sollten Attestierung schlüssel verwendet werden, die mit dem Google-Root-Zertifikat für die Hardwareattestierung signiert sind. Die Attestierung war erst ab Android 8.0 (API-Level 26) erforderlich. Die gültigen Root-Zertifikate können als ein JSON-formatiertes Array heruntergeladen werden.

Root-Zertifikate

Die folgenden beiden Root-Zertifikate sollten als Vertrauensanker verwendet werden, wenn Sie eine Zertifikatskette für die Schlüssel attestierung überprüfen.

-----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-----
-----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 Root-Zertifikat in der Attestierungskette, die Sie erhalten, diesen öffentlichen Schlüssel enthält und keines der Zertifikate in der Kette widerrufen wurde, wissen Sie Folgendes:

  1. Ihr Schlüssel befindet sich in Hardware, die Google als sicher einstuft.
  2. Er hat die im Attestierungszertifikat beschriebenen Eigenschaften.

Wenn die Attestierungskette einen anderen öffentlichen Root-Schlüssel enthält, macht Google keine Aussagen zur Sicherheit der Hardware. Das bedeutet nicht, dass Ihr Schlüssel kompromittiert ist, sondern nur, dass die Attestierung nicht beweist, dass sich der Schlüssel in sicherer Hardware befindet. Passen Sie Ihre Sicherheitsannahmen entsprechend an.

Wenn das Root-Zertifikat den öffentlichen Schlüssel auf dieser Seite nicht enthält, gibt es zwei wahrscheinliche Gründe:

  • Höchstwahrscheinlich wurde das Gerät mit einer Android-Version unter 7.0 auf den Markt gebracht und unterstützt keine Hardwareattestierung. 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 fest codiert ist. Da dieser Signaturschlüssel kein Geheimnis ist, wurde die Attestierung möglicherweise von einem Angreifer erstellt, der sich als Anbieter sicherer Hardware ausgegeben hat.
  • Der andere wahrscheinliche Grund ist, dass das Gerät kein Google Play-Gerät ist. In diesem Fall kann der Gerätehersteller ein eigenes Root-Zertifikat erstellen und die Bedeutung seiner Attestierungsdaten definieren. Weitere Informationen finden Sie in der Dokumentation des Geräteherstellers. Google sind keine Gerätehersteller bekannt, die dies getan haben.

Rotation von Root-Zertifikaten für die Hardwareattestierung

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 sensible Anwendungen. Für die Android-Schlüsselattestierung (KeyMint) wurde ein neuer Root-Schlüssel generiert. Der neue Root-Schlüssel ist ein ECDSA P-384-Schlüssel.

So geht es weiter

  • Wenn Ihre App auf die Android-Schlüsselattestierung angewiesen ist, fügen Sie die neuen Root-Zertifikate bis zum 31. März 2026 Ihren Vertrauens speichern hinzu. Laden Sie sowohl das neue als auch das alte Zertifikat von https://android.googleapis.com/attestation/root herunter.
  • Geräte, die die Remote-Schlüsselbereitstellung (Remote Key Provisioning, RKP) verwenden, erhalten ab Februar 2026 Zertifikate, die auf diesem neuen Zertifikat basieren. Geräte mit aktivierter RKP verwenden ab dem 10. April 2026 ausschließlich das neue Root-Zertifikat.
  • 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 das alte Root-Zertifikat.
  • Das Schema der Zertifikatserweiterung bleibt unverändert. Nur das Root-Zertifikat ändert sich.
  • Sowohl die für Menschen als auch die für Maschinen lesbare Form des neuen Root-Zertifikats sind öffentlich verfügbar.

Best Practices

Fragen Sie zur Laufzeit keinen Endpunkt nach vertrauenswürdigen Root-Zertifikaten ab, da dies Sicherheitsrisiken birgt. Änderungen an Root-Zertifikaten sollten über einen formellen Prozess abgewickelt werden.

Auslaufen von werkseitigen Schlüsseln: Remote-Schlüsselbereitstellung (Remote Key Provisioning, RKP)

Auf Geräten, die mit Android 16 auf den Markt kommen, wird nur RKP unterstützt. Mit dieser Richtlinie werden werkseitige Schlüssel auslaufen. Sie verbessert die Bereitstellung und Verwaltung von Attestierungsschlüsseln und erweitert die Android 15-Richtlinie, bei der die RKP-Unterstützung optional war. RKP verhindert das Auslaufen 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 beschränken.

Bibliotheken zur 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 die neuen Root-Zertifikate bereits in diese Bibliothek integriert. Wenn Sie einen anderen Verifizierer verwenden, empfehlen wir, stattdessen zur Kotlin-Bibliothek zu wechseln. Sie ist gut getestet und deckt Grenzfälle ab, die bei benutzerdefinierten Verifizierern oft übersehen werden.

Liste mit dem Status des Zertifikatswiderrufs

Attestierungsschlüssel können aus verschiedenen Gründen widerrufen werden, z. B. bei unsachgemäßer Handhabung oder wenn ein Angreifer sie möglicherweise extrahiert hat. Daher ist es wichtig, den Status jedes Zertifikats in einer Attestierungskette mit der offiziellen Liste mit dem Status des Zertifikatswiderrufs (Certificate Revocation List, CRL) zu vergleichen. 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, sodass nicht für jedes zu überprüfende Zertifikat eine Netzwerkanfrage erforderlich ist. Diese URL gibt eine JSON-Datei mit dem Widerrufsstatus für alle Zertifikate zurück, die keinen normalen gültigen Status haben. Das Format der JSON-Datei entspricht der folgenden JSON-Schema (Entwurf 07) Definition:

{
  "$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 Zertifikatssperrliste:

{
  "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 für den Zertifikatswiderruf

Die Attestierung ist das Rückgrat der Missbrauchsprävention und des Vertrauens im Android-Ökosystem. Sie liefert externen Parteien eine kryptografisch verifizierbare Aussage zum Bootmodus des Geräts.

Die Zertifikate für Android-Attestierungsschlüssel werden widerrufen, wenn die Schlüssel kompromittiert sind, da die Gültigkeit der Attestierung von kritischer Natur ist. In diesem Abschnitt wird eine Richtlinie für den Widerruf von Zertifikaten beschrieben. Diese Richtlinie wird sich wahrscheinlich weiterentwickeln und im Laufe der Zeit weitere Fälle umfassen.

Was qualifiziert für den Widerruf?

Für Attestierungsschlüssel, die geleakt wurden, können die Zertifikate immer widerrufen werden. Lecks können auf verschiedene Weise entdeckt werden, z. B.:

  • Analyse von Attestierungsdaten in freier Wildbahn
  • Entdeckung von Attestierungsschlüsseln in sozialen Medien oder auf anderen öffentlichen Websites
  • Berichte direkt von Sicherheitsforschern

Nach der Entdeckung werden Attestierungszertifikate widerrufen, indem ihre Seriennummern der Widerrufsliste hinzugefügt werden. Normalerweise geschieht dies innerhalb weniger Tage nach der Entdeckung, kann aber in seltenen Fällen länger dauern. So wird der Widerruf von Zertifikaten für geleakte Attestierungsschlüssel in der Regel verzögert, wenn die betroffenen Geräte sicher neu bereitgestellt werden können. Auch das Ausmaß der Auswirkungen des Widerrufs ist ein wichtiger Faktor für die Zeitpläne für den Widerruf.

Datenschema der Zertifikatserweiterung für die Schlüsselattestierung

Datenschema der Zertifikatserweiterung mit den Bereitstellungsinformationen