[整理]Android移动开发之数据传输安全

本文探讨了Android移动开发中数据传输的安全问题,强调了减少短信发送敏感信息和应用内加密的重要性。针对SSL劫持攻击,提出了服务器证书锁定、根证书锁定+域名验证等解决方案,并分析了各种方案的优缺点。
摘要由CSDN通过智能技术生成

Android移动开发之数据传输安全

整理自 Fish_Ou

0x0 概述

       移动应用很多时候并非孤立存在,在多数场景下存在前、后台以及第三方服务之间进行数据交互,因此,在网络中传输敏感数据在所难免,如果不使用正确安全的传输方式,有可能存在敏感信息泄漏的风险。

0x1安全准则

A.使用SSL协议(或基于SSL的协议)传输敏感数据。
B.验证服务器证书的有效性,防止中间人攻击,当证书有效性验证失败时应强行断开连接,而不是提示用户。
C.尽可能地减少使用短信发送敏感信息。
D.增强项:应用程序可以对敏感数据进行一次独立加密后再通过SSL进行传输。

0x2详细描述

        可以使用“证书锁定”(certificate pinning)的方式验证证书的有效性,即在代码中精确的验证当前服务器是否持有某张指定的证书。X509TrustManager接口是实现证书锁定一种方法,它通过在SSL回调函数中读取服务器证书密钥并和程序预埋的证书密钥进行对比,如果两者不一致则强行断开链接。
  • 任何申请了READ_SMS permission的应用都可以读取短信内容,故应尽量减少使用短信发送敏感信息。
  • 应用自身进行一次独立加密的好处是,当出现SSL协议相关漏洞(比如影响巨大的openssl heart bleed漏洞)时能够有效减少损失。
  • “证书锁定”的缺点是:由于证书是预埋在应用程序内的,是当服务器更新证书时,应用程序也要同步更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值