掌桥专利:专业的专利平台
掌桥专利
首页

数据保护方法及装置

文献发布时间:2023-06-19 10:21:15


数据保护方法及装置

技术领域

本申请涉及自动驾驶和智能网联车技术领域,尤其涉及一种数据保护方法及装置。

背景技术

随着自动驾驶技术的不断发展,车辆的坐标处理也取得了长足的进步,根据相关规定,需要对坐标的处理方法以及坐标的偏转方法进行保护,以保证数据的安全。

目前,在对坐标的处理方法以及坐标的偏转方法进行保护时,通常是将涉及到坐标处理的模块以及实现坐标偏转的模块,提供给监管部门,由监管部门进行统一编译,以生成一个大的二进制程序模块,接着系统可以根据所述二进制程序模块实现相关的坐标处理。

然而,上述方法缺乏有效的防护机制,其无法防止坐标数据被恶意截获,从而导致车辆数据的安全性较低。

发明内容

本申请实施例提供一种数据保护方法及装置,以提升车辆数据的安全性。

第一方面,本申请实施例提供一种数据保护方法,应用于车载计算装置,其中,所述车载计算装置包括偏转加密单元和可信度量单元,所述偏转加密单元和可信度量单元运行于可信执行环境,所述方法包括:

所述偏转加密单元获取预期度量值;并且所述偏转加密单元请求调用所述可信度量单元执行第一可信度量,在一种可能的实现方式中,偏转加密单元可以通过调用应用程序接口API,从而调用可信度量单元执行第一可信度量。

以及所述可信度量单元执行所述第一可信度量,生成运行度量值;所述可信度量单元将所述运行度量值反馈给所述偏转加密单元;所述偏转加密单元通过比较所述预期度量值和所述运行度量值,验证在车内执行数据操作的安全性。

在上述过程中,偏转加密单元将获取的预期度量值和可信度量单元生成的运行度量值进行比较,从而有效验证在车内执行数据操作的安全性,从而能够有效保证车辆数据的安全性。

在一种可能的实施方式中,在所述偏转加密单元获取预期度量值之前,所述方法还包括:

所述偏转加密单元确定本地无预制的所述预期度量值,在一种可能的实现方式中,偏转加密单元例如可以在本地的硬件安全模块(HSM)中查询、或者偏转加密单元还可以在本地的非易失性存储中查询,从而确定本地无预制的预期度量值;或者偏转加密单元还根据状态标志来判断本地无预制的预期度量值。

在确定本地无预期度量值时,所述偏转加密单元可以请求调用所述可信度量单元执行第二可信度量;所述可信度量单元执行所述第二可信度量,生成初始度量值;

其中,所述偏转加密单元获取预期度量值包括:所述偏转加密单元获取所述初始度量值。

在上述过程中,在确定本地无预期度量值时,偏转加密单元调用可信度量单元生成初始度量值,从而能够有效提升获取预期度量值的灵活性。

在一种可能的实施方式中,所述可信度量单元执行所述第二可信度量,生成初始度量值包括:

所述可信度量单元通过对预先定义的程序模块和运行环境执行哈希计算,生成所述初始度量值。

其中,通过对预先定义的程序模块和运行环境执行哈希计算,从而得到初始度量值,能够有效验证程序和环境的完整性。

其中,程序模块是指用于对敏感数据处理的高精度地图应用程序,可以是一个程序整体,也可以由多个功能相对独立的程序构成。

其中,运行环境是指运行高精度地图应用程序所依赖的系统服务组件,如库文件(动态链接库或静态链接库)、中间件(如数据库中间件)、虚拟机环境(如java虚拟机)或者操作系统服务组件等。

其中,哈希算法可以采用标准哈希算法,如SHA-1/SHA-256或SM3等

在一种可能的实施方式中,在所述偏转加密单元获取预期度量值之前,所述方法还包括:

所述偏转加密单元确定本地无预制的所述预期度量值;

此时,偏转加密单元可以与监管服务器进行双向认证并建立安全通道,通过建立安全通道,可以保证后续数据传输的安全性,此时所述偏转加密单元向服务器请求获取所述预期度量值;

其中,所述偏转加密单元获取预期度量值包括:所述偏转加密单元接收所述服务器返回的所述预期度量值。

在上述实现中,在偏转加密单元确定本地无预制的预期度量值的情况下,可以与服务器建立安全通道,从而通过在线的方式从服务器获取预期度量值,从而在并不降低安全性的情况下,无需在启动阶段执行可信度量的过程,减少了计算开销。

在一种可能的实施方式中,在所述偏转加密单元获取预期度量值之前,所述方法还包括:

所述偏转加密单元确定本地有预制的所述预期度量值;

所述偏转加密单元获取预期度量值包括:所述偏转加密单元获取本地的所述预制的所述预期度量值。

其中,在本地有预制的所述预期度量值的情况下,直接获取本地的预期度量值,从而可以方便高效的实现预期度量值的获取。

在一种可能的实施方式中,在所述偏转加密单元获取预期度量值之后,所述方法还包括:

所述偏转加密单元请求调用所述可信度量单元执行第三可信度量;

所述可信度量单元执行所述第三可信度量,生成初始度量值;

所述偏转加密单元确定所述预期度量值与所述初始度量值不相等;

所述偏转加密单元关闭所述数据操作的功能,或者进行报警。

其中,通过在启动阶段比较预期度量值和初始度量值,在确定预期度量值和初始度量值一致时,才进行后续的处理,从而能给有效提升数据的安全性,防止系统处于离线状态时,预期度量值发生更新或发生篡改。

在一种可能的实施方式中,所述偏转加密单元通过比较所述预期度量值和所述运行度量值,验证在车内执行数据操作的安全性包括:

所述偏转加密单元确定所述预期度量值与所述运行度量值相等;

