码迷,mamicode.com
首页 > 移动开发 > 详细

关于iOS SDK中HTTPS强制握手的经验分享

时间:2016-04-22 06:42:38      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

因项目需要,对HTTPS强制握手作了研究,分享处理方法如下:

一、 问题与需求

  问题:接入方可能对同个域名做了HTTPS证书验证,在缓存机制下,进入SDK中默认复用HTTPS握手;或者NSURLProtocol对验证作了拦截。

  需求: 基于SDK方不信任接入方验证,需强制重新握手。

 

二、理论前提

  1. 握手缓存以IP地址,DNS域名,端口为KEY对握手作缓存

  2. “www.xxx.com”, “www.xxx.com.”会有相同的DNS解析结果

 

三、解决方案

  1. 服务器方给出专用IP,域名或端口

  2. 客户端:

    a. 在统一入口的API访问时,将域名后加“.”作为伪造URL

    b. 伪造URL触发握手后,请求返回didLoad或失败did fail均不作处理,将伪造API去除“.”,

        变回标准API,继续正常通讯

    c. SDK握手添加标识,因URLProtocol或证书缓存导致的 “跳过验证“ 均可被防御

 

四、负作用

  1.不复用接入方的握手,增加了网络访问时间

      2.增加了一次伪造URL访问的通讯时间

关于iOS SDK中HTTPS强制握手的经验分享

标签:

原文地址:http://www.cnblogs.com/hushuai-ios/p/5419630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!