- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
iOS环境下的中间人攻击风险浅析课案
iOS环境下的中间人攻击风险浅析作者:轩夏官网:百度搜素“阿里聚安全”官方微博:阿里聚安全官方微信:阿里聚安全0x00?概述中间人攻击(Man-in-the-Middle Attack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。通过中间人攻击可以窃取信息、进行篡改、欺骗等多种攻击。对于Android平台上的中间人攻击已经讨论的比较多,今天来聊聊iOS平台上的中间人攻击,以及iOS的可信证书管理。0x01?中间人攻击在未做特殊说明的情况下,本文所有实验环境为:iPhone 5 + iOS 8.1.2 +?已越狱。1.1?中间人攻击分级iOS平台上根据中间人攻击的难度,可以将App通信的安全级别分为3个等级:1)??????level1:在向手机中没安装攻击者证书的情况下可以进行中间人攻击2)??????level2:在向手机中安装攻击者证书的情况下可以进行中间人攻击3)??????level3:在向手机中安装攻击者证书的情况下不可以进行中间人攻击对于这三种情况,我们以一个例子分别对这三种情况进行说明。借用Owasp关于iOS https中间人演示的例子,稍做修改。正常情况下,程序启动时如图1,点击“Fetch Secret”程序请求server端数据并显示,如图2。图1:启动界面图 2 正常获取数据1.1.1 不导入证书可中间人在此次连接的NSURLConnection对象的delegate类中只实现一个connection:didReceiveAuthenticationChallenge:方法,如图3。图 3 连接校验方法设置burp suite,开启代理,如图4。图 4 burp suite设置手机设置代理为burp suite运行pc的地址,如图5:图 5 手机代理设置运行程序,点击“Fetch Secret”,程序正常获取到了与图2相同的数据,burp suite也截获了所有信息,如图6,中间人攻击成功:图 6 burp suite截获数据1.1.2 ?导入证书可中间人? ? ?修改程序,在NSURLConnection对象的delegate类中实现connection:willSendRequestForAuthenticationChallenge:方法,如图7:图 7 连接校验方法? ? ? ?其他设置与1.1.1小节完全相同,程序发现连接异常,终止获取数据,如图8,burp suite也理所当然获取数据失败:图 8 获取数据失败此时,向手机中安装burp suite证书,如图9:图 9 安装burp证书重新打开应用,点击“Fetch Secret”,应用正常获取数据,burp suite也截获了全部数据,中间人攻击成功。1.1.3 导入证书不可中间人? ? ?继续对程序进行修改,将公钥证书放入应用中,并修改connection:didReceiveAuthenticationChallenge:方法在连接过程中获取证书信息,对server端证书进行强校验,如图10。同时,注释掉connection:willSendRequestForAuthenticationChallenge:方法,因为如图实现了这个方法,方法connection:didReceiveAuthenticationChallenge:将不会被调用:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?图 10 连接校验方法其他设置不变,手机中依然安装有burp suite证书,打开应用,点击“Fetch Secret”,应用无法正常获取数据,如图11,burp suite也不能截获数据,中间人攻击失败:? ? ? ?图 11 证书错误1.2.4?一些建议一般来说,建议应用信任手机中的所有证书即可,在应用中置入公钥证书对连接进行强校验确实最为安全,但会引发诸多问题,如证书更新、证书过期、证书作废等。如果需要更新客户端证书,都必须升级客户端版本,而升级客户端是一个较为漫长的过程。例如证书被黑客窃取,需要紧急作废证书,而许多用户却有没有及时升级客户端的习惯,这将可能导致大面积用户使用出现网络异常的情况。就目前来看,也确实很少看到有应用将安全级别做到level3。0x02?可信证书管理上一章节中谈到向手机中导入可信证书的问题,小生在编写一个iOS工具的时候无意发现iOS证书管理的一个有趣的地方。通过“Settings”-“General”-“Profiles”可以查看当前设备信任的证书列表,但这个列表就真的
文档评论(0)