所述偏转加密单元执行所述数据操作。

所述数据操作例如可以为偏转加密模块执行坐标等敏感数据的偏转、加密等处理过程,并将处理的结果发送给高精度地图应用程序

在一种可能的实施方式中,所述偏转加密单元通过比较所述预期度量值和所述运行度量值,验证在车内执行数据操作的安全性包括:

所述偏转加密单元确定所述预期度量值与所述运行度量值不相等;

所述偏转加密单元关闭所述数据操作的功能,或者进行报警。

在上述过程中,在偏转加密单元确定预期度量值与所述运行度量值相等时,才执行数据操作;在确定不相等是,直接关闭数据操作的功能或者进行报警,能够有效保证程序和环境的安全性。

在一种可能的实施方式中,所述可信度量单元执行所述第一可信度量,生成运行度量值包括:

所述可信度量单元通过对预先定义的程序模块和运行环境执行哈希计算,生成所述运行度量值。

其中,通过对预先定义的程序模块和运行环境执行哈希计算,从而得到初始度量值,能够有效验证程序和环境的完整性。

第二方面,本申请实施例提供一种车载计算装置,包括偏转加密单元和可信度量单元,所述偏转加密单元和可信度量单元运行于可信执行环境;

其中,所述偏转加密单元,用于获取预期度量值,以及请求调用所述可信度量单元执行第一可信度量;

所述可信度量单元,用于执行所述第一可信度量,生成运行度量值,以及将所述运行度量值反馈给所述偏转加密单元;

所述偏转加密单元还用于通过比较所述预期度量值和所述运行度量值,验证在车内执行数据操作的安全性。

在一种可能的实施方式中,所述偏转加密单元,还用于在获取预期度量值之前确定本地无预制的所述预期度量值,并请求调用所述可信度量模块执行第二可信度量;

所述可信度量单元,还用于执行所述第二可信度量,生成初始度量值;

所述偏转加密单元获取预期度量值包括:所述偏转加密单元获取所述初始度量值。

在一种可能的实施方式中,所述可信度量单元执行所述第二可信度量,生成初始度量值包括:

所述可信度量单元通过对预先定义的程序模块和运行环境执行哈希计算,生成所述初始度量值。

在一种可能的实施方式中,所述偏转加密单元,还用于在获取预期度量值之前,确定本地无预制的所述预期度量值,以及向服务器请求获取所述预期度量值;

所述偏转加密单元获取预期度量值包括:所述偏转加密单元接收所述服务器返回的所述预期度量值。

在一种可能的实施方式中,所述偏转加密单元,还用于在获取预期度量值之前,确定本地有预制的所述预期度量值;

所述偏转加密单元获取预期度量值包括:所述偏转加密单元获取本地的所述预制的所述预期度量值。

在一种可能的实施方式中,所述偏转加密单元,还用于在获取预期度量值之后,请求调用所述可信度量模块执行第三可信度量;

所述可信度量单元,还用于执行所述第三可信度量,生成初始度量值;

所述偏转加密单元,还用于确定所述预期度量值与所述初始度量值不相等,然后关闭所述数据操作的功能,或者进行报警。

在一种可能的实施方式中,所述偏转加密单元还用于通过比较所述预期度量值和所述运行度量值,验证在车内执行数据操作的安全性包括:

所述偏转加密单元还用于确定所述预期度量值与所述运行度量值相等,以及执行所述数据操作。

在一种可能的实施方式中,所述偏转加密单元还用于通过比较所述预期度量值和所述运行度量值,验证在车内执行数据操作的安全性包括:

所述偏转加密单元还用于确定所述预期度量值与所述运行度量值不相等,以及关闭所述数据操作的功能,或者进行报警。

在一种可能的实施方式中,所述可信度量单元用于执行所述第一可信度量,生成运行度量值包括:

所述可信度量单元,用于通过对预先定义的程序模块和运行环境执行哈希计算,生成所述运行度量值。

第三方面,本申请实施例提供一种车载计算装置,其特征在于,包括存储器和处理器,所述存储器存储计算机程序指令,所述处理器运行所述计算机程序指令以执行如上第一方面以及第一方面各种可能的实施方式中任一的方法。

第四方面,本申请实施例提供一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在被处理器运行时,实现如上第一方面以及第一方面各种可能的实施方式中任一的方法。

第五方面,本申请实施例提供一种计算机程序产品,其特征在于,当所述计算机程序产品在处理器上运行时,实现如上第一方面以及第一方面各种可能的实施方式中任一的方法。

第六方面,本申请实施例提供一种数据处理系统,其特征在于,包括服务器和如上第二方面以及第二方面各种可能的实施方式中任一的车载计算装置。

第七方面,本申请实施例提供一种智能车,包括车载通信装置和如上第二方面以及第二方面各种可能的实施方式中任一的车载计算装置。

本申请实施例提供一种数据保护方法及装置,该方法包括:偏转加密单元获取预期度量值。偏转加密单元请求调用可信度量单元执行第一可信度量。可信度量单元执行第一可信度量,生成运行度量值。可信度量单元将运行度量值反馈给偏转加密单元。偏转加密单元通过比较预期度量值和运行度量值,验证在车内执行数据操作的安全性。其中偏转加密单元将获取的预期度量值和可信度量单元生成的运行度量值进行比较,从而有效验证在车内执行数据操作的安全性,从而能够有效保证车辆数据的安全性。

附图说明

图1为本申请实施例适用的车辆内部自动驾驶系统的示意图;

图2为本申请实施例适用的高精地图导航系统的示意图;

图3为本申请实施例提供的一种数据保护方法的流程图;

图4为本申请实施例提供的又一种数据保护方法的流程图;

图5为本申请实施例提供的另一种数据保护方法的流程图;

图6为本申请实施例提供的再一种数据保护方法的流程图;

