客户端 App 数据安全及安全机制设计

客户端 App 数据安全刻不容缓

我们应当如何重新审视客户端的数据安全问题?为大家解析下支付宝目前在“端上安全”的设计机制:

App 开发期的安全机制设计

支付宝通过打造多层次的端上安全机制从而防止 App 被黑客或木马攻击,具体主要分为“本地域”、“线上运行”以及“App 端”三个层面。在本地域方面,通过代码混淆、加密等手段实现二进制防护;线上运行时,通过“安全黑匣子”打造的数据安全环境以及加密等手段实现数据防泄露;在 App 端,借助数据安全存储、安全签名等手段充分确保业务功能的稳定运行。

客户端 App 数据安全传输、安全存储

针对客户端的数据传输与验签,要做到精细化的安全一直是老大难的挑战。借助“安全黑匣子”,目前支付宝已实现针对应用级别数据如 AppSecret 采用加密存储,通过数据加签接口实现各类上层业务的封装。

借助安全黑匣子,客户端通过应用公钥和秘钥加密针对生成的数据进行离散存储,保证加密秘钥的安全性。而安全黑匣子本身的代码混淆、多重反调试机制,使其安全性能极大提升保障。

除此之外,安全黑匣子基于反调试技术使得常见的调试工具如 GDB、IDA Pro 的动态调试分析技术失效,基于导出表混淆、垃圾指令等手段充分提升攻击者静态分析应用的难度。如此动静结合,客户端数据传输及存储安全能够充分保障。

用户信息验证

随着终端设备算力的持续增强,目前移动端设备借助强大的 CPU 和 GPU 完全可以进行非常复杂的运算。而由此催生出的一系列移动端 AI 引擎,如支付宝的 xNN,帮助我们能够进一步加强用户信息验证的智能化。

结合端上金融业务属性,如银行卡及身份证 OCR 识别、人脸识别、活体检测等智能服务,已经过近 2 亿用户验证,具备识别准确率高、速度快、模块丰富等特点,同时在支付宝小程序中也已开放。

App 全生命周期防护

关于客户端 App 安全,实际上是一套从 App 开发、上线及使用的一站式解决方案。在 App 开发阶段,提供代码混淆、数据加密、数据库加密等安全开发以及数据安全能力;在上线阶段,提供 App 加固的能力,通过 DEX 加壳、SO 加壳、防反编译、防重打包等能力,提升 App 的整体安全水位;在使用阶段,通过 API 签名、API 数据加密等手段来保障数据的完整性及安全性,同时借助安全加密键盘从而保护用户输入的信息安全性。

最后介绍一个支付宝的移动开发平台:mPaaS 客户端 App 安全能力

作为源自支付宝的移动开发平台,mPaaS 目前已完成支付宝金融级的端上安全能力沉淀,不仅能够提升 App 应对高峰带宽下的服务质量挑战,同时在弱网情况下的可用性、针对网络请求的危险识别能力均属于行业前列。目前,借助 mPaaS 客户端的加固技术与黑匣子,能够保障移动端的代码安全和网络层的数据安全,提供加签、加密等方式,同时网关能够识别出客户端环境,并有能力针对可疑请求做拦截。

结合中国人民银行于 2019 年 9 月出台的《移动金融客户端应用软件安全管理规范》,针对客户端应用在数据安全、身份认证安全、功能安全设计、密码秘钥管理、数据安全、安全输入、抗攻击能力等方面均提出明确要求,全面覆盖客户端应用在设计、开发、发布及运维的全生命周期。

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java