
Android敏感数据泄露引发的思考
发布日期:2021-05-14 19:17:19
浏览次数:21
分类:精选文章
本文共 694 字,大约阅读时间需要 2 分钟。
一凡的午后,我悠哉地敲着代码喝着茶,突然服务端同事告诉我,发现接口正在被机械式地调用,怀疑有人在用脚本刷接口,这可能是为了从平台导流。我心里有点怀疑,因为接口请求好像都做了加密处理,除非知道加密的密钥和加密方式,否则不可能成功调用。
不过,当我看到接口日志的时候,彻底否定了我的疑虑。日志显示接口调用频率固定为每1秒一次,被关注者的用户id每次调用依次递增,目前业务上的用户id是按照注册时间依次生成的。而且密钥好像一直用一个固定密钥,这明显有刷接口的嫌疑。
经过分析,原因可能是内部人员泄露了密钥和加密算法,或者对方破解了APK。虽然基本排除了内部泄露的可能,但问题依然存在。于是,我想反编译最近版本的APK,结果在反编译某个较早的版本时,发现加密工具类的源码居然完全暴露了。这说明对方可能脱壳了。
于是,我决定用NDK来处理,尽量将敏感数据和加密方式放在C++代码中,因为C++代码编译后生成的SO库相对难以反编译。我创建了一个加密工具类,整合了生成密钥和加密方法的功能,并添加了身份校验机制,只有校验通过的应用才能获取到密钥和执行加密操作。
后来,我发现直接将敏感数据和加密方法放在C++代码中虽然安全,但当破解者反编译SO库并调用相应的方法时,仍然可能获取到密钥和加密方法,所以进一步我增添了身份校验机制,确保只有经过身份验证的应用才能获取到密钥和执行加密操作。
最终的问题修复了,但这次事件让我深刻认识到安全无小事,也锤炼了我对安全防护的认识:加固流程至关重要,必须使用自动化脚本来防止人工错误,不能允许人工打包加固。此外,服务端也需要增加风险报警机制,及时发现异常和攻击行为。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月20日 19时15分00秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
django中使用celery执行异步任务实现
2019-03-12
centos7 安装 mongodb3.6.3
2019-03-12
java有道翻译
2019-03-12
lora技术在无线抄表行业应用
2019-03-12
msfvenom的使用&免杀&外网渗透
2019-03-12
HTTP/2 协议详解
2019-03-12
grafana改用https登录
2019-03-12
使用MySQLTuner-perl对MySQL进行优化
2019-03-12
2018年3月最新的Ubuntu 16.04.4漏洞提权代码
2019-03-12
异或交换两个数的值
2019-03-12
使用python绘出常见函数
2019-03-12
Golang AES加密
2019-03-12
Puppet的一些奇技淫巧
2019-03-12
foreman源NO_PUBKEY 6F8600B9563278F6
2019-03-12
亚马逊aws文档语法错误
2019-03-12
什么是5G?居然有人用漫画把它讲得如此接地气!
2019-03-12
Spring cloud --分布式配置中心组件Spring Cloud Config
2019-03-12
UE4接入Android第三方库2——通过JIN与GameActivity通信
2019-03-12
Unity Job System 2——并行处理数据
2019-03-12
BIG解决保险欺诈问题,开创数字化保险时代
2019-03-12