图7为本申请实施例提供的一种车载计算装置的结构框图;

图8为本申请实施例提供的另一种车载计算装置的结构框图。

具体实施方式

首先对本申请所涉及的相关概念进行介绍:

全球导航卫星系统:全球导航卫星系统(Global Navigation Satellite System,GNSS)是对目前存在的单个卫星导航定位系统的同一称谓,其中全球导航卫星系统能在地球表面或近地空间的任何地点,提供全天候的三维坐标、速度、时间信息。

惯性测量单元:惯性测量单元(Inertial measurement unit,IMU)是测量物体三轴姿态角(或角速率)以及加速度的装置。通常一个IMU包含三个单轴的加速度计和三个单轴的陀螺,加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺检测载体相对于导航坐标系的角速度信号,测量物体在三维空间中的角速度和加速度,并以此得到物体的姿态,IMU在导航中有着很重要的应用价值。

远程信息处理器:远程信息处理器(Telematics BOX,T-BOX)用于实现车辆的通信,其例如可以与后台系统进行通信,或者还可以与终端设备进行通信,以实现对车辆信息的显示与控制。

WGS84:全称是World Geodetic System 1984,WGS84是为全球定位系统(GlobalPositioning System,GPS)使用而建立的坐标系统,其可以为GNSS输出的坐标。

GCJ-02:GCJ-02是一种由国家测绘管理部门定义的坐标格式。

C-V2X:C-V2X(Cellular V2X)基于蜂窝通信机制的车联网。

在对相关概念进行解释之后,下面结合图1对本实施例的应用场景进行说明,图1为本申请实施例提供的数据保护方法的应用场景示意图,如图1所示:

该应用场景中包括车辆10,在本实施例中,车辆10可以实现自动驾驶,在自动驾驶场景下,车辆10内部的自动驾驶系统可以包括传感器感知模块(sensor perception)、规划控制模块(planning)、高精度地图和定位模块(HD map/Localization)、全球导航卫星系统/惯性测量单元(GNSS/IMU)、传感器融合模块(sensor fusion)等,本实施例对自动驾驶系统中所包括的其余模块不做限定。

本领域技术人员可以理解的是,在车辆自动驾驶过程中,确定自车的位置是非常重要的,因此本实施例中的自动驾驶系统可以实现对车辆的坐标处理,例如参见图1,全球导航卫星系统/惯性测量单元可以向高精度地图和定位模块发送自车的WGS84坐标,以及T-box还可以获取云端传输的其他物体(如外部静态物体、或其他车辆等动态物体)的GCJ-02坐标,并将获取的其他物体的GCJ-02坐标发送给高精度地图和定位模块。

同时,高精度地图和定位模块可以将接收到的自车的WGS84坐标和/或其他物体的GCJ-02坐标转换为自车的GCJ-02坐标,并提供给传感器融合模块和规划控制模块,以使得传感器融合模块和规划控制模块可以根据自车的GCJ-02坐标对车辆进行控制,例如可以调整车辆位置,或者改变车辆方向等。

基于上述介绍可以确定的是,在车辆自动驾驶的应用过程中,会涉及到处理坐标的处理,例如涉及WGS84坐标以及GCJ-02坐标的处理,其中坐标数据、坐标数据的偏转处理方法等敏感数据,根据中国测绘部门的规定,对坐标的处理需要进行相应的保护,以及对坐标的偏转方法也需要进行保护,其中坐标的偏转例如可以为将WGS84坐标转换为GCJ-02坐标,通过对坐标的处理以及坐标的偏转方法进行保护,从而能够保证坐标数据的安全性。

例如,在基于高精度地图的自动驾驶应用场景下,在车内用于处理坐标的程序模块可以处理GCJ-02坐标,但必须防止GCJ-02坐标被非法程序窃取或直接暴露在外部(比如坐标直接向程序外部传输)。

目前,现有技术的方案在实现对坐标的处理以及坐标的偏转方法的保护时,通常是由监管部门(例如自然资源部)实现的,其中,监管部门设计了一套联编机制,也就是说将所有涉及到坐标处理的模块,以及实现偏转方法的模块由监管部门进行统一编译(源代码级别),以生成一个大的二进制程序模块,其中,实现偏转方法的模块可以是监管部门负责提供的。

接着,监管部门将生成的二进制程序模块提供给自动驾驶软件的开发方(或导航服务提供方),自动驾驶软件的开发方可以根据接收到的二进制程序模块进行后续操作,以实现自动驾驶处理。

上述的处理方式有两个目的,第一是为了防止坐标暴露在联编后模块的外部,第二是能够防止对偏转方法的反编译,因为参与编译模块的数量越多,被直接逆向出偏转方法的难度就越大,例如图1中的传感器融合模块、规划控制模块、高精度地图和定位模块就应该按照规定参与联编。

上述通过监管部分联合编译以实现对坐标的保护的实现方式,在普通导航电子地图应用中已普及,因为普通导航电子地图精度要求低,功能相对单一,并不涉及自动驾驶功能,因此能够解决对偏转方法和坐标数据的保护。

然而,若将上述介绍的方式应用在基于高精度地图的自动驾驶应用场景下,上述方法就会存在如下问题:

1、安全性不足,只能实现对坐标数据和偏转方法的静态保护。

具体的,在实际运行过程中,现有的联编机制无法防止参与联编的各个模块在运行过程中的数据被其他恶意程序截获,其缺乏动态的防护机制。

并且,由于车载自动驾驶系统的功能模块众多,其运行环境包括完整的操作系统功能,因此也给恶意程序的运行提供了环境,恶意程序更容易通过模块之间的接口调用,内存访问,系统组件漏洞等方式,对运行过程中程序进行攻击,从而造成坐标数据或者偏转方法泄露。

2、无法满足自动驾驶的更新需求。

