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

时间:2019-06-14 09:55:47

标签: java android google-api android-keystore certificate-revocation

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

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

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

我尝试使用Google的OAuth2 Playground进行正确的身份验证,但即使来自那里的请求也会返回404错误。

此外,当使用PKIXParameters类对Java中的证书链进行配置时,它会抛出一个CertPathValidationException,说“无法确定吊销状态”。但是,当使用pkix_parameters.setRevocationEnabled(false)禁用吊销检查时,链的验证就成功了。

我也不希望它成为API身份验证问题,因为页面返回404,而不是像其他端点上那样返回“无效的项目ID”。

我的问题主要是我缺少什么,为什么在尝试获取CRL分发点时为什么只得到404?

1 个答案:

答案 0 :(得分:0)

显然,某些设备的证明书没有有效的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      |
+-----------+----------------+