首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone应用程序到网页的安全https加密

iPhone应用程序到网页的安全https加密
EN

Stack Overflow用户
提问于 2012-02-08 01:49:45
回答 1查看 5.1K关注 0票数 8

我想卖一个iPhone应用程序,这将容纳一个网页的单一网页视图,比方说http://www.myapp.com/webview/我希望该应用程序有效地存储认证所需的凭证在网站上(即只有购买了应用程序的人可以查看此页面)

否则,我如何在iPhone上拥有安全、简单的webview,而不需要用户登录(本质上,他们购买应用程序将构成他们对页面的身份验证)

有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-08 04:04:03

没有绝对的方法来实现这个目标。如果您的web服务使用共享凭据(捆绑在应用程序中),则可以对该凭据进行反向工程。最终,不可能确保运行在另一台机器上的客户端是“您的”客户端。

关于这一点已经有很多讨论。这不是没有希望的,只是不可能解决100% (甚至90%)。SSL上的一个简单的共享密钥将阻止大多数攻击者,而不会伤害您的用户或花费大量开发成本。这是一种混淆,而不是安全性,但廉价和“最有效”比昂贵和“最有效”要好得多。

如果你有一个非常高价值的产品,那么它可能需要更积极(昂贵)的解决方案。所有这些解决方案都包括以下两种情况之一:

  • Authenticating用户而不是程序,或者
  • 持续保持警惕,监视新的攻击并用修补程序进行响应。

后者非常昂贵,而且永远不会结束。确保它是值得的。

其他一些有用的讨论:

关于我提到的“上的共享密钥”,我想指出一件事。请记住,如果您不验证证书,您将受到非常容易的中间人攻击。像Charles这样的现成代理可以做到这一点。最好的方法是确保返回的SSL证书由您的根证书签名,而不仅仅是“任何受信任的证书”。您可以使用SecTrustSetAnchorCertificates()重新配置您的应用程序信任哪些证书。iOS5:PTL在第11章(第221页)中介绍了这项技术。我还将其封装到一个名为RNPinnedCertValidator的库中。

另一个好的层次是实现一个质询-响应系统,在该系统中,服务器验证客户端是否拥有共享的秘密,而无需将其放到网络上。维基百科上关于Challenge-resonse authentication的文章对该算法进行了很好的解释。

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9181186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档