具体的,在自动驾驶的实际应用过程中,由于自动驾驶的各个功能,尤其是算法的更新较为频繁,并且这种更新通常会采用空中下载(Over theAir,OTA)方式进行在线更新,如果按照现有的联编模式,在每次更新之前,还需要将更新的各个模块提供给监管部门,则会导致自动驾驶的更新时间漫长,无法满足自动驾驶的更新需求。

3、效率低,并且监管部门的监管手段较弱。

具体的,目前的联编属于离线人工方式,也就是说开发方需要将进行联编的模块线下提供方给监管部门,由监管部门在离线的状态下进行编译,编译完成之后还需要将生成的二进制程序模块线下提供给开发方,并且提供模块进行联编的开发方数量较多,从而导致自动驾驶的开发和应用效率低下。

同时,在联编完后监管部门也无法实现管控,存在失控的风险,从而无法有效实现对坐标数据和偏转方法的保护。

针对现有技术中的问题,本申请提出了如下技术构思:当程序被篡改时,根据程序生成的通过在车载计算部件中增加可信度量单元,以实现根据度量值的比较,验证数据的安全性。

在上述介绍的内容的基础上,下面首先结合图2对本申请实施例提供的数据处理系统进行说明,图2为本申请实施例提供的数据处理系统的示意图。

如图2所示,该系统包括:车载计算装置、车载通信装置和地图应用云平台。

首先对车载计算装置进行介绍,在本申请中,车载计算装置可以用于运行如图2中所示的高精度地图应用单元以及偏转加密单元。

在一种可能的实现方式中,车载计算装置可以运行独立的操作系统(OperatingSystem,OS),可信执行环境(Trusted Execution Environment,TEE)以及高精地图应用单元,在一种可能的实施方式中,高精地图应用单元的实现方式例如可以参照如上图1中介绍的传感器融合模块、规划控制模块、高精度地图和定位模块,或者高精地图应用单元还可以包括其余的处理模块等,本实施例对此不做特别限制。

在实际实现过程中,车载计算装置可以从车载传感器和全球导航卫星系统(Global Navigation Satellite System,GNSS)中获取坐标数据,参见图2,例如车载计算装置中的高精地图应用单元可以从车载传感器获取地图OBJ相对位置,以及车载计算装置中的偏转加密单元可以从GNSS获取WGS84坐标。

同时,车载计算装置获取的坐标数据可以经由偏转加密单元进行处理,处理后得到自车GCJ-02坐标,接着偏转加密单元可以将自车GCJ-02坐标发送给高精地图应用单元进行处理。

在本实施例中,偏转加密单元和可信度量单元运行于TEE环境中,其中TEE环境可以提供对偏转加密单元、可信度量单元的保护,以及TEE环境还可以提供对高精地图应用单元传输坐标数据的通道的保护。

并且车载计算装置中还包括硬件安全模块(Hardware Security Module,HSM),其中,HSM例如可以用于存储安全参数。

在本实施例中,偏转加密单元在传输坐标事前,可以调用可信度量模块对高精地图应用单元进行可信验证,在验证通过后才进行坐标数据的传输,从而可以有效保证数据的安全型。

其次对本实施例中的车载通信装置进行介绍,本实施例中的车载通信模块用于建立车载计算装置和地图应用云平台上服务器的网络连接,参见图2,车载通信装置中包括通信单元,在一种可能的实现方式中,通信单元例如可以采用C-V2X机制,其中,C-V2X可提供安全的通信机制;或者,通信单元还可以采用其余任一种通信机制,本实施例对此不做特别限制。

接着对本实施例中的地图应用云平台进行说明,参见图2,地图应用云平台包括监管服务器和应用服务器,其中,监管服务器用于管理并配置偏转加密单元中的安全参数,其中安全参数例如可以为预期度量值;以及,应用服务器用于处理偏转加密单元上传的加密后的自车高精度GCJ-02坐标。

在本实施例中,通过设置可信度量单元,可以实现可信验证流程,从而实现对高精地图应用单元以及相关联的运行环境模块等进行完整性度量,其中的环境模块例如可以包括需要调用的系统服务、中间件、软件库等。

以及,通过将需要保护的偏转加密单元和可信度量单元运行在TEE中,从而可以通过TEE在车载计算装置上建立安全隔离环境,其中普通的操作系统运行环境中的程序无法访问隔离环境中的资源,从而能够防止偏转加密单元和可信度量单元被外部系统中的恶意程序破坏,有效保证了系统的安全性。

同时,通过在云端设置监管服务器,能够实现在线配置偏转加密单元,例如可以接收偏转加密单元发起的配置请求,和/或,在线配置或者在线更新预期度量值,从而避免了现有的联编模式中的线下人工方式,有效提升了操作效率;并且在云端设置监管服务器,还可以在线提交的模块的完整性值进行审核,在审核通过之后生成预期度量值;并且监管服务器还可以对需要保护的偏转加密单元和相关的数据处理应用的状态进行实时监管,从而进一步提升系统和数据的安全性。

在上述介绍的系统的基础上,下面结合图3对本申请所提供的数据保护方法进行介绍,图3为本申请其中一实施例提供的数据保护方法的流程图。

本申请提供的方法应用于车载计算装置,其中车载计算装置包括偏转加密单元和可信度量单元,其中偏转加密单元和可信度量单元均运行于可信执行环境,其中,偏转加密单元和可信度量单元的具体实现可参照上述图2实施例介绍的内容,此处不再赘述。

如图3所示,该方法包括:

S301、偏转加密单元获取预期度量值。

在本实施例中,偏转加密单元例如可以在车辆的启动阶段获取预期度量值。

在一种可能的实现方式中,预期度量值例如可以为监管服务器预先发送给车载计算装置的,则偏转加密单元可以直接从本地获取预期度量值。

