iOS中的弱SSL认证
2013-03-11 11:42
399 查看
在开发过程中,开发人员使用测试或自签名的 SSL 证书构建应用程序。 这样开发人员无需正式请求和验证 SSL 证书即可测试 HTTPS 功能。 然而,大多数情况下会保留使用自签名证书的代码,这会导致基于 HTTPS 的 Man-In-The-Middle (MITM) 攻击。
以下代码允许所有 HTTPS 连接的任意 HTTPS 证书
也可通过调用私有方法setAllowsAnyHTTPSCertificate,设置为YES,来绕过SSL认证
一般对HTTPS实施中间人攻击是在http协议转为https协议过程中切入,攻击者代理客户端与服务器进行https加密通信,攻击者再把加密的信息解密后直接以http协议跟客户端通信。但这很容易通过地址栏识别。如果允许所有 HTTPS 连接的任意 HTTPS 证书,攻击者就可以伪造证书。以下是一个Java实现的中间人代理研究模型,它与https服务器建立https连接,得到认证证书,并伪造该证书发送给客户端,如果客户端信任该伪造该证书,则该中间人代理研究模型就能控制客户端和服务器的所有通信。
以下是使用它代理修改CSDN个人资料的截图:
添加了该伪造证书,看起来还真像
如果你已经启用了https协议,那就不要因为偷一下懒或图方便去使用弱SSL认证,中间人代理攻击就会让你的https安全协议屁都不是。
参考
[1]. 中间人代理攻击的Java研究模型 http://crypto.stanford.edu/ssl-mitm/
[2].https://www.owasp.org/index.php/Man-in-the-middle_attack
以下代码允许所有 HTTPS 连接的任意 HTTPS 证书
//NSURLRequest+IgnoreSSL.h @interface NSURLRequest (IgnoreSSL) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host; @end //NSURLRequest+IgnoreSSL.m implementation NSURLRequest (IgnoreSSL) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host { return YES; } @end
也可通过调用私有方法setAllowsAnyHTTPSCertificate,设置为YES,来绕过SSL认证
@interface NSURLRequest (DummyInterface) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host; + (void)setAllowsAnyHTTPSCertificate:(BOOL)allow forHost:(NSString*)host; @end [NSURLRequest setAllowsAnyHTTPSCertificate: YES forHost:[payURL host]];
一般对HTTPS实施中间人攻击是在http协议转为https协议过程中切入,攻击者代理客户端与服务器进行https加密通信,攻击者再把加密的信息解密后直接以http协议跟客户端通信。但这很容易通过地址栏识别。如果允许所有 HTTPS 连接的任意 HTTPS 证书,攻击者就可以伪造证书。以下是一个Java实现的中间人代理研究模型,它与https服务器建立https连接,得到认证证书,并伪造该证书发送给客户端,如果客户端信任该伪造该证书,则该中间人代理研究模型就能控制客户端和服务器的所有通信。
以下是使用它代理修改CSDN个人资料的截图:
添加了该伪造证书,看起来还真像
如果你已经启用了https协议,那就不要因为偷一下懒或图方便去使用弱SSL认证,中间人代理攻击就会让你的https安全协议屁都不是。
参考
[1]. 中间人代理攻击的Java研究模型 http://crypto.stanford.edu/ssl-mitm/
[2].https://www.owasp.org/index.php/Man-in-the-middle_attack
相关文章推荐
- iOS 开发笔记-AFNetWorking https SSL认证
- iOS Https SSL认证 - AFNetWorking
- iOS之推送通知-本地-服务器3.服务器端实现: 如果要编写内容提供者的推送服务程序,需要进行SSL认证编程,以及构建APNS数据包,数据包分为3个主要部分:Command(命令)、deviceTo
- iOS 开发笔记-AFNetWorking https SSL认证
- iOS 开发笔记-AFNetWorking https SSL认证
- iOS学习之屏蔽SSL认证
- ios 学习笔记 1
- IOS开发招聘信息
- ios 导航栏显示
- Cocos2D-HTML5 MoonWarriors游戏Android编译指南(另附iOS编译指南和游戏源码)
- ios 本地化 多国语言处理
- iOS: NSDictionary的方法keysSortedByValueUsingSelector:
- IOS Xib 简单多线程编程代码
- IOS 对deallloc 的两种处理方法
- 使用Xcode和Instruments调试解决iOS内存泄露
- iOS NSArray与NSDictionary简单使用(零基础)
- ios动画-新浪微博app点击发微博按钮动画的实现
- iOS中Category类别(扩展类)专题总结
- iOS 支付金额计算问题
- iOS开发隐藏键盘方法总结