Android HTTPS安全漏洞分析
2017-05-10 09:33
399 查看
在开发中,涉及敏感信息的传输我们都会使用HTTPS协议来和服务端进行安全的通信,但如果在实现时对HTTPS相关的API没有全面的掌握,导致代码编写中出现很多安全漏洞,其中以数字证书的使用最为典型,从而导致中间人攻击。
漏洞的形式主要有如下三种:
1.自定义X509TrustManager未实现安全校验
2.自定义HostnameVerifier默认接受所有域名
3.SSLSocketFactory信任所有证书
Android系统的共享证书机制规定,如果目标URL服务器下发的证书不在已信任证书列表中,或者该证书不是权威机构颁发的而是自签名的,那么会出现SSLHandshakeException异常。正确的做法应该是提供与服务器对应的证书,并进行校验,语句如下。
未完。。。。
漏洞的形式主要有如下三种:
1.自定义X509TrustManager未实现安全校验
2.自定义HostnameVerifier默认接受所有域名
3.SSLSocketFactory信任所有证书
1.自定义X509TrustManager未实现安全校验
使用HttpURLConnection发起HTTPS请求时,需要提供一个自定义的X509TrustManager。如果实现不当,可能引入安全问题,如下所示是存在风险的代码。import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.X509TrustManager; public class HxHTTPSTrustManager implements X509TrustManager { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { //默认接受任意的客户端证书 } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { //默认接受任意的服务端证书 } @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } }
Android系统的共享证书机制规定,如果目标URL服务器下发的证书不在已信任证书列表中,或者该证书不是权威机构颁发的而是自签名的,那么会出现SSLHandshakeException异常。正确的做法应该是提供与服务器对应的证书,并进行校验,语句如下。
未完。。。。
相关文章推荐
- Android安全之Https中间人攻击漏洞
- Android安全之Https中间人攻击漏洞
- Android安全之Https中间人攻击漏洞
- Android静态安全检测 -> HTTPS敏感数据劫持漏洞
- Android常见的漏洞与分析(阿里聚安全博客文章)
- 【移动安全】HacktingTeam Android语音监控实践及分析
- Android WebView 安全漏洞解决方案
- Android安全开发之安全使用HTTPS
- 一个IE浏览器漏洞的安全测试及分析
- 【Android病毒分析报告】 - AVPasser 对抗安全软件监控
- Android线程安全问题分析与解决
- Android为WebView中的Java与JavaScript的交互漏洞提供安全可靠的多样互通方案
- 全面分析Web应用程序安全漏洞——《黑客攻防技术宝典:web实战篇》
- android安全问题(八)伪造短信(利用原生android4.0漏洞)
- *printf()格式化串安全漏洞分析(上)
- android安全漏洞(五) 抢先拦截短信 - 结果篇
- Tomcat单向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端安全通信
- HTTPS为什么安全 &分析 HTTPS 连接建立全过程
- Android安全开发之安全使用HTTPS
- [经验交流] (最新)移动App应用安全漏洞分析报告 !