其中,可以由系统或者部件生产商预先将预期度量值提交给管理部门进行审核,在审核通过之后,监管服务器可以通过安全通道将预期度量值下发给偏转加密单元,从而使得偏转加密单元获取预期度量值,其中,预期度量值例如可以为系统中的各个单元以及主要运行环境(图TEE、关键依赖库等)的完整性值。

可以理解的是,在需要对度量的系统单元以及运行环境发生变化时,则系统或者部件生产商可以将更新值提交给管理部门进行审核,由监管服务器进行预期度量值的更新。

在另一种可能的实现方式中,预期度量值例如可以为可信度量单元执行可信度量生成的,则偏转加密单元可以接收可信度量单元反馈的度量值,从而获取预期度量值,本实施例对偏转加密单元获取预期度量值的实现方式不做限定。

S302、偏转加密单元请求调用可信度量单元执行第一可信度量。

在本实施例中,可信度量单元可以执行可信度量,其中,偏转加密单元例如可以在车辆的验证阶段请求调用可信度量单元执行第一可信度量。

在一种可能的实现方式中,偏转加密单元可以通过调用应用程序接口(Application Programming Interface,API),从而调用可信度量单元执行第一可信度量。

S303、可信度量单元执行第一可信度量,生成运行度量值。

其中,可信度量单元可以响应偏转加密单元的调用,执行第一可信度量,从而生成运行度量值,可以理解的是,本实施例中的预期度量值和运行度量值可能相同,也可能不相同。

在一种可能的实现方式中,可信度量单元可以通过预先定义的程序模块和运行环境执行哈希计算,从而生成运行度量值。

其中,程序模块是指用于对敏感数据处理的高精度地图应用程序,其可以是一个程序整体,或者还可以由多个功能相对独立的程序构成,其中多个程序模块之间并没有顺序要求。

以及,运行环境是指运行高精度地图应用程序所依赖的系统服务组件,如库文件(动态链接库或静态链接库),中间件(如数据库中间件),虚拟机环境(如java虚拟机),以及操作系统服务组件等,并且可以按照一定的加载顺序形成的程序模块列表。

例如,当前存在预配置的列表,列表中包括多个程序,则第一可信度量可以根据预配置的列表,按照顺序逐个对列表中的每个程序执行代码的哈希计算,假设针对多个程序得到的哈希计算值分别是H1、H2、H3、H4、…,则可以将生成的哈希计算值按照顺序链接在一起,得到链接后的哈希计算值:H1||H2||H3||H4||…。

接着,可以对链接后的哈希计算值进行哈希计算,从而得到运行度量值,其中运行度量值例如可以满足如下公式一:

M=Hash(H1||H2||H3||H4||…)公式一

其中,M为运行度量值,Hash为哈希函数,H1||H2||H3||H4||…为链接后的哈希计算值。

其中,哈希算法例如可以采用标准哈希算法,如SHA-1/SHA-256或SM3等,本实施例对此不做限制。

此处需要说明的是,生成预期度量值的实现方式可以与生成运行度量值的方式相同,因此若程序没有被篡改、数据没有非法输出的话,预期度量值和运行度量值应该是相同的。

在另一种可能的实现方式中,第一可信度量还可以采用标准的实现方式,如采用可信计算国际组织(Trusted Computing Group,TCG)标准的远程证明协议,或采用其他轻量级的完整性度量框架(Integrity Measurement Architecture,IMA)等,本实施例度第一可信度量的具体实现方式不做特别限制,只要第一可信度量可以生成运行度量值即可。

在本实施例中,通过可信度量单元执行可信度量,即通过对预先定义的程序模块和运行环境执行哈希计算,从而得到初始度量值,能够有效验证程序和环境的完整性,从而能够发现程序是否被篡改或者是否存在非法程序,因此能够防止数据在处理是被非法程序访问。

S304、可信度量单元将运行度量值反馈给偏转加密单元。

可信度量单元在生成运行度量值之后,将运行度量值反馈给偏转加密单元。

S305、偏转加密单元通过比较预期度量值和运行度量值,验证在车内执行数据操作的安全性。

在本实施例中,预期度量值例如可以是在车辆的启动阶段获取的,运行度量值可以是在车辆的验证阶段生成的,可以理解的是,在车辆启动之后,若程序正常运行,并且没有发生数据的非法输出的话,则运行度量值和预期度量值是相同的;然而,若发生程序的篡改或者数据的非法输出的话,则运行度量值也会相应的发生变化,则偏转加密单元可以通过比较预期度量值和运行度量值,从而验证在车内执行数据操作的安全性。

在一种可能的实现方式中,偏转加密单元确定预期度量值和运行度量值相等,则偏转加密单元可以确定没有发生程序的篡改或者数据的非法输出,则可以确定当前数据和程序的安全性,从而偏转加密单元可以执行数据操作。

其中,偏转加密单元执行的数据操作例如可以为坐标等敏感数据的偏转处理、坐标等敏感数据的加密处理,和/或,将处理的结果发送给高精地图应用单元。

在另一种可能的实现方式中,偏转加密单元确定预期度量值和运行度量值不相等,则偏转加密单元可以确定数据和/或程序不安全,则偏转加密单元可以关闭上述数据操作的功能,或者进行报警处理,从而能够有效保证数据处理的安全性。

本申请实施例提供的数据保护方法,包括:偏转加密单元获取预期度量值。偏转加密单元请求调用可信度量单元执行第一可信度量。可信度量单元执行第一可信度量,生成运行度量值。可信度量单元将运行度量值反馈给偏转加密单元。偏转加密单元通过比较预期度量值和运行度量值,验证在车内执行数据操作的安全性。其中偏转加密单元将获取的预期度量值和可信度量单元生成的运行度量值进行比较,从而有效验证在车内执行数据操作的安全性,从而能够有效保证车辆数据的安全性。

