@devilogic
2019-04-12T11:44:37.000000Z
字数 2628
阅读 1067
方案
此方案的前提是4G模块本身是一个白箱。即可被黑客夺取控制权的前提下。设立在这个前提下,即没有硬件TEE类似的方案,所有数据都使用软存储的方式进行。
此模块的目的是为了解决,4G模块内敏感信息的存储安全。在4G模块中当接收到一些敏感数据。将通过一个重编码+加密的方式进行存储。
重编码模块有三个子模块组成:
在每次潜入到4G模块之前,可使用编码生成器生成一份编码映射表。编码器/解码器会依据此表对数据进行编码解码。可为每个4G模块独立生成对应的编码映射表。即便黑客破解一份表,也不能依照规则复制破解其他的4G模块。
编码映射表又由两部分组成,一个是数据表,一个是函数表。前者即随机生成的ASCII/UNICODE的编码映射。后者是映射编码表的函数规则,此函数规则由一组虚拟OPCODE组成。这组OPCODE在编码形成时随机生成。这组OPCODE是一组非线可逆函数。这样在编码时,通过此非线函数进行映射,在解码时,通过此函数的逆函数,进行解码。
在此之后,通过加密算法对重编码后的数据进行加密。此加密过程也可与4G模块的白箱安全算法做结合。
对于小鹏汽车的4G模块白箱安全算法,本方案采用三次加密原则:
1. 使用密钥对明文加密
2. 使用被保护程序体代码HASH对密钥进行保护
3. 使用多态加密引擎对目标对加密后的密钥进行加密
娜迦采用的是程序代码与输入的密钥密钥关联的方法,依托被保护的程序代码体对要保护的密钥进行加密。
娜迦加密任何数据以及代码,使用相互验证原则,例如:加密A文件必将用B文件的HASH进行加密,这样当黑客修改了B文件那么A文件将不能得到正确的解密结果。
多态加密引擎由一个虚拟机控制,在加密时动态随机的生成对应的加解密算法。每次加密算法都不同。这些算法是一个三方自定义虚拟机来控制执行。
这里应该有两个文件需要保护:一、服务器的公钥证书;二、4G模块本身的私钥证书。
这里应该有两个目的:一、存储;二、加密。
以上存储是直接存储到程序文件中,这就涉及了程序文件格式分析。我们可按照小鹏汽车指定的4G模块的提供的芯片的OS系统去拆解其上的文件格式并实现动态程序文件全局变量存储技术。
加密证书本身可通过指定国标加密算法进行或通过白箱安全加密算法进行。
本方案使用国密算法SM2(ECC)或RSA进行网络安全校验。在整个网络传输过程中,使用双向验证+加密的方式进行。
session number
。session number
的密文。session number+1
并发送给服务器。session number+1
密文后验证。验证不通过退出。key
,并使用客户端的公钥加密。key
的密文,使用自己的私钥解密。key
进行加密通讯。数据格式:[会话ID+内容+随机数据] = C
传输格式:
再次之上还可以加上
key使用周期
作为增强通讯安全手段。