移动应用开发安全技术:技术标准解析

发表时间: 2022-06-17 21:34

主要从开发角度看移动设备权限,应用发版,敏感数据保护,数据传输,身份认证授权,会话,代码自查评审测试。

开发者在程序初始化后,应该检查验证输入的数据。程序应确保功能服务最小化,故障时不影响其他服务。在发版前,删除冗余测试代码。考虑网络连接信息,缓存,备份,删除文件等数据生命周期。按敏感程度,访问策略对密码,客户信息,IP,位置,error日志信息数据存储分类。另外不学美国棱镜事件,在客户端设备上开发监听端口,应使用手机操作系统提供的通信机制。

敏感信息处理。客户信息,用户名,密码,账号,余额,token等重要信息,不建议存客户端,容易泄露。或者用手机系统加密处理,进行秘钥存储,以加密散列形式备份秘钥和证书。卸载APP时重要敏感信息应该也被删除。默认不信任共享存储,不在SD存储。不与其他应用软件共享数据,SESSION,COOKIE等。绝对不能犯密码,密钥在缓存,日志中输出的低级错误。二进制代码,服务端存储敏感信息,下载后,很容易被反编译破解。

身份认证授权。注册提示用户密码设置策略,登录密码认证强度应该合适。查询重要信息,转账,支付时有必要通过声音,视频,指纹,或其他密码提升认证机制。使用手势滑动解锁码时,次数应该有限制,否则润滑膏涂抹到屏幕上可以破解密码。适当增加上下文信息中的IP,位置变动验证身份安全。

数据传输。现有技术是可以破解运行商网络的,WIFI网络环境加密还好一些。敏感信息通过SSL/TLS加密,点对点传输,保证机密和完整。权威的加密算法:AES,DES,3DES,SHA-1。对称算法密钥长度应该大于等于256,非对称算法秘钥长度应该大于等于2048。服务端身份验证通过后,确保使用的可信的SSL证书,才可以建立会话连接。证书签名最好选用权威CA提供的,自己签名生成的不太安全。采用SSL PROXY,SSL STRIP降低中间人攻击风险。移动客户端和服务端会话应保持一致,防止数据卡半边。

不用设备ID做标识符,用随机数生成器,配合日期,时间,温度传感器,重力感应器等生成随机数。向相同手机号发验证码,一分钟不多于3次。相同IP,session的用户短息验证码也需要设定次数,不能无限发。HTTP请求响应报文不能包含短信内容,尤其是验证码,防止被截取。

DEX加壳保护级别从高到低,虚拟机,函数,文件级保护。SO动态链接库应加固保护。ROOT模式时,应退出应用,并提示给用户风险。防调试保护:调试工具动态注入Xposed,Cydia Substrate,Frida框架。证书,秘钥,隐私,敏感数据,数据库文件,Shared Preferences数据文件,Webview数据文件,assets文件,res文件,raw文件等都需要加固保护。

每天强制自己写些东西,拍摄制作视频,记录生活,思考探索学习一些东西。不断地学习,坚持下去,提高自己的认知,打开自己的思维,以后会有更多的方法和创新。版权归作者老有理所有,未经作者允许不得转载本文内容,否则将视为侵权;转载或者引用本文内容请注明来源及原作者;对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权。欢迎大家对内容给予批评指正,请在下面留言,我会一一回答,谢谢大家的支持关照。认可的点赞支持!喜欢的话就点击关注!!