使用金鑰認證功能驗證硬體支援金鑰組

有了金鑰認證功能,您可以更放心地將應用程式中使用的金鑰,儲存在裝置的硬體支援 KeyStore 中。以下各節將說明如何驗證硬體支援金鑰的屬性,以及如何解讀認證憑證的擴充資料。

事前準備:確認裝置支援硬體層級金鑰認證

在正式版層級環境中驗證裝置硬體支援金鑰的屬性之前,請先確認該裝置支援硬體層級金鑰認證。方法是查看認證憑證鏈結,檢查是否包含使用 Google 認證根金鑰簽署的根憑證,並確認金鑰說明資料結構中的 attestationSecurityLevel 元素已設為 TrustedEnvironmentStrongBox 安全性等級。

另外,請務必驗證憑證鏈結中的簽章,並在憑證撤銷狀態清單中確認憑證鏈結中的金鑰均未遭到撤銷。除非所有金鑰都有效,且根金鑰為 Google 根金鑰,否則不要完全信任認證。

擷取及驗證硬體支援的金鑰組

在金鑰認證期間,您可以指定金鑰組的別名並擷取其憑證鏈結,用來驗證該金鑰組的屬性。

如果裝置支援硬體層級金鑰認證,系統會使用認證根金鑰簽署此鏈結中的根憑證,該根金鑰已安全地佈建至裝置硬體支援的 KeyStore。

如要實作金鑰認證,請完成下列步驟:

  1. 使用 KeyStore 物件的 getCertificateChain() 方法,取得與硬體支援 KeyStore 相關聯的 X.509 憑證鏈結參照。
  2. 將憑證傳送至您信任的獨立伺服器以供驗證。

    注意:請勿在同一部裝置上完成下列驗證程序。如果該裝置上的 Android 系統遭到入侵,可能會導致驗證程序信任某些不可信的內容。

  3. 取得最適合您工具集的 X.509 憑證鏈結剖析和驗證程式庫的參照。確認根公開憑證可信,且每個憑證都簽署了鏈結中的下一個憑證。

  4. 請檢查每個憑證的撤銷狀態,確保沒有憑證遭到撤銷。

  5. 您可以選擇檢查僅出現在較新憑證鏈結中的佈建資訊憑證擴充資料。

    取得最適合您工具集的 CBOR 剖析器程式庫參照。找出最接近根憑證、且包含 佈建資訊憑證擴充資料的憑證。請使用剖析器從該憑證中擷取佈建資訊憑證的擴充資料。

    詳情請參閱「 佈建資訊擴充功能」一節。

  6. 取得最適合您工具集的 ASN.1 剖析器程式庫參照。找出最接近根憑證,且包含 金鑰認證憑證擴充資料的憑證。如果有佈建資訊憑證擴充資料,金鑰認證憑證擴充資料一定位於緊隨其後的憑證之中。請使用剖析器從該憑證中擷取金鑰認證憑證的擴充資料。

    注意:請勿假設金鑰認證憑證擴充資料位於鏈結的分葉憑證中。請只信任鏈結中首次出現的擴充資料。任何該擴充資料的例項都並非由安全硬體核發,而可能是擴充鏈結的攻擊者,在嘗試為不受信任的金鑰建立假認證時發出的。

    金鑰認證範例會使用 Bouncy Castle 中的 ASN.1 剖析器,擷取認證憑證的擴充資料。在建立自己的剖析器時,您可以將此範例做為參考。

    詳情請參閱「 金鑰認證擴充資料的結構定義」一節。

  7. 為求一致,請檢查您在先前步驟中擷取的擴充資料,並與預期硬體支援金鑰包含的值組合進行比較。

根憑證

認證的可信度取決於鏈結的根憑證。如果 Android 裝置已通過安裝 Google 一系列應用程式 (包括 Google Play) 所需的測試,且搭載 Android 7.0 (API 級別 24) 以上版本,則應使用由 Google 硬體認證根憑證簽署的認證金鑰。請注意,搭載 Android 8.0 (API 級別 26) 以下版本的裝置不需要認證。您可以下載一組有效的根憑證,格式為 JSON 陣列

根憑證

驗證金鑰認證憑證鏈結時,應使用下列兩個根憑證做為信任錨點。

-----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-----
  
先前核發的根憑證
-----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-----
  

如果您收到的認證鏈結中的根憑證包含這個公開金鑰,且鏈結中的憑證均未撤銷,則表示:

  1. 您的金鑰位於 Google 認為安全無虞的硬體中;且
  2. 具備認證憑證中說明的屬性。

如果認證鏈結有其他根公開金鑰,則 Google 不會對硬體安全性做出任何聲明。這並不代表您的金鑰遭駭,只是因為認證無法證明金鑰位於安全的硬體中。請據此調整您的安全性假設。

