Android和Android中的证书固定iOS版

时间:2016-07-01 07:22:02

标签: android ios ssl-certificate pinning

当我们在我们的应用程序中导入SSL证书时,对于证书固定,我们必须在证书更新时每年更新apk / ipa。

我们可以克服这个!

参考文献:https://infinum.co/the-capsized-eight/articles/securing-mobile-banking-on-android-with-ssl-certificate-pinning

  

DRAWBACKS灵活性较低 - 当您执行SSL证书固定时,   更改SSL证书并不容易。对于每个SSL   证书更改,您必须更新应用程序,将其推送到   Google Play,希望用户能够安装它。

请指导您克服此问题。

2 个答案:

答案 0 :(得分:0)

查看有关证书固定和公钥固定的文章:https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning

一个重要的问题是你想要什么。如果您不希望每次证书更改时都发布新版本,您也可以键入证书的公钥,因为您可以在续订证书时保留相同的公钥,您的应用程序仍然可以使用新证书

另一个选择不是固定到服务器证书,而是固定到CA的中间证书或根证书。中间证书通常有效期较长。

答案 1 :(得分:0)

没有办法克服这个问题,但你可以减少痛苦:

  • 如果您固定锚证书(CA),该证书不会经常更改(每5年或10年)。
  • 优于固定证书本身,您应该将密钥固定在证书中,当您重新颁发证书时,该密钥不会更改。
  • 大多数固定库(例如我使用的工具:https://github.com/datatheorem/TrustKit)允许您指定固定策略的到期日期,以便在您忘记更新IPA / APK时,该应用仍可用于您的用户(但禁用了固定钉,这仍然相对安全)。