zoukankan      html  css  js  c++  java
  • 关于iOS SDK中HTTPS强制握手的经验分享

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

    一、 问题与需求

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

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

    二、理论前提

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

      2. “www.xxx.com”, “www.xxx.com.”会有相同的DNS解析结果。关于加.的解析,搜索下 fully qualified domain name

     

    三、解决方案

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

      2. 客户端:

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

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

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

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

     

    四、负作用

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

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

  • 相关阅读:
    获取Spring项目配置文件元素
    MyEclipse安装插件的几种方法
    排序-->桶排序
    排序-->冒泡排序
    排序-->选择排序
    排序-->插入排序
    约瑟夫问题----(数组+list)实现
    约瑟夫问题--->环形链表
    py---pycharm快捷键
    双向链表--简单的增删改查
  • 原文地址:https://www.cnblogs.com/hushuai-ios/p/5419630.html
Copyright © 2011-2022 走看看