在上述实施例的基础上,在一种可能的实现方式中,偏转加密单元可以通过可信度量单元获取预期度量值;或者,偏转加密单元还可以从本地获取预期度量值,下面结合具体的实施例对本申请提供的数据保护方法进行进一步地详细介绍,结合图4进行说明,图4为本申请又一实施例提供的数据保护方法的流程图。

如图4所示,该方法包括:

S401、偏转加密单元判断本地是否存在预制的预期度量值,若是,则执行S402,若否,则执行S403。

在本实施例中,当本地存在预制的预期度量值时,偏转加密单元可以从本地获取预期度量值,当本地不存在预设的预期度量值时,偏转加密单元可以请求调用可信度量单元生成度量值,从而获取本地度量值。

则偏转加密单元判断本地是否存在预制的预期度量值,在一种可能的实现方式中,偏转加密单元例如可以在本地的硬件安全模块(HSM)中查询本地是否存在预制的预期度量值;或者偏转加密单元还可以在本地的非易失性存储中查询是否存在预期度量值;或者偏转加密单元还根据状态标志来判断本地是否存在预制的预期度量值。

S402、偏转加密单元获取本地的预制的预期度量值。

在一种可能的情况下,偏转加密单元确定本地有预制的预期度量值,则偏转加密单元可以直接获取本地的预制的预期度量值。

S403、偏转加密单元请求调用可信度量单元执行第二可信度量。

S404、可信度量单元执行第二可信度量,生成初始度量值。

S405、可信度量单元将初始度量值反馈给偏转加密单元。

下面对S403-S405一起进行介绍:

在另一种可能的情况下,偏转加密单元确定本地无预制的预期度量值,则偏转加密单元可以调用可信度量单元,生成预期度量值。

其中,偏转加密单元可以请求调用可信度量单元执行第二可信度量,从而生成初始度量值,在一种可能的实现方式中,可信度量单元可以通过对预先定义的程序模块和运行环境执行哈希计算,生成初始度量值。

其中,第二可信度量的实现方式与上述步骤S303中介绍的第一可信度量的实现方式类似,不同之处在于预先定义的程序模块和运行环境,也就是说执行可信度量的输入数据不同,本实施例对第二可信度量的具体实现方式不再赘述。

S406、偏转加密单元获取初始度量值。

在本实施例中,偏转加密单元可以通过获取初始度量值,从而获取预设度量值,也就是说将初始度量值确定为预设度量值。

基于上述介绍的内容可以确定的是,本实施例中,偏转加密单元在确定本地有预制的预期度量值时,可以直接从本地获取预期度量值;在确定本地无阈值的预期度量值时,可以通过获取可信度量单元生成的初始度量值,从而生成获取预期度量值。

在本实施例中,在确定本地无预期度量值时,偏转加密单元调用可信度量单元生成初始度量值,从而能够有效提升获取预期度量值的灵活性。

S407、偏转加密单元请求调用可信度量单元执行第一可信度量。

S408、可信度量单元执行第一可信度量,生成运行度量值。

S409、可信度量单元将运行度量值反馈给偏转加密单元。

其中,S407-S409的实现方式与S302-S304的实现方式类似,此处不再赘述。

S410、偏转加密单元判断预期度量值和运行度量值是否相等,若是,则执行S411,若否,则执行S412。

在本实施例中,预期度量值可以是从本地获取的,可以理解的是,从本地获取的预期度量值是监管服务器预先发送给偏转加密单元的,而服务器发送的预期度量值是系统或者部件生产商预先通过对预先定义的程序模块和运行环境执行哈希计算得到的。

或者,预期度量值还可以是可信度量单元执行第二可信度量得到的,第二可信度量同样是通过对预先定义的程序模块和运行环境执行哈希计算得到的。

以及本实施例中的运行度量值是可信度量单元执行第一可信度量得到的,第一可信度量同样是通过对预先定义的程序模块和运行环境执行哈希计算得到的。

基于上述介绍可以确定的是,若预先定义的程序模块和运行环境没有发生变化,则预期度量值和运行度量值应该是相等的;反之,若预先定义的程序模块和运行环境发生了变化,则预期度量值和运行度量值会不相等。

S411、偏转加密单元执行数据操作。

在一种可能的实现方式中,偏转加密单元确定预期度量值和运行度量值相等,则可以确定预先定义的程序模块和运行环境没有发生变化,则可以确定当前数据和程序的安全性,从而偏转加密单元可以执行数据操作。

其中,偏转加密单元执行的数据操作例如可以为坐标等敏感数据的偏转处理、坐标等敏感数据的加密处理,和/或,将处理的结果发送给高精地图应用单元。

S412、偏转加密单元关闭数据操作的功能,或者进行报警。

在另一种可能的实现方式中,偏转加密单元确定预期度量值和运行度量值不相等,则偏转加密单元可以确定数据和/或程序不安全,则偏转加密单元可以关闭上述数据操作的功能,或者进行报警处理,从而能够有效保证数据处理的安全性。

本申请实施例提供的数据保护方法,包括:偏转加密单元判断本地是否存在预制的预期度量值,若是,则偏转加密单元获取本地的预制的预期度量值。若否,则偏转加密单元请求调用可信度量单元执行第二可信度量。可信度量单元执行第二可信度量,生成初始度量值。可信度量单元将初始度量值反馈给偏转加密单元。偏转加密单元获取初始度量值。偏转加密单元请求调用可信度量单元执行第一可信度量。可信度量单元执行第一可信度量,生成运行度量值。可信度量单元将运行度量值反馈给偏转加密单元。偏转加密单元判断预期度量值和运行度量值是否相等,若是,则偏转加密单元执行数据操作。若否,则偏转加密单元关闭数据操作的功能,或者进行报警。通过判断预期度量值和可信度量单元生成的运行度量值是否相等,从而验证数据的安全性,能够以简单高效的方式,有效保护坐标等敏感数据不会被非法访问,增强了车内数据的安全性,同时,本实施例提供的方法避免了对处理单元的整体联编,从而能给简单高效的通过在线的方式实现对各个处理单元的管控。

