OkHttp 中的证书锁定 vs Android 网络安全配置

4

我正在尝试在我的应用程序中使用证书固定,我发现我可以直接使用OkHttp,或者通过Android网络安全配置实现。

我能想到的两个实际区别是:

  1. 在Android 7以下版本中,支持使用OkHttp方法。
  2. 即使不使用OkHttp,Android网络安全配置方法也适用。

还有其他区别吗?

2个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
3

编程方法

OkHttp方法支持Android 7以下版本

是的,但自己编写如此重要的安全软件并不容易,即使您在安全和证书固定方面很熟练,也很容易出现问题。

如果您确实需要支持Android API 24以下的证书固定,则建议您使用TrustKit

TrustKit Android是一个开源库,可轻松在任何Android应用程序中部署SSL公钥固定和报告。

配置方法

即使不使用OkHttp,Android网络安全配置方法仍然适用

这是它的主要优点之一,除了事实上它不容易出现编程错误,只有配置错误,例如未正确提取要固定的域的公钥固定和/或其中有拼写错误。

幸运的是,我们现在有一个在线免费工具可以帮助我们防止此类错误。 Mobile Certificate Pinning Generator将为我们想要在移动应用程序中固定的域提供一个准备好使用的network_security_config.xml文件。

例如:

Config tab

Network Security Config file

现在,您只需要将文件复制粘贴到项目中,该工具甚至有一步一步的教程,以向我们展示如何正确执行它。

您还可以使用该工具获取用于TrustKit的固定值:)


1
使用Android网络安全配置支持,“可以设置固定码的过期时间,超过该时间后将不再执行固定码”。但是由于OkHttp是一个编程API,您可以按照自己的方式进行配置。 但请注意,需要与安全团队讨论和计划如何应用固定码,以便您针对他们遵循的证书策略进行固定码。如果安全团队需要重新发布证书或更改提供商或切换到备份,则不希望锁定用户。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,