【问题标题】:Avoid Man in Middle attack over SSL避免通过 SSL 进行中间人攻击
【发布时间】:2014-08-05 22:36:30
【问题描述】:

我的应用目前正在接受所有带有“EasySSLSocketFactory”的不受信任的证书。我想关注网络浏览器的行为,它显示证书信息并要求用户将证书添加到受信任的商店或取消它。

有人知道怎么做吗?谢谢。

【问题讨论】:

  • 另见 GitHub 上的moxie0/AndroidPinning。它是一种首次使用信任 (TOFU) 方案。将 Pinning 与常规 X509 验证相结合,它是一个更安全的系统(比浏览器为 CA zoo 提供的系统更好)。
  • 我的应用有 1000 多个用户,他们可能会使用他们的自我证书。 Android Pinning 似乎需要这些证书的一些引脚。我对吗?但我不能向用户询问这些别针,因为它会太多。否则新用户将无法使用该应用
  • 两个用例:(1)如果证书是由受信任的权威机构颁发的,那么不要提示用户。固定证书并查找意外更改。 (2) 如果证书是自签名的,则在首次使用时信任它,不要提示用户。在这两种情况下:固定证书。然后:(3)如果公钥发生意外变化(pin坏了),则提示用户并警告他们有问题。您可能还想熟悉一下 Peter Gutmann 的 Engineering Security。他谈到了所有这些以及更多......
  • 感谢您的快速回复。这可能是一个愚蠢的问题,但我怎样才能固定证书?它的安全性如何?

标签: android ssl


【解决方案1】:

您需要为要提示给用户的案例显示您自己的弹出对话框。阅读this

您需要设置自己的验证级别。

参考Accepting a certificate for HTTPs on Android

【讨论】:

  • 让我看看我是否理解,因为我对这个话题有点生疏。我的应用程序有 1000 多个用户,每个用户可能都有自己的证书,所以我正在做的是使用 EasySSLSocketFactory 信任所有证书,但现在我想问他们是否要添加它。如您所见,我无法获取证书用户并将其加载到应用程序中,因为它暗示了 android 开发人员页面。而且我对“固定”概念不是很熟悉。我可以将它用于我想要的这种情况吗?
  • 好的,顺便说一句,你有没有机会看看:nelenkov.blogspot.com/2012/12/…
  • 好的,我看到了,但似乎我需要一个 pin 证书,我不确定我是否可以获得我的用户的每个 pin 证书,因为如果出现新用户会发生什么而且他的服务器中有一个自签名证书,他将无法登录我的应用程序,对吧?
  • 最后我解决了它,创建了我自己的验证级别。感谢这些链接owasp.org/index.php/Certificate_and_Public_Key_Pinning ----- nelenkov.blogspot.com/2012/12/…
猜你喜欢
  • 1970-01-01
  • 2011-04-25
  • 2020-05-12
  • 2011-01-07
  • 1970-01-01
  • 2016-06-08
  • 2014-03-25
  • 2016-03-10
  • 2013-03-28
相关资源
最近更新 更多