浅谈密钥白盒安全防护技术
密钥,是安全加密机制中重要的元素。许多著名加密算法中都使用了密钥,通过密钥和加密算法来保护业务系统中的代码、通讯安全、平台参数、协议等等各种重要的核心资产。顾名思义,密钥的作用是作为“把关人”,把控整个加密安全机制的有效性。一旦密钥破解,算法和其他重要代码也将面临风险,安全加密功能可能失去效果和作用。
标准的加密算法在算法的强度上是符合国际或者国家标准的,比如AES加密算法、SM4加密算法等。但是在使用过程中根据业务的需求,密码必须下发或者储存到客户端APP中,但是客户端的环境千差万别,不乏各种ROOT或者越狱的手机环境,在这些环境中通过动态调试等技术手段,可以比较容易的获取到加密算法的密钥。导致信息的泄露,造成重大损失。
爱加密移动应用密钥白盒平台,通过LLVM混淆编译器动态编译为SDK的方式,将算法和密钥进行深度融合,对密钥进行复杂的数学运算,把密钥信息隐藏在加密库中,在程序运行的任何阶段,密钥均以一个巨大的查找表的形式存在,在任何情况下密钥都不会以明文形式出现,可以有效的隐藏密钥。同时在整个过程中,原始密钥始终被加密保护,不会存在在内存中,从而防止密钥被静态分析和动态调试。可以用于在不安全的环境下数据加解密。
01
核 心 技 术
密钥白盒化
密钥白盒化是指能够在白盒环境下抵御攻击的一种特殊的加密方法。其核心思想是混淆,意思是让密钥以一种完全无法理解的形式存在,但不影响密钥本身发挥作用。密钥白盒化将算法和密钥进行深度融合,由算法和密钥生成一个加密表和解密表,应用运行时通过查找加解密表来进行加解密,不在依赖于原来的加解密算法和密码。通过算法和密钥的高度融合,可以有效的隐藏密钥,同时在运行时内存中不会出现密钥,从而防止密钥被静态分析和动态调试。
动态编译SDK
将加密算法和密钥进行深度融合,产生最终的算法动态库文件。最终达到和常规算法一样的加密解密效果,使黑客无法截获APP的密钥。编译过程对源码使用等价变化、虚假分支、虚假控制流、字符串加密等技术手段,保证代码本身的安全性。
加密密钥
爱加密移动端密钥白盒技术,将算法和密钥进行高度融合,并且通过LLVM混淆编译器动态编译为SDK,保证源码中不存在密钥,以抵抗静态分析,同时在密钥白盒算法运行过程中内存中不存在密钥,以抵抗动态调试攻击。在执行过程中若遭受到黑客的观察或者更改代码时仍执行强力加密,保护密钥信息无法被获取和破解,防止加密算法的运行过程中密钥被重现。
动态更新密钥
爱加密密钥白盒平台支持动态更新密钥,在不更新SDK的情况下更新加密算法使用的密钥,方便用户实时对密钥进行更新,同时极大提升了产品的安全性。
防调用
爱加密密钥白盒支持防调用功能,生成的密钥SDK支持绑定Android应用APP的包名和签名文件信息,以及支持绑定iOS的 Bundle ID信息,可以在运行过程中对绑定的包名、签名和Bundle ID信息进行校验,防止SDK被非授权应用调用。
支持多种标准加密算法
支持SM4、AES、DES、3DES等4种标准的加密算法,能满足各种使用场景。
02
主 要 功 能
SDK管理:管理密钥白盒平台中生成的SDK,主要功能包括生成SDK、下载SDK、更新密钥、删除SDK、下载SDK集成手册。
应用管理:管理系统中SDK绑定的应用,包括添加应用、修改应用、删除应用等,通过包名、签名(Android),BundID(iOS)与应用绑定。
操作日志:操作日志置于系统最外壳,用于记录系统中所有用户的操作记录、IP访问、时间等,便于用户对整个系统的日常操作进行查看、审计。
系统设置:支持自定义修改系统的名称、登录界面的LOGO、系统的LOGO、浏览器的LOGO等。
系统管理:使用授权文件对系统授权,授权的信息包括设备ID、使用期限、Android 包名签名、iOS Bundle ID。可以查看授权的详细信息。
03
平 台 价 值
知识产权保护
保护各种软件、文档、音乐,电影等数字版权不受到非法行为的攻击。
本地数据保护
可用于重要的本地资源文件、本地存储的敏感数据加密,防止被窃取、被篡改。
传输数据加密
对传输的数据、文件进行加密,防止数据在传输过程中被窃取和篡改。