【发布时间】:2017-12-17 06:03:03
【问题描述】:
我想提高我的 Android 应用程序的安全性。我正在使用 OkHttp 版本 3。
如何:
1) 在 OkHttp 中使用证书固定。
2) 在 OkHttp 中使用公钥固定。
当我这样做时:
httpClient.certificatePinner(new CertificatePinner.Builder()
.add(BuildConfig.HOST_NAME, "sha256/VRtYBz1boKOAjChfZYssN1AeNZCjywl77l2RTl/v110=")
.build());
证书固定工作。但是公钥固定呢?如何启用它?
【问题讨论】:
-
@CommonsWare 是否意味着上述解决方案同时执行(证书和公钥固定)?
-
从技术上讲,它正在做公钥固定。 “证书固定”和“公钥固定”具有相同的基本效果。在 Android 上(使用 OkHttp 和 Android 7.0 的网络安全配置),我们一直使用术语“证书固定”来表示真正的“公钥固定”。就个人而言,我需要更好地正确使用这些术语。我不知道有任何实现真正证书固定的 Android 解决方案。
-
感谢@CommonsWare 的帮助!
-
为了清楚起见,OkHttp 不支持通过 Http 响应标头的 HPKP (en.wikipedia.org/wiki/HTTP_Public_Key_Pinning)。但是手动检查(包括您的应用从响应标头中抓取和存储引脚以供将来会话使用)将起作用。
标签: android okhttp3 certificate-pinning public-key-pinning