关于Android FIDO U2F API中的appID,我有两个问题。

是否可以使用facetID直接标识我的应用,还是需要一个HTTPS URL指向包含有效facetID的JSON?我怀疑可能无法直接将facetID用作appID(尽管官方FIDO规范应允许使用它)。

我的另一个问题是关于facetID识别我的应用程序。 official FIDO specification如下定义Android应用程序的facetID:


  在Android [ANDROID]情况下,FacetID必须是从APK签名证书[APK-Signing]的Base64编码SHA-1哈希派生的URI:

android:apk-key-hash:<base64_encoded_sha1_hash-of-apk-signing-cert>



当我查看Google样本中有效的example时,使用的facetID似乎包含其他内容。

有问题的facetID(绝对不是base64):


android:apk-key-hash:bkHnlWEV_jRCPdYGJfwOl7Sn_CLC_2TE3h4TO1_n34I



这是包含有关facetID的JSON

如果API不希望使用base64编码的哈希,那么它希望使用哪种格式(以及如何生成)?

最佳答案

解:

Google由于某种原因未遵循FIDO U2F规范。计算apk签名证书的SHA-256(不是每个FIDO规范的SHA-1),然后计算base64。然后在末尾删除=字符。

09-05 01:59