在上述实施例的基础上,在偏转加密单元确定本地无预制的预期度量值时,在另一种可能的实现方式中,还可以向服务器请求获取预期度量值,下面对向服务器请求获取预期度量值的实现方式进行说明。结合图5进行介绍,图5为本申请另一实施例提供的数据保护方法的流程图。

如图5所示,该方法包括:

S501、偏转加密单元判断本地是否存在预制的预期度量值,若是,则执行S502,若否,则执行S503。

S502、偏转加密单元获取本地的预制的预期度量值。

其中,S501、S502的实现方式与S401、S402的实现方式相同,此处不再赘述。

S503、偏转加密单元与监管服务器进行双向认证并建立安全通道。

S504、偏转加密单元向服务器请求获取预期度量值。

S505、偏转加密单元接收服务器返回的预期度量值。

下面对S503-S505一起进行说明:

在本实施例中,偏转加密单元确定本地无预制的预期度量值,则可以向服务器请求获取预期度量值,首先,偏转加密单元与监管服务器进行双向认证并建立安全通道,从而可以保证后续数据传输的安全性。

接着偏转加密单元向监管服务器请求获取预期度量值,监管服务器可以通过安全通道将预期度量值返回给偏转加密单元,偏转加密单元接收监管服务器返回的预期度量值,从而实现获取预期度量值。

S506、偏转加密单元请求调用可信度量单元执行第一可信度量。

S507、可信度量单元执行第一可信度量,生成运行度量值。

S508、可信度量单元将运行度量值反馈给偏转加密单元。

其中,S506-S508的实现方式与S302-S304的实现方式类似,此处不再赘述。

S509、偏转加密单元判断预期度量值和运行度量值是否相等,若是,则执行S510,若否,则执行S511。

S510、偏转加密单元执行数据操作。

S511、偏转加密单元关闭数据操作的功能,或者进行报警。

其中,S509-S511的实现方式与S410-S412的实现方式类似,此处不再赘述。

本申请实施例提供的数据保护方法,在偏转加密单元确定本地无预制的预期度量值的情况下,可以与服务器建立安全通道,从而通过在线的方式从服务器获取预期度量值,从而在并不降低安全性的情况下,无需在启动阶段执行可信度量的过程,减少了计算开销。

同时,本实施例中通过在线从服务器获取预期度量值,从而无需将预期度量值永久的保存在本地,减少了本地存储开销,以及可以有效的增加适用场景,例如在车辆无法预制预期度量值的情况下,从服务器获取的方式能够有效灵活性。

在上述实施例的基础上,为防止车辆在启动前系统被非法刷写或篡改等静态攻击场景,可以增加对启动时的初始度量值的验证过程,例如可以在启动阶段,无论判断是否有本地是否存在预期度量值,均要调用可信度量单元执行可信度量,同时,如果本地没有预期度量值,需要在线从服务器获取预期度量值,并将初始度量值和预期度量值比较,如果一致,才能继续后续流程。下面对该种实现方式进行详细介绍,结合图6进行说明,图6为本申请再一实施例提供的数据保护方法的流程图。

如图6所示,该方法包括:

S601、偏转加密单元判断本地是否存在预制的预期度量值,若是,则执行S602,若否,则执行S603。

S602、偏转加密单元获取本地的预制的预期度量值。

其中,S601、S602的实现方式与S401、S402的实现方式相同,此处不再赘述。

S603、偏转加密单元与监管服务器进行双向认证并建立安全通道。

S604、偏转加密单元向服务器请求获取预期度量值。

S605、偏转加密单元接收服务器返回的预期度量值。

其中,S603-S605的实现方式与S503-S505的实现方式相同,此处不再赘述。

S606、偏转加密单元请求调用可信度量模块执行第三可信度量。

S607、可信度量单元执行第三可信度量,生成初始度量值。

在本实施例中,在偏转加密单元获取预期度量值之后,为了防止在车辆启动阶段预期度量值被篡改,可以请求调用可信度量单元执行第三可信度量,从而生成初始度量值,以及可信度量单元还可以将初始度量值反馈偏转加密单元。

在一种可能的实现方式中,可信度量单元可以通过对预先定义的程序模块和运行环境执行哈希计算,生成初始度量值。

其中,第三可信度量的实现方式与上述步骤S303中介绍的第一可信度量的实现方式类似,不同之处在于预先定义的程序模块和运行环境,也就是说执行可信度量的输入数据不同,本实施例对第三可信度量的具体实现方式不再赘述。

S608、偏转加密单元判断预期度量值与初始度量值是否相等,若否,则执行S609,若是,则执行S610。

接着,偏转加密单元判断预期度量值和初始度量值是否相等,可以理解的是,车辆在未启动时,可能存在系统软件更新或非法刷新的情况,因此在车辆启动时,通过预期度量值和初始度量值进行比较,能够验证系统是否在上一次审核通过后发生改变,从而能给有效提升安全性。

S609、偏转加密单元关闭数据操作的功能,或者进行报警。

在一种可能的实现方式中,偏转加密单元确定预期度量值和初始度量值不相等,则偏转加密单元可以关闭数据操作的功能,或者进行保证,从而保证车辆数据的安全性。

S610、偏转加密单元请求调用可信度量单元执行第一可信度量。

S611、可信度量单元执行第一可信度量,生成运行度量值。

S612、可信度量单元将运行度量值反馈给偏转加密单元。

