【问题标题】:Certificate Pinning in OkHttp vs Android Network Security ConfigOkHttp 与 Android 网络安全配置中的证书固定
【发布时间】:2020-12-08 04:05:29
【问题描述】:

我正在我的应用程序中尝试证书固定,我发现我可以使用OkHttp directly 或通过Android Network Security Config 来完成它。

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

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

还有其他的吗?

【问题讨论】:

    标签: android okhttp


    【解决方案1】:

    借助 Android 网络安全配置支持,“可以为 pin 设置过期时间,之后不再执行 pinning”。但归根结底,由于 OkHttp 是一种编程 API,您可以按照自己的方式对其进行配置。

    但提醒您与您的安全团队讨论和计划您如何应用固定,以便您根据他们遵循的证书政策固定。如果安全团队需要重新颁发证书或更改提供者或切换到备份,您不希望将用户锁定在外。

    【讨论】:

      【解决方案2】:

      程序化方法

      Android 7以下支持OkHttp方法

      是的,但他自己编写一个如此重要的安全软件并不是一件容易的事,即使你精通安全和证书锁定,你也可以轻松地把自己开枪打死。

      如果您确实需要支持低于 Android API 24 的证书固定,那么我建议您使用TrustKit

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

      配置方法

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

      这是它的主要优点之一,它不容易出现程序错误,只有配置错误,比如没有正确提取被固定域的公钥 pin 和/或上面有拼写错误。

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

      例如:

      现在您只需将文件复制粘贴到您的项目和工具中,甚至作为分步教程向我们展示如何正确操作。

      您还可以使用该工具获取要在 TrustKit 中使用的引脚 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-07
        • 2017-12-17
        • 2017-01-07
        • 1970-01-01
        • 2020-05-22
        • 1970-01-01
        • 2019-09-23
        • 2019-10-03
        相关资源
        最近更新 更多