【发布时间】:2020-12-08 04:05:29
【问题描述】:
我正在我的应用程序中尝试证书固定,我发现我可以使用OkHttp directly 或通过Android Network Security Config 来完成它。
我能想到的两个实际区别是:
- Android 7以下支持OkHttp方法
- 即使不使用 OkHttp,Android 网络安全配置方法也适用
还有其他的吗?
【问题讨论】:
我正在我的应用程序中尝试证书固定,我发现我可以使用OkHttp directly 或通过Android Network Security Config 来完成它。
我能想到的两个实际区别是:
还有其他的吗?
【问题讨论】:
借助 Android 网络安全配置支持,“可以为 pin 设置过期时间,之后不再执行 pinning”。但归根结底,由于 OkHttp 是一种编程 API,您可以按照自己的方式对其进行配置。
但提醒您与您的安全团队讨论和计划您如何应用固定,以便您根据他们遵循的证书政策固定。如果安全团队需要重新颁发证书或更改提供者或切换到备份,您不希望将用户锁定在外。
【讨论】:
Android 7以下支持OkHttp方法
是的,但他自己编写一个如此重要的安全软件并不是一件容易的事,即使你精通安全和证书锁定,你也可以轻松地把自己开枪打死。
如果您确实需要支持低于 Android API 24 的证书固定,那么我建议您使用TrustKit:
TrustKit Android 是一个开源库,可以轻松在任何 Android 应用中部署 SSL 公钥锁定和报告。
即使不使用 OkHttp,Android 网络安全配置方法也适用
这是它的主要优点之一,它不容易出现程序错误,只有配置错误,比如没有正确提取被固定域的公钥 pin 和/或上面有拼写错误。
幸运的是,我们现在有一个免费的在线工具来帮助我们防止此类错误。 Mobile Certificate Pinning Generator 将为我们提供一个准备好使用的 network_security_config.xml 文件,用于我们想要在我们的移动应用中固定的域。
例如:
现在您只需将文件复制粘贴到您的项目和工具中,甚至作为分步教程向我们展示如何正确操作。
您还可以使用该工具获取要在 TrustKit 中使用的引脚 :)
【讨论】: