【问题标题】:How to implement SSL Pinning on SFSafariViewController?如何在 SFSafariViewController 上实现 SSL Pinning?
【发布时间】:2017-03-08 01:58:21
【问题描述】:

在我的应用程序中,我在AFNetworking 的帮助下为我的所有 REST 请求设置了 SSL Pinning。这有助于防止 MITM 攻击。当我使用 Charles 代理作为“中间人”测试我的应用程序时,请求按预期失败。但是,我通过 SFSafariViewController 的登录流程(Oauth 2.0)并非如此。那是因为……这个登录过程与AFNetworking无关。

如果有办法在 SFSafariViewController 上实现 SSL Pinning,我相信这个问题可以解决。

1) 有没有办法做到这一点?我在网上找不到任何关于此的内容。 2) 人们有哪些方法可以解决这个问题?好像是安全问题。

【问题讨论】:

  • 我很好奇您是否发现了关于这个主题的任何有趣的东西?
  • 不幸的是,我不记得曾经找到解决此问题的方法!不过,我已经在很久以前研究过这个了
  • @GabrielPires 你找到解决方案了吗?我现在也有同样的情况。
  • @AuRis,对不起,伙计!自从我发布问题以来,我没有看过这个问题。不幸的是,当时我还没有找到解决方案。现在已经快两年了,也许有人找到了解决方案。

标签: ios security oauth-2.0 ssl-certificate sfsafariviewcontroller


【解决方案1】:

对我来说,以下评论是有道理的。 没有办法在 SFSafariViewController 中进行任何 SSL 固定,原因有两个:

  1. SFSafariViewController 类不提供任何 API 自定义 SSL 验证和处理身份验证挑战。
  2. 使用时,SFSafariViewController实际上是在一个单独的 进程和应用程序的代码根本无法访问它。因此 swizzling 不会影响 SFSafariViewController,因为它只是 发生在应用程序的进程中。

参考:- https://github.com/datatheorem/TrustKit/issues/163

【讨论】:

    【解决方案2】:

    您可以使用WKWebView (WebKit) 并创建您自己的SFSafariViewController 版本,该版本在您使用SFSafariViewController 的位置具有您的pin,但您不能在SFSafariViewController 中使用证书pin。如果您使用SFSafariViewController 下载配置文件,那么您将被卡住,不允许证书固定,WKWebView 不会“存储”用于安装的配置文件,据我所知,只有 Safari.app 和 SFSafariViewController 可以做到这一点.

    【讨论】:

      猜你喜欢
      • 2022-06-11
      • 2019-01-10
      • 2019-08-19
      • 2012-06-08
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多