6.1 验证服务器通信

NSURLProtectionSpace : 需要认证的服务器或域, 是所有进来的 NSURLAuthenticationChallengs 的一个属性

NSURLProtectionSpace


默认端口  
认证方式


挑战-响应

实现 willSendRequestForAuthenticationChallenge: 可以检查挑战, 确定是否想要响应服务器的认证挑战, 同时发出恰当的挑战响应. 认证挑战响应是 NSURLCredential 的实例, 可用于创建信任、用户名/密码组合和客户端证书, 下一节将会对此进行详细介绍. 在创建服务器信任的 NSURLCredential 时, 委托需要对信任做出判断


一种可能的保护空间验证

当确定要支持的保护空间后, 请先创建它们, 然后将它们添加到数组中以便与进来的认证挑战相比较. 如果认证挑战的保护空间与所有支持的空间不匹配, 那么你应该通知用户并取消认证挑战

既然已经实现了服务器验证, 那它是如何保护应用的用户呢? 这种特定的验证会确保应用只与指定的服务器进行通信. 如果发现处于恶意网络之上, 传输被重新路由到第三方服务器(比如 yourbankingdomain.phishing.com), 那么保护空间验证就会因不匹配的主机而失败, 后续的通信也会终止. 更为重要的是, 登录认证信息、银行账号等信息是绝不会传输的

复杂的 iOS 应用常常会与 Web Service 通信, 这些服务可能经常会发生变化. 但遗憾的是, iOS 应用的修改需要经由 Apple 审批, 这个结果是不可预知的. 组织肯定不希望遇到必须立刻修改 Web Service 认证的情况, 否则应用就无法正常运行. 要想解决这个风险问题, 应用包含的保护空间需要考虑到与备份认证服务器或其他备选服务器通信的问题. 包含多个保护空间可以实现一定程序的灵活性, 不过这最终是每个组织都需要评估的安全决策

实现后端灵活性的另一种方式是只验证认证挑战中的某些属性, 比如主机、端口与协议是否与预先定义好的相匹配. 比如, 可以验证挑战是从使用 SSL、端口号为 443 的特定主机发出的. 只要不满足其中任何一个条件, 代码就会立刻向用户发出警告, 告诉用户无法建立安全的连接.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,095评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,028评论 6 13
  • 总是在开始,也总是在停歇…… 这是我在简书上发表的第一篇文章,我想说说我自己,说说我和文字的渊源。 说起和文字的渊...
    黎湘的泗埝阅读 2,361评论 5 5
  • 我在一周前已经拿起这本书在看了,之前才看了没几页,进度很慢,看书的时间也是有限,这两天正好双休,我终于有...
    22hcy666阅读 6,054评论 1 2
  • 梅雨时节,淅淅沥沥,像个调皮的孩子,想停就停,想下就下,任性不已。我站在窗口,下面熙熙攘攘的人群,急匆匆的走过,我...
    章櫯琝阅读 1,306评论 0 0

友情链接更多精彩内容