2017-05-30 54 views
1

在使用谷歌安全网Android版的文档建议你如何在JWS上使用SSL主机名匹配?

验证SSL证书链,使用SSL主机名匹配 确保叶认证是问题attest.android.com

现在如何工作?我会假设我得到的JWS消息检查证书和签名等,但会验证从attest.android.com获取的证书,但attest.android.com不是一个活的主机。

SSL签名不需要事先知道域的公钥就可以进行验证吗?即我可以验证传入的JWS消息中的所有内容吗?我不明白这是可能的,是吗?

回答

0

不幸的是,文档并不是非常具有描述性,因为您必须执行此操作。

JWS数据包括三个部分:标头,有效载荷和签名。简化事情,标题包含用于签署有效负载的公钥证书,签名包含在最后。

要验证SafetyNet JWS,首先需要提取标头中嵌入的证书。这些证书具有可以验证到公共根证书的信任链,因此您应该验证这些证书确实是有效的证书,并且它们颁发给attest.android.com

然后您拿出签名,并根据嵌入式证书进行验证。

如果您选中此项,则可以信任有效载荷。但在查看basicIntegrityctsProfileMatch之前,请确保apkPackageNameapkDigestSha256apkCertificateDigestSha256与您的应用相匹配,因此您知道该响应实际上来自未修改的应用。

理想情况下,您的编程语言应该包含一个JWS库和一个SSL库,可以为您做到这一点,所以您不必亲自编写它。 public sample包括一个Java示例供您阅读。

相关问题