发明内容
为克服相关技术中存在的问题,本发明公开提供一种能够跟踪用户语音助手使用情况,并进行分析处理以及自动生成语音提醒信息的汽车信息安全存储方法、装置、电子设备和存储介质。
根据本公开实施例的第一方面,提供一种汽车信息安全存储方法,包括:
获取待加密的明文信息,其中所述明文信息为汽车车载控制系统中欲发送至汽车远程服务器中的通信信息;
将所述明文信息调入可信执行环境中,其中,所述可信执行环境部署在安全模块中,所述安全模块中嵌入了双重加密算法;
根据所述双重加密算法对所述明文进行双重加密形成密文发送至汽车远程服务器中。
可选的,所述将所述明文信息调入可信执行环境中以隔离汽车车载控制系统的权限的方法包括:
识别所述可信执行环境是否运行;
当所述可信执行环境为运行状态,将获取的所述明文信息调入所述可信执行环境。
可选的,所述双重加密算法包括高级加密标准算法和公钥加密算法。
可选的,所述根据所述双重加密算法对所述明文进行双重加密形成密文发送至汽车远程服务器中的方法包括:
通过预设通信协议调用所述双重加密算法;
采用高级加密标准中的密码分组连接模式与所述公钥加密算法给所述明文信息进行加密以生成第一重加密信息;
采用高级加密标准中的电码本模式对所述明文信息进行加密以形成第二重加密信息;
将所述第一重加密信息与所述第二重加密信息合并生成密文,并通过预设安全协议传将所述密文输至所述汽车远程服务器中。
可选的,所述采用高级加密标准中的密码分组连接模式与所述公钥加密算法给所述明文信息进行加密以生成第一重加密信息的方法包括:
从所述明文信息中随机选取第一预设字节长度的信息作为第一预设信息,并通过所述公钥加密算法对所述第一预设信息进行加密以形成密钥;
根据所述密钥采用所述高级加密标准中的密码分组连接模式对所述密钥进行加密,以形成第一重加密信息。
可选的,所述采用高级加密标准中的电码本模式对所述明文信息进行加密以形成第二重加密信息的方法包括:
从所述明文信息中表征信息主体内容的字段中随机选取第二预设字节长度的信息作为第二预设信息;
将所述第二预设信息与所述第一重加密信息合并生成MD5值;
采用所述高级加密标准中的电码本模式对所述MD5值加密生成所述第二重加密信息。
可选的,所述第一重加密信息的字节长度与所述第二预设字节长度相同。
第二方面,本申请公开一种汽车信息安全存储装置,包括:
获取模块:被配置为执行获取待加密的明文信息,其中所述明文信息为汽车车载控制系统中欲发送至汽车远程服务器中的通信信息;
第一调用模块:被配置为执行将所述明文信息调入可信执行环境中以隔离汽车车载控制系统的权限,其中,所述可信执行环境部署在安全模块中,所述安全模块中嵌入了双重加密算法;
加密模块:被配置为执行根据所述双重加密算法对所述明文进行双重加密形成密文发送至汽车远程服务器中。
可选的,所述调用模块包括:
识别模块:被配置为执行识别所述可信执行环境是否运行;
执行模块:被配置为执行当所述可信执行环境为运行状态,将获取的所述明文信息调入所述可信执行环境。
可选的,所述双重加密算法包括高级加密标准算法和公钥加密算法。
可选的,所述加密模块包括:
第二调用模块:被配置为执行通过预设通信协议调用所述双重加密算法;
第一重加密模块:被配置为执行采用高级加密标准中的密码分组连接模式与所述公钥加密算法给所述明文信息进行加密以生成第一重加密信息;
第二重加密模块:被配置为执行采用高级加密标准中的电码本模式对所述明文信息进行加密以形成第二重加密信息;
合并发送模块:被配置为执行将所述第一重加密信息与所述第二重加密信息合并生成密文,并通过预设安全协议将所述密文传输至所述汽车远程服务器中。
可选的,第一重加密模块包括:
密钥形成模块:被配置为执行从所述明文信息中随机选取第一预设字节长度的信息作为第一预设信息,并通过所述公钥加密算法对所述第一预设信息进行加密以形成密钥;
第一加密子模块:被配置为执行根据所述密钥采用所述高级加密标准中的密码分组连接模式对所述密钥进行加密,以形成第一重加密信息。
可选的,所述第二重加密模块包括:
选取模块:被配置为执行从所述明文信息中表征信息主体内容的字段中随机选取第二预设字节长度的信息作为第二预设信息;
MD5合并模块:被配置为执行将所述第二预设信息与所述第一重加密信息合并生成MD5值;
第二加密子模块:采用所述高级加密标准中的电码本模式对所述MD5值加密生成所述第二重加密信息。
可选的,所述第一重加密信息的字节长度与所述第二预设字节长度相同。
根据本公开实施例的第三方面,本申请公开一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述任意一项所述的汽车信息安全存储方法的步骤。
第四方面,本发明公开一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种汽车信息安全存储方法,所述方法包括上述任意一项所述的汽车信息安全存储方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
本发明公开一种汽车信息安全存储方法、装置、电子设备和存储介质,依赖于安全模块的可信执行环境,在安全模块中赋能具有安全保护加密服务以及存储功能,应用预设在安全模块中的双重加密算法实现明文信息的加密,防止密文不被窃取,保障密文存储安全。本申请中,安全模块为独立于汽车车载控制系统的密钥保护单元,基于安全模块的硬件安全能力,提供安全可靠的密码服务,供用户访问调用,安全模块做为系统的硬件可信根,保障密文存储安全及运算过程的防侧信道攻击,使用户的安全认证流程变得安全而简单。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种汽车信息安全存储方法,请结合图1和图2,包括:
S1000、获取待加密的明文信息,其中所述明文信息为汽车车载控制系统中欲发送至汽车远程服务器中的通信信息;
明文信息,是指没有加密的文字或者字符串,一般人都能看懂的意思,在通信系统中它可能是比特流,如文本、位图、数字化的语音或者数字化的视频图像等。一般可以简单地认为明文是有意义的字符或比特集,或通过某种公开的编码标准就能获得的消息。经过某个加密算法进行作用,将作用后的文字称为密文。对密文来说,若想得到明文,就应通过与加密算法对应的解密算法进行解密,恢复出明文。
本申请主要用于车联网中汽车的安全通信,明文信息是汽车车载控制系统与汽车远程服务器的通信信息。汽车车载控制系统一般为汽车自带的电子控制单元,即ECU(Electronic Control Unit,电子控制单元),由微处理器(CPU)、存储器(ROM、RAM)、输入/输出接口(I/O)、模数转换器(A/D)以及整形、驱动等大规模集成电路组成,相当于汽车的大脑,负责汽车内数据的处理以及输入和输出。
汽车远程服务器,即TSP(elematics Service Provider),在Telematics(远距离通信的电信)产业链居于核心地位,上接汽车、车载设备制造商、网络运营商,下接内容提供商。Telematics服务集合了位置服务、Gis服务和通信服务等计算机技术,提供导航、娱乐、资讯、安防、SNS、远程保养等功能服务。
S2000、将所述明文信息调入可信执行环境中,其中,所述可信执行环境部署在安全模块中,所述安全模块中嵌入了双重加密算法;
可信执行环境即TEE(Trusted Execution Environment),通常用来进行数字版权管理(DRM:Digital Rights Management)、移动支付和敏感数据保护,在本实施例中,将该可信执行环境部署在安全模块中,安全模块为一种进行安全保护的电子元件,例如安全芯片SE(Secure Element,安全元件),为防止外部恶意解析攻击,保护数据安全,在芯片中具有加密/解密逻辑电路,由于安全模块为一种硬件载体,因此可将可信执行环境部署在该元件中,进一步的,为了提高安全模块的安全执行力度,在该安全模块中可嵌入加密和密钥管理机制,为终端安全执行环境建立可信执行区域,多维度性保障内部终端系统安全及外部网络通讯安全,已解决汽车信息被窃取、指令被篡改,车机被控制等问题。
进一步的在安全模块中嵌入了双重加密算法以确保数据传输中的关键数据及密钥不被窃取,保障用户密钥存储安全,不被提取及克隆。加密算法有很多,本申请中可采用多种算法,分多部进行双重加密甚至是多重加密。
在一实施例中,请参阅图3,所述将所述明文信息调入可信执行环境中以隔离汽车车载控制系统的权限的方法包括:
S2100、识别所述可信执行环境是否运行;
S2200、当所述可信执行环境为运行状态,将获取的所述明文信息调入所述可信执行环境。
在一实施例中,安全模块是独立于汽车车载控制系统的一个单独的外置元件,其需要与汽车车载控制系统建立连接关系后方可执行后续过程,当安全模块与汽车车载控制系统建立了联系,并启动后,则安全模块也与汽车远程服务器建立连接通信关系。由于可信执行环境是部署在安全模块中的一种执行环境系统,因此在安全模块与汽车车载控制系统连接的情况下,还需要进一步判断所述可信执行环境是否正常运行,当可信执行环境正常运行时,则隔离汽车自带的汽车车载控制系统,自动将获取的所述明文信息调入到所述可信执行环境中进行后续的加密工作。若可信执行环境不为运行状态,则直接由汽车车载控制系统的内置加密系统进行加密。
S3000、根据所述双重加密算法对所述明文进行双重加密形成密文发送至汽车远程服务器中。
在一实施例中,所述双重加密算法包括高级加密标准算法AES(AdvancedEncryption Standard)和公钥加密算法RSA,RSA加密算法是一种非对称加密算法,其公开密钥密码体制,其工作机理为:加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的,加密算法E和解密算法D也都是公开的,虽然解密密钥SK是由公开密钥PK决定的,由于无法计算出大数n的欧拉函数phi(N),所以不能根据PK计算出SK。为提高保密强度,RSA密钥支持1024,1280,1536,2048位的RSA密钥长度,这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES(Data Encryption Standard,数据加密标准)或IDEA(International Data Encryption Algorithm,国际数据加密算法)密钥加密,然后使用RSA密钥加密对话密钥和信息摘要,对方收到信息后,用不同的密钥解密并可核对信息摘要。
而高级加密标准算法AES是一种对称密钥加密算法,对称密码体制的发展趋势将以分组密码为重点,分组密码算法通常由密钥扩展算法和加密(解密)算法两部分组成。密钥扩展算法将b字节用户主密钥扩展成r个子密钥。加密算法由一个密码学上的弱函数f与r个子密钥迭代r次组成。采用对称分组密码体制,密钥的长度最少支持为128、192、256位,分组长度128位,算法易于各种硬件和软件实现。
基于以上两种加密形式,请参阅图4,所述根据所述双重加密算法对所述明文进行双重加密形成密文发送至汽车远程服务器中的方法包括:
S3100、通过预设通信协议调用所述双重加密算法;
该加密活动是基于部署在安全模块中的可信执行环境的,在安全模块中也置入多种密钥算法与服务应用,以及安全保护机制,这些信息分别通过设置对应的API(Application Programming Interface,应用程序接口的形式)进行数据调用,通过获取对应的API,即可调用对应的密钥执行对应的加密计算。
在一实施例中,一种加密算法或者安全保护机制对应一个API,不同的API其名称或者编号不同,通过调用不同的API即可获取具体的加密步骤。在一实施例中,预设通信协议包括但不限于通过SPI(Serial Peripheral Interface,串行外设接口)交互方式,SPI是一种同步串行接口技术,是一种高速的,全双工,同步的通信总线,SPI的通信原理为:以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。(1)SDO/MOSI–主设备数据输出,从设备数据输入;(2)SDI/MISO–主设备数据输入,从设备数据输出;(3)SCLK–时钟信号,由主设备产生;(4)CS/SS–从设备使能信号,由主设备控制。当有多个从设备的时候,因为每个从设备上都有一个片选引脚接入到主设备机中,当我们的主设备和某个从设备通信时将需要将从设备对应的片选引脚电平拉低或者是拉高。采用该通信协议调用对应的API接口所映射的加密算法进行后续的加密。
S3200、采用高级加密标准中的密码分组连接模式与所述公钥加密算法给所述明文信息进行加密以生成第一重加密信息;
高级加密标准算法AES的分组密码有五种工作体制:1.电码本模式ECB(Electronic Codebook Book);2.密码分组链接模式CBC(Cipher Block Chaining);3.计算器模式CTR(Counter);4.密码反馈模式CFB(Cipher FeedBack);5.输出反馈模式OFB(Output FeedBack)。
具体的,电码本模式ECB这种模式是将整个明文分成若干段相同的小段,然后对每一小段进行加密;密码分组链接模式CBC是先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密;计算器模式CTR有一个自增的算子,这个算子用密钥加密之后的输出和明文异或的结果得到密文,相当于一次一密。这种加密方式简单快速,安全可靠,而且可以并行加密,但是在计算器不能维持很长的情况下,密钥只能使用一次;密码反馈模式CFB,模式类似于CBC,可以将块密码变为自同步的流密码;工作过程亦非常相似,CFB的解密过程几乎就是颠倒的CBC的加密过程;输出反馈模式OFB可以将块密码变成同步的流密码,它产生密钥流的块,然后将其与平文块进行异或,得到密文。与其它流密码一样,密文中一个位的翻转会使平文中同样位置的位也产生翻转,这种特性使得许多错误校正码,例如奇偶校验位,即使在加密前计算而在加密后进行校验也可以得出正确结果。
在一实施例中,首先采用SPI交互调用安全模块中存储的高级加密标准中密码分组连接模式与所述公钥加密算法给明文信息进行加密以生成第一重加密信息。具体的,请参阅图5,所述采用高级加密标准中的密码分组连接模式与所述公钥加密算法给所述明文信息进行加密以生成第一重加密信息的方法包括:
S3210、从所述明文信息中随机选取第一预设字节长度的信息作为第一预设信息,并通过所述公钥加密算法对所述第一预设信息进行加密以形成密钥;
S3220、根据所述密钥采用所述高级加密标准中的密码分组连接模式对所述密钥进行加密,以形成第一重加密信息。
在一实施例中,明文信息加密包括固定加密信息和用户指定的加密信息,固定加密信息则为系统随机选取的第一预设字节长度的信息,也就是第一预设信息。在本实施例中,可选择8字节作为预设字节长度,选取8字节的固定加密信息作为第一预设信息进行加密以形成密钥。由于公钥加密算法属于非对称加密算法,其一次能加密的明文长度与密钥长度成正比:
len_in_byte(raw_data)=len_in_bit(key)/8-11,
其中,en_in_byte(raw_data)为明文长度,len_in_bit(key)为密钥长度,如1024bit的密钥,一次能加密的内容长度为1024/8-11=117byte,即若采用支持1024位的公钥加密算法RSA,则最多能加密117字节的明文信息。另外,RSA算法本身待加密内容也就是明文长度m必须满足0<m<n,n为密钥长度,也就是说明文长度不能超过密钥长度,否则就出错。在一实施例中,若从明文信息的固定加密信息中选取其中的8字节作为第一预设信息进行加密,得到的密钥应当大于8字节,例如16字节,即第一预设信息机密后形成的密钥为16字节。
当形成了密钥后,采用SPI交互方式再次调用高级加密标准中的密码分组连接模式的加密方法对所述密钥进行加密,在高级加密标准中的密码分组连接模式CBC中,首先将明文分组与前一个密文分组进行异或运算,然后再进行加密,通过此加密方式生成第一重加密信息。
S3300、采用高级加密标准中的电码本模式对所述明文信息进行加密以形成第二重加密信息;
当生成了第一重加密信息,则继续对明文信息进行第二重加密。在一实施例中,请参阅图6,所述采用高级加密标准中的电码本模式对所述明文信息进行加密以形成第二重加密信息的方法包括:
S3310、从所述明文信息中表征信息主体内容的字段中随机选取第二预设字节长度的信息作为第二预设信息;
S3320、将所述第二预设信息与所述第一重加密信息合并生成MD5值;
S3330、采用所述高级加密标准中的电码本模式对所述MD5值加密生成所述第二重加密信息。
在进行第二重加密时,需要通过API调用高级加密标准算法AES,以进行第二次加密。在进行第二次加密中,需要使用第一重加密信息与第二预设信息进行结合,在本实施例中,第二预设信息为明文信息中表征信息内容的字段中选取第二预设字节长度的信息,由于第二预设信息需要和第一重加密信息结合,为了方便二者结合时计算更为方便,优选的方案为使所述第一重加密信息的字节长度与所述第二预设字节长度相同,例如,当第一重加密信息为16字节时,第二预设字节长度也为16字节,确保两种数据字节长度相同以方便后续的处理。
在一实施例中,第一重加密信息与第二预设信息进行结合的方式为合并生成MD5(MD5Message-Digest Algorithm)值,其一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),在本实施例中,合并的方式将第一重加密信息的数值与第二预设信息的数值相加,以生成MD5值,作为签名数据。
在一实施例中,当生成了MD5值后,再采用所述高级加密标准中的电码本模式ECB进行加密,生成数据完整性校验码的签名数据以组成第二重加密信息。
S3400、将所述第一重加密信息与所述第二重加密信息合并生成密文,并通过预设安全协议将所述密文传输至所述汽车远程服务器中。
当生成了第二重加密信息后,将第二重加密信息与第一重加密信息组合在一起生成密文,通过预设安全协议输送至汽车远程服务器中,其中预设安全协议为在openssl(Open Secure Sockets Layer,开放安全套接层协议)与TLS(Transport Layer Security,安全传输层协议),通过上述协议,将组合后的密文发送到汽车远程服务器中,汽车远程服务器对上述加密信息进行解密后执行后续的处理,例如数据分析或者指令执行等。
本申请依赖于安全模块的可信执行环境,通过SPI通信方式的接口接入安全模块,在于安全模块SE中赋能具有安全保护加密服务器的API接口以及存储功能,应用预设的AES及RSA的算法实现关键数据及密钥不被窃取,保障用户秘钥存储安全,不被提取及克隆。支持128位的AES秘钥长度,支持1024,1280,1536,2048位的RSA密钥长度,支持RSA的CRT模式,安全模块为独立的密钥保护单元:基于安全模块的硬件安全能力,提供安全可靠的密码服务,供用户访问调用,安全模块SE做为系统的硬件可信根,保障密钥存储安全及运算过程的防侧信道攻击,使用户的安全认证流程变得安全而简单。
第二方面,本申请公开一种汽车信息安全存储装置,请参阅图7,包括:
获取模块1000:被配置为执行获取待加密的明文信息,其中所述明文信息为汽车车载控制系统中欲发送至汽车远程服务器中的通信信息;
第一调用模块2000:被配置为执行将所述明文信息调入可信执行环境中以隔离汽车车载控制系统的权限,其中,所述可信执行环境部署在安全模块中,所述安全模块中嵌入了双重加密算法;
加密模块3000:被配置为执行根据所述双重加密算法对所述明文进行双重加密形成密文发送至汽车远程服务器中。
可选的,所述调用模块包括:
识别模块:被配置为执行识别所述可信执行环境是否运行;
执行模块:被配置为执行当所述可信执行环境为运行状态,将获取的所述明文信息调入所述可信执行环境。
可选的,所述双重加密算法包括高级加密标准算法和公钥加密算法。
可选的,所述加密模块包括:
第二调用模块:被配置为执行通过预设通信协议调用所述双重加密算法;
第一重加密模块:被配置为执行采用高级加密标准中的密码分组连接模式与所述公钥加密算法给所述明文信息进行加密以生成第一重加密信息;
第二重加密模块:被配置为执行采用高级加密标准中的电码本模式对所述明文信息进行加密以形成第二重加密信息;
合并发送模块:被配置为执行将所述第一重加密信息与所述第二重加密信息合并生成密文,并通过预设安全协议将所述密文传输至所述汽车远程服务器中。
可选的,第一重加密模块包括:
密钥形成模块:被配置为执行从所述明文信息中随机选取第一预设字节长度的信息作为第一预设信息,并通过所述公钥加密算法对所述第一预设信息进行加密以形成密钥;
第一加密子模块:被配置为执行根据所述密钥采用所述高级加密标准中的密码分组连接模式对所述密钥进行加密,以形成第一重加密信息。
可选的,所述第二重加密模块包括:
选取模块:被配置为执行从所述明文信息中表征信息主体内容的字段中随机选取第二预设字节长度的信息作为第二预设信息;
MD5合并模块:被配置为执行将所述第二预设信息与所述第一重加密信息合并生成MD5值;
第二加密子模块:采用所述高级加密标准中的电码本模式对所述MD5值加密生成所述第二重加密信息。
可选的,所述第一重加密信息的字节长度与所述第二预设字节长度相同。
本申请公开一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述任意一项所述的汽车信息安全存储方法的步骤。
图8是根据一示例性实施例示出的一种存储汽车信息安全存储方法的非临时性计算机可读存储介质1900的框图。例如,存储介质1900可以被提供为一服务器。参照图8,存储介质1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
存储介质1900还可以包括一个电源组件1926被配置为执行存储介质1900的电源管理,一个有线或无线网络接口1950被配置为将存储介质1900连接到网络,和一个输入输出(I/O)接口1958。存储介质1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。