一:SSL Ping Mode

使用SSL来进行网络通信成为了很多mobile app的默认选择。最近一些文章发现:一些app并没有采用“额外的措施”来保证窃听不可以发生:这个“额外的步骤“就是SSL Pinning。

iOS上SSL连接默认是这样的,client 和server建立一个连接,server返回其 SSL证书。如果这个证书是被OS信任的证书机构签发,那么这个连接就正常进行下去。随后交换session key进行通信。这个关键点就在于“信任“。如果攻击者进行中间人攻击,mobile device很可能也会信任攻击者的证书。一般来说,攻击者不太可能有受信任的证书,所以通常情况下这个问题也不大。

使用SSL Pinning可以消除这个可能。也可能用户本身故意作为攻击者来探查加密的网络流量。可能使用 Charles 或者mitmproxy来安装一个受信任的证书。你的app需要有能力通过SSL Pinning来阻止这种嗅探攻击。

SSL Pinning就是client能够把server的证书和一个已知的server的证书的拷贝做对比,通过把server的SSL 证书捆绑到程序中就可以达到目的。在iOS中可以使用NSURLConnectionDelegate 协议中的connection:willSendRequestForAuthenticationChallenge: 来检查。

二:AFNetworking

AFURLConnectionOperationSSLPinningMode

typedef enum {
AFSSLPinningModeNone,
AFSSLPinningModePublicKey,
AFSSLPinningModeCertificate,
} AFURLConnectionOperationSSLPinningMode;

参考:http://wufawei.com/2013/05/SSL-Pining/

SSL Pining Mode 设置iOS SSL 连接安全的更多相关文章

  1. iOS SSL Pinning 保护你的 API

    随着互联网的发展,网站全面 https 化已经越来越被重视,做为 App 开发人员,从一开始就让 API 都走 SSL 也是十分必要的.但是光这样就足够了吗? SSL 可以保护线上 API 数据不被篡 ...

  2. SSL 通信原理及Tomcat SSL 配置

    SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...

  3. SSL 通信原理及Tomcat SSL 双向配置

    SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...

  4. Nginx负载均衡、SSL原理、生成SSL密钥对、Nginx配置SSL

    6月12日任务 12.17 Nginx负载均衡12.18 ssl原理12.19 生成ssl密钥对12.20 Nginx配置ssl扩展 针对请求的uri来代理 http://ask.apelearn.c ...

  5. 设置 iOS 应用的图标和名称

    Xcode 8.1 设置 iOS 应用的图标和名称的方法: 设置应用图标: 1.在 Resources 中添加图片: 2.在 Icon file 的属性值填写图标文件的名称. 设置应用名: 1.修改 ...

  6. Windows Server 2008设置远程桌面连接的最大数量

    远程桌面连接的默认数量是2,当有多个用户需要同时远程桌面连接时很不方便,可以设置远程桌面连接的最大数量. 1. 运行gpedit.msc: 2. 选择计算机配置-->管理模板-->Wind ...

  7. SQLServer2008设置 开启远程连接

    SQLServer2008设置 开启远程连接 前一段时间,学生分组做项目,使用SVN工具,要求功能使用存储过程,在数据库这块出现这么一个问题: A学生在他的数据库上添加了存储过程,需要其他的B,C,D ...

  8. Windows 7 中设置VPN(PPTP连接方式)

    第一步:打开控制面板-网络和共享中心(如图) 第二步:点击-设置新的连接或网络(如图) 第三步:选择-连接到工作区-下一步(如图) 第四步:如果已经存在其他连接,则在这一步选择”否,创建新连接“:如果 ...

  9. nginx配置ssl双向验证 nginx https ssl证书配置

    1.安装nginx 参考<nginx安装>:http://www.ttlsa.com/nginx/nginx-install-on-linux/ 如果你想在单IP/服务器上配置多个http ...

随机推荐

  1. 缓存(LruCache)机制

    LruCache 1.变量 private final LinkedHashMap<K, V> map; private int size;//已经存储的数据大小 private int ...

  2. pymysql - 错误备查

    1. 关于可变参数:*sqls 注意,传入 list 时需要加 *[1,2,3],否则会被拆成 [1], [2], [3], 导致数据类型错误

  3. 在web项目中发布jaxws

    概述 在web项目中发布基于jaxws的webservice. 参考文章:用JAX-WS在Tomcat中发布WebService 参考文章说,如果不是servlet3.0及以上,需要配置servlet ...

  4. 51nod 1201 (dp)

    整数划分 将N分为若干个不同整数的和,有多少种不同的划分方式,例如:n = 6,{6} {1,5} {2,4} {1,2,3},共4种.由于数据较大,输出Mod 10^9 + 7的结果即可.   In ...

  5. HDU 6336 Matrix from Arrays

    Problem E. Matrix from Arrays Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 ...

  6. 下载好的AE模板怎么用

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 下载好的AE模板怎么用_百度经验

  7. VB查询数据库之登陆窗体——机房收费总结(一)

    机房收费系统已经做了很长一段时间了,虽然到目前为止,仍然没有结束,但已经结节尾声了.我感觉现在有必要回首总结一下整个机房收费系统. 除了结账做了一半,报表接触一点之外,其他的都基本上差不多了.从做过的 ...

  8. C - 壮志难酬

    #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { ]= {'}; int i ...

  9. mysql启动错误解决

    mysql 启动时,报错一般都不明显,因此我们需要配置错误日志 #vim /etc/my.cnf xxxxxxxxxx 1   1 #vim /etc/my.cnf 在[mysqld]下添加 log_ ...

  10. [典型漏洞分享]上传导致的应用层DOS攻击

    YS 视频封面设置功能可上传大量图片,可进行资源消耗型DOS攻击[中] 问题描述:          YS允许用户为设备设置封面,后台在处理时允许用户间接可控上传图片的二级路径以及直接可控保存图片的文 ...