如果根憑證沒有本頁面的公開金鑰,可能原因如下:

  • 很可能是搭載 Android 7.0 以下版本的裝置,且不支援硬體認證。在此情況下,Android 的軟體實作認證會產生相同種類的認證憑證,但使用在 Android 原始碼中經過硬式編碼的金鑰簽署。此簽署金鑰並非密鑰,因此可能是由攻擊者偽裝成提供安全硬體的攻擊者所建立。
  • 另一個可能的原因是該裝置並非 Google Play 裝置。在這種情況下,裝置製造商可以自由建立自己的根憑證,並且定義認證資料的意義。請參閱裝置製造商的說明文件。請注意,Google 未發現已採用上述做法的裝置製造商。

硬體驗證根憑證輪替

Google 將推出新的 Android 金鑰認證根憑證。這項異動可提升敏感應用程式的認證程序安全性和可靠性。Android 金鑰認證 (KeyMint) 已產生新的根金鑰。新根是 ECDSA P-384 金鑰。

需要採取的行動

  • 如果您的應用程式依賴 Android 金鑰認證,請在 2026 年 3 月 31 日前,將新的根憑證新增至信任存放區。從 https://android.googleapis.com/attestation/root 下載新舊憑證。
  • 使用遠端金鑰佈建 (RKP) 的裝置將於 2026 年 2 月開始,接收以這個新憑證為根憑證的憑證。支援 RKP 的裝置將於 2026 年 4 月 10 日起全面採用新根憑證。
  • 更新認證程序,同時信任新舊根憑證。 使用原廠佈建金鑰的舊裝置不支援金鑰輪替,會繼續使用舊根憑證。
  • 憑證擴充功能架構本身不會變更,只有根目錄會變更。
  • 新根憑證的人類可讀和機器可讀形式都會公開提供。

最佳做法

請勿在執行階段查詢端點的信任根,因為這項操作會造成安全風險。 透過正式程序處理信任根的變更。

淘汰工廠金鑰:遠端金鑰佈建 (RKP)

如果裝置搭載 Android 16,系統只會支援 RKP。這項政策會逐步淘汰工廠金鑰。這項政策可改善驗證金鑰的佈建和管理方式,並擴充 Android 15 政策 (RKP 支援為選用)。 RKP 可防止金鑰外洩,因為系統不會直接在裝置上設定金鑰。 您無法從裝置刪除這些金鑰。如必須撤銷金鑰,可以針對單一裝置撤銷金鑰。

認證驗證程式庫

使用認證驗證 Kotlin 程式庫驗證金鑰認證憑證鏈結。此外,這個程式庫已整合新的根憑證。 如果您使用其他驗證器,建議改用 Kotlin 程式庫。經過充分測試,涵蓋自訂驗證器經常遺漏的邊緣情況。

憑證撤銷狀態清單

導致認證金鑰遭撤銷的原因有很多,包括處理錯誤或疑似遭到攻擊者擷取。因此,請務必根據官方憑證撤銷狀態清單 (CRL),檢查認證鏈結每個憑證中的狀態。這份清單是由 Google 維護,並發布於:https://android.googleapis.com/attestation/status。HTTP 回應中的 Cache-Control 標頭會決定檢查更新的頻率,因此不需要為所有已驗證憑證發出網路要求。這個網址會傳回 JSON 檔案,內含處於撤銷狀態的憑證,這類憑證沒有任何正常的有效狀態。JSON 檔案格式遵循以下 JSON 結構定義 (草稿 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
}

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"
    }
  }
}

憑證撤銷政策

認證是 Android 生態系統中防範濫用和信任的基礎。這項功能會向裝置外部的各方提供可透過密碼驗證的陳述內容,說明裝置的啟動狀態。

由於認證有效性至關重要,因此一旦 Android 認證金鑰遭到入侵,相關憑證就會遭到撤銷。本節概述憑證遭撤銷時的政策。這項政策可能會隨著時間演進,並列舉更多案例。

哪些情況會導致撤銷認證?

如果認證金鑰外洩,一律會撤銷憑證。 洩漏內容的發現方式有很多種,包括:

  • 分析實際環境中的認證資料。
  • 在社群媒體或其他公開網站上發現認證金鑰。
  • 直接來自安全研究人員的報告。

發現後,系統會將認證憑證的序號新增至撤銷清單,藉此撤銷憑證。通常會在發現違規行為後的幾天內發生,但極少數情況下可能需要更長時間。舉例來說,如果受影響的裝置可以安全地重新佈建,通常會延後撤銷外洩認證金鑰的憑證。撤銷的影響範圍也是決定撤銷時間的重要因素。

金鑰認證擴充資料的結構定義

佈建資訊擴充資料的結構定義