在另一种可能的实现方式中,偏转加密单元确定预期度量值和初始度量值相等,则可以进行后续的操作。

其中,S610-S612的实现方式与S302-S304的实现方式类似,此处不再赘述。

S613、偏转加密单元判断预期度量值和运行度量值是否相等,若是,则执行S614,若否,则执行S615。

S614、偏转加密单元执行数据操作。

S615、偏转加密单元关闭数据操作的功能,或者进行报警。

其中,S613-S614的实现方式与S410-S412的实现方式类似,此处不再赘述。

本申请实施例提供的数据保护方法,通过在启动阶段比较预期度量值和初始度量值,在确定预期度量值和初始度量值一致时,才进行后续的处理,从而能给有效提升数据的安全性,防止系统处于离线状态时,预期度量值发生更新或发生篡改,以及,对于监管部门而言,能够在车辆在启动时,验证目标对象是否发生改变,该验证的结果可以实时回传到监管服务端,从而为监管方提供了一种实现实时监管的机制,从而能够帮助监管部门进行实时监控。

图7为本申请一实施例提供的车载计算装置的结构示意图。如图7所示,装置70可用于执行上述图3-6任一项所描述的数据保护方法,装置70包括:偏转加密单元701和可信度量单元702,所述偏转加密单元701和可信度量单元702运行于可信执行环境;

其中,所述偏转加密单元701,用于获取预期度量值,以及请求调用所述可信度量单元702执行第一可信度量;

所述可信度量单元702,用于执行所述第一可信度量,生成运行度量值,以及将所述运行度量值反馈给所述偏转加密单元701;

所述偏转加密单元701还用于通过比较所述预期度量值和所述运行度量值,验证在车内执行数据操作的安全性。

在一种可能的实施方式中,所述偏转加密单元701,还用于在获取预期度量值之前确定本地无预制的所述预期度量值,并请求调用所述可信度量模块执行第二可信度量;

所述可信度量单元702,还用于执行所述第二可信度量,生成初始度量值;

所述偏转加密单元701获取预期度量值包括:所述偏转加密单元701获取所述初始度量值。

在一种可能的实施方式中,所述可信度量单元702执行所述第二可信度量,生成初始度量值包括:

所述可信度量单元702通过对预先定义的程序模块和运行环境执行哈希计算,生成所述初始度量值。

在一种可能的实施方式中,所述偏转加密单元701,还用于在获取预期度量值之前,确定本地无预制的所述预期度量值,以及向服务器请求获取所述预期度量值;

所述偏转加密单元701获取预期度量值包括:所述偏转加密单元701接收所述服务器返回的所述预期度量值。

在一种可能的实施方式中,所述偏转加密单元701,还用于在获取预期度量值之前,确定本地有预制的所述预期度量值;

所述偏转加密单元701获取预期度量值包括:所述偏转加密单元701获取本地的所述预制的所述预期度量值。

在一种可能的实施方式中,所述偏转加密单元701,还用于在获取预期度量值之后,请求调用所述可信度量模块执行第三可信度量;

所述可信度量单元702,还用于执行所述第三可信度量,生成初始度量值;

所述偏转加密单元701,还用于确定所述预期度量值与所述初始度量值不相等,然后关闭所述数据操作的功能,或者进行报警。

在一种可能的实施方式中,所述偏转加密单元701还用于通过比较所述预期度量值和所述运行度量值,验证在车内执行数据操作的安全性包括:

所述偏转加密单元701还用于确定所述预期度量值与所述运行度量值相等,以及执行所述数据操作。

在一种可能的实施方式中,所述偏转加密单元701还用于通过比较所述预期度量值和所述运行度量值,验证在车内执行数据操作的安全性包括:

所述偏转加密单元701还用于确定所述预期度量值与所述运行度量值不相等,以及关闭所述数据操作的功能,或者进行报警。

在一种可能的实施方式中,所述可信度量单元702用于执行所述第一可信度量,生成运行度量值包括:

所述可信度量单元702,用于通过对预先定义的程序模块和运行环境执行哈希计算,生成所述运行度量值。

本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。

图7中的各个模块的只一个或多个可以软件、硬件、固件或其结合实现。所述软件或固件包括但不限于计算机程序指令或代码,并可以被硬件处理器所执行。所述硬件包括但不限于各类集成电路,如中央处理单元(CPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或专用集成电路(ASIC)。

图8为本申请实施例提供的车载计算装置的硬件结构示意图,如图8所示,车载计算装置80可用于执行上述图3-6任一项所描述的数据保护方法,车载计算装置80包括:处理器801以及存储器802;其中

存储器802,用于存储计算机执行指令;

处理器801,用于执行存储器存储的计算机执行指令,以实现上述实施例中数据保护方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。

可选地,存储器802既可以是独立的,也可以跟处理器801集成在一起。

当存储器802独立设置时,该车载计算装置还包括总线803,用于连接所述存储器802和处理器801。

可选的,上述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的业务处理方法实施例中的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

本申请实施例还提供一种计算机存储介质,包括计算机指令,当所述计算机指令在被处理器运行时,实现如上车载计算装置所执行的数据保护方法。

本申请实施例提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,实现如上车载计算装置所执行的数据保护方法。

本申请实施例还提供一种智能车,包括车载通信装置和如上实施例所述的车载计算装置。

实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppydisk)、光盘(英文:optical disc)及其任意组合。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请实施例权利要求及其等同技术的范围之内,则本申请实施例也意图包含这些改动和变型在内。

在本申请实施例中,术语“包括”及其变形可以指非限制性的包括;术语“或”及其变形可以指“和/或”。本本申请实施例中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本申请实施例中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 一种数据中断传输的保护方法和基于该保护方法的数据存储器
  • 虚拟机持续数据保护方法、装置及数据恢复方法、装置
技术分类

06120112515978