如何检查 Android 的 KeyStore 的证书撤销列表 (CRL)?

How to check the Certificate Revocation Lists (CRL) of Android's KeyStore?

我想使用 Android 的硬件 KeyStore 功能,所以我使用了 Pixel3 phone 来获取 KeyStore 对象的证书链,如 this article 所示。

例如,查看一个特定的 .cer 文件,CRL 分发点是 https://android.googleapis.com/attestation/crl/8F6734C9FA504789

在浏览器中打开此 link 会出现 404 错误。即使只调用 https://android.googleapis.com 也会产生相同的 404 错误。

我尝试使用 Google 的 OAuth2 Playground 来正确验证,但即使是来自那里的请求 returns 也出现 404 错误。

此外,当使用 PKIXParameters class 验证 Java 中的证书链时,它会抛出一个 CertPathValidationException 表示 "Could not determine revocation status"。但是当用 pkix_parameters.setRevocationEnabled(false) 禁用吊销检查时,链的验证是成功的。

我也不认为这是一个 API 身份验证问题,因为页面 returns 404,而不是 "Invalid Project ID" 在其他端点上的问题。

我的问题主要是我错过了什么,为什么我在尝试获取 CRL 分发点时只收到 404?

显然某些设备的认证证书没有有效的 CRL 分发点。我已经用不同 Pixel 3 设备的认证证书对此进行了测试,并且还测试了来自 GrapheOS/AttestationSamples.

的一些设备

这是中间证明证书没有有效 CRL 分发点的设备列表。

+-----------+----------------+
|   samsung |   SM-M205F     |
|   Xiaomi  |   MI 9         |
|   Xiaomi  |   POCOPHONE F1 |
|   OnePlus |   GM1913       |
|   Google  |   Pixel 3a XL  |
|   Google  |   Pixel 3a     |
|   Google  |   Pixel 3      |
|   Google  |   Pixel 3 XL   |
|   HUAWEI  |   AUM-L29      |
+-----------+----------------+