车机端数据保护方法、装置及车辆与流程

文档序号:15616114发布日期:2018-10-09 21:25阅读:172来源:国知局

本发明涉及计算机技术领域,具体涉及一种车机端数据保护方法、装置及车辆。



背景技术:

车载信息娱乐系统(in-vehicleinfotainment,ivi)是采用车载专用中央处理器,基于车身总线系统和互联网服务,形成的车载综合信息处理系统,其可以基于android操作系统实现影音播放、导航、天气、里程示意等多种功能。但是,由于android操作系统是一种基于linux的自由及开放源代码的操作系统,极易被反向编译,造成车载信息娱乐系统中重要数据的泄露。



技术实现要素:

为了解决现有技术中的上述问题,即为了解决如何提高基于android操作系统的车机端数据安全性的技术问题。为此目的,本发明提供了一种车机端数据保护方法、装置及车辆。

在第一方面,本发明中车机端数据保护方法应用于基于android操作系统的车机端,包括如下步骤:

在所述android操作系统的native层中,获取预设的车机特征信息,并根据所述预设的车机特征信息生成唯一密钥;

利用所生成的唯一密钥对所述车机端数据进行加/解密。

进一步地,本发明提供的一个优选技术方案为:

“获取预设的车机特征信息”包括:

在所述native层中调取在所述android操作系统中预先添加的系统服务;

根据所述系统服务,获取车机端的预设的车机特征信息。

进一步地,本发明提供的一个优选技术方案为:

“根据所述预设的车机特征信息生成唯一密钥”的步骤之后包括:

按照预设的密钥更新周期,重新根据所述预设的车机特征信息生成唯一密钥;

根据重新生成的唯一密钥对当前唯一密钥进行更新;以及在该情况下,利用所生成的唯一密钥对所述车机端数据进行加/解密是利用更新后的唯一密钥来对所述车机端数据进行加/解密。

进一步地,本发明提供的一个优选技术方案为:

所述预设的车机特征信息为预设的车机端id值。

进一步地,本发明提供的一个优选技术方案为:

所述方法还包括在所述车机端启动过程中对所述android操作系统的安装包签名进行验证的步骤,包括:

在所述android操作系统的native层中,对所述安装包签名进行验证并在验证不通过的情况下中断所述车机端启动。

进一步地,本发明提供的一个优选技术方案为:

“对所述安装包签名进行验证”包括:

动态调取context对象;

根据所述context对象获取安装包签名;

对所获取的安装包签名和预设签名进行比对。

在第二方面,本发明中车机端数据保护装置应用于基于android操作系统的车机端,具体包括密钥生成模块和数据加密模块;

所述密钥生成模块,配置为在所述android操作系统的native层中,获取预设的车机特征信息,并根据所述预设的车机特征信息生成唯一密钥;

所述数据加密模块,配置为利用所述密钥生成模块所生成的唯一密钥对所述车机端数据进行加/解密。

进一步地,本发明提供的一个优选技术方案为:

所述密钥生成模块包括特征信息获取单元,其配置为执行下述操作:

在所述native层中调取在所述android操作系统中预先添加的系统服务;

根据所述系统服务,获取车机端的预设的车机特征信息。

进一步地,本发明提供的一个优选技术方案为:

所述装置还包括密钥更新模块,其配置为:

按照预设的密钥更新周期,重新根据所述预设的车机特征信息生成唯一密钥;

根据重新生成的唯一密钥对当前唯一密钥进行更新;以及在该情况下,利用所生成的唯一密钥对所述车机端数据进行加/解密是利用更新后的唯一密钥来对所述车机端数据进行加/解密。

进一步地,本发明提供的一个优选技术方案为:

所述预设的车机特征信息为预设的车机端id值。

进一步地,本发明提供的一个优选技术方案为:

所述装置还包括签名验证模块,其配置为执行下述操作:

在所述车机端启动过程中对所述android操作系统的安装包签名进行验证的步骤,包括:在所述android操作系统的native层中,对所述安装包签名进行验证并在验证不通过的情况下中断所述车机端启动。

进一步地,本发明提供的一个优选技术方案为:

所述签名验证模块包括签名验证单元,其配置为执行下述操作:

动态调取context对象;

根据所述context对象获取安装包签名;

对所获取的安装包签名和预设签名进行比对。

在第三方面,本发明中存储装置存储有多条程序,所述程序适于由处理器加载并执行以实现上述技术方案所述的车机端数据保护方法。

在第四方面,本发明中处理装置包括:

处理器,适于执行各条程序;

存储设备,适于存储多条程序;

所述程序适于由处理器加载并执行以实现上述技术方案所述的车机端数据保护方法。

在第五方面,本发明中车辆包括上述技术方案所述的车机端数据保护装置

方案1、一种车机端数据保护方法,应用于基于android操作系统的车机端,其包括:

在所述android操作系统的native层中,获取预设的车机特征信息,并根据所述预设的车机特征信息生成唯一密钥;

利用所生成的唯一密钥对所述车机端数据进行加/解密。

方案2、根据方案1所述的车机端数据保护方法,其特征在于,“获取预设的车机特征信息”包括:

在所述native层中调取在所述android操作系统中预先添加的系统服务;

根据所述系统服务,获取车机端的预设的车机特征信息。

方案3、根据方案1所述的车机端数据保护方法,其特征在于,“根据所述预设的车机特征信息生成唯一密钥”之后包括:

按照预设的密钥更新周期,重新根据所述预设的车机特征信息生成唯一密钥;

根据重新生成的唯一密钥对当前唯一密钥进行更新;以及在该情况下,利用所生成的唯一密钥对所述车机端数据进行加/解密是利用更新后的唯一密钥来对所述车机端数据进行加/解密。

方案4、根据方案1或2所述的车机端数据保护方法,其特征在于,

所述预设的车机特征信息为预设的车机端id值。

方案5、根据方案1-3任一项所述的车机端数据保护方法,其特征在于,所述方法还包括在所述车机端启动过程中对所述android操作系统的安装包签名进行验证的步骤,包括:

在所述android操作系统的native层中,对所述安装包签名进行验证并在验证不通过的情况下中断所述车机端启动。

方案6、根据方案5所述的车机端数据保护方法,其特征在于,“对所述安装包签名进行验证”包括:

动态调取context对象;

根据所述context对象获取安装包签名;

对所获取的安装包签名和预设签名进行比对。

方案7、一种车机端数据保护装置,其特征在于,应用于基于android操作系统的车机端,具体包括密钥生成模块和数据加密模块;

所述密钥生成模块,配置为在所述android操作系统的native层中,获取预设的车机特征信息,并根据所述预设的车机特征信息生成唯一密钥;

所述数据加密模块,配置为利用所述密钥生成模块所生成的唯一密钥对所述车机端数据进行加/解密。

方案8、根据方案7所述的车机端数据保护装置,其特征在于,所述密钥生成模块包括特征信息获取单元,其配置为执行下述操作:

在所述native层中调取在所述android操作系统中预先添加的系统服务;

根据所述系统服务,获取车机端的预设的车机特征信息。

方案9、根据方案7所述的车机端数据保护装置,其特征在于,所述装置还包括密钥更新模块,其配置为:

按照预设的密钥更新周期,重新根据所述预设的车机特征信息生成唯一密钥;

根据重新生成的唯一密钥对当前唯一密钥进行更新;以及在该情况下,利用所生成的唯一密钥对所述车机端数据进行加/解密是利用更新后的唯一密钥来对所述车机端数据进行加/解密。

方案10、根据方案7或8所述的车机端数据保护装置,其特征在于,

所述预设的车机特征信息为预设的车机端id值。

方案11、根据方案7-9任一项所述的车机端数据保护装置,其特征在于,所述装置还包括签名验证模块,其配置为执行下述操作:

在所述车机端启动过程中对所述android操作系统的安装包签名进行验证的步骤,包括:在所述android操作系统的native层中,对所述安装包签名进行验证并在验证不通过的情况下中断所述车机端启动。

方案12、根据方案11所述的车机端数据保护装置,其特征在于,所述签名验证模块包括签名验证单元,其配置为执行下述操作:

动态调取context对象;

根据所述context对象获取安装包签名;

对所获取的安装包签名和预设签名进行比对。

方案13、一种存储装置,其中存储有多条程序,其特征在于,所述程序适于由处理器加载并执行以实现方案1-7任一项所述的车机端数据保护方法。

方案14、一种处理装置,包括:

处理器,适于执行各条程序;

存储设备,适于存储多条程序;

其特征在于,所述程序适于由处理器加载并执行以实现方案1-7任一项所述的车机端数据保护方法。

方案15、一种车辆,其特征在于,包括方案7-12任一项所述的车机端数据保护装置。

与最接近的现有技术相比,本发明具有如下有益效果:

1、本发明中的车机端数据保护方法,可以在android操作系统的native层中,获取车机端的预设的车机特征信息,并根据预设的车机特征信息生成唯一密钥。基于此,在android操作系统被移植的情况下,也无法通过native层获取密钥对车机端数据进行解密,从而有效保护了车机端数据。

2、本发明中预设的车机特征信息是能够表征当前车机区别于其他车机的信息,因此根据预设的车机特征信息生成的密钥仅对该车机特征信息所对应的车机端有效,而对其他车机端无效。同时,将预设的车机特征信息作为密钥关键参数并采用特定加密算法生成的密钥,在对android操作系统升级、清空数据或重新刷机后,仍是可以对车机端数据加/解密的有效密钥。

3、本发明中的车机端数据保护方法,可以在车机端启动过程中对android操作系统的安装包签名进行验证,从而防止android操作系统被移植,确保其只能运行在相应的车辆上。

附图说明

图1是本发明实施例中一种车机端数据保护方法的主要步骤示意图;

图2是本发明实施例中一种车机端数据保护装置的主要结构示意图;

图3是本发明实施例中另一种车机端数据保护装置的主要结构示意图;

图4是本发明实施例中再一种车机端数据保护装置的主要结构示意图。

具体实施方式

下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。

android操作系统的加密程度是决定其是否能被反编译的重要因素,而相较于java源代码,native层的c/c++源代码具有较高的安全性,不易被反编译。基于此,本发明提供了一种应用于基于android操作系统的车机端数据保护方法,该方法能够在android操作系统的native层中生成每个车机端对应的唯一密钥,并利用该唯一密钥对车机端数据进行加密,极大地提高了车机端的加密程度。

下面结合附图,对本发明实施例中的车机端数据保护方法进行说明。

参阅附图1,其示例性示出了本实施例中车机端数据保护方法的主要步骤。如图1所示,本实施例中车机端数据保护方法可以包括如下步骤:

步骤s101:在android操作系统的native层中,获取预设的车机特征信息,并根据预设的车机特征信息生成唯一密钥。

具体地,本实施例中的native层指的是android操作系统的本地框架层,其包含android操作系统的本地服务和链接库,并通过c语言或c++语言实现。本实施例中预设的车机特征信息指的是能够表征当前车机区别于其他车机的信息,在本实施例的一个优选实施方案中,预设的车机特征信息可以为预设的车机端id值,如由车型编号+车机编号构成的车机端id值。

本实施例中图1所示的车机端数据保护方法可以按照如下步骤获取车机端的预设的车机特征信息:

步骤s1011:在native层中调取在android操作系统中预先添加的系统服务。本实施例中预先添加的系统服务指的是设置在android操作系统中的一个用于存储预设的车机特征信息或者能够获取预设的车机特征信息的系统管理服务systemservice。

步骤s1012:根据预先添加的系统服务,获取车机端的预设的车机特征信息。本实施例中在调取预先添加的系统服务后,通过获取该系统服务的程序运行结果来得到车机端的预设的车机特征信息。

由前述可知,预设的车机特征信息是能够表征当前车机区别于其他车机的信息,因此根据预设的车机特征信息生成的密钥仅对该车机特征信息所对应的车机端有效,而对其他车机端无效。同时,本实施例中可以将预设的车机特征信息作为密钥关键参数,并采用特定的密钥生成算法生成密钥,从而保证了在对android操作系统升级、清空数据或重新刷机后,当前密钥仍是可以对车机端数据加/解密的有效密钥。

步骤s102:利用所生成的唯一密钥对车机端数据进行加/解密。

本实施例中通过在native层中生成密钥,使得android操作系统被移植的情况下,也无法通过native层获取密钥对车机端数据进行解密,从而有效保护了车机端数据。

进一步地,本实施例中图1所示的车机端数据保护方法还包括在根据预设的车机特征信息生成唯一密钥后对密钥进行更新的步骤,该步骤具体包括:

按照预设的密钥更新周期,重新根据预设的车机特征信息生成唯一密钥,并根据重新生成的唯一密钥对当前唯一密钥进行更新。在此情况下,可以利用更新后的唯一密钥对车机端数据进行加/解密。

本实施例中若需要保证密钥与车机端的软件生命周期相同,则可以不执行上述密钥更新步骤。

再进一步地,本实施例中图1所示的车机端数据保护方法还包括在车机端启动过程中对android操作系统的安装包签名进行验证的步骤,该步骤具体包括:在android操作系统的native层中,对安装包签名进行验证并在验证不通过的情况下中断车机端启动。在本实施例的一个优选实施方案中,在native层中的动态库加载时即对安装包签名进行验证。

具体地,本实施例中可以按照如下步骤对安装包签名进行验证:

步骤s201:动态调取context对象。

本实施例中动态调取指的是通过不同程序代码的之间的调用,获取context对象的方式。例如,首先根据目标context对象的信息调用程序代码a,然后根据程序代码a调用程序代码b,最后通过程序代码b得到目标context对象。通过动态调取的方式获取context对象,可以避免通过重写context和packagemanager伪造安装包签名的情况发生。

步骤s202:根据context对象获取安装包签名。

本实施例中在得到context对象后,即可在native层中调用java源代码得到安装包签名。

步骤s203:对所获取的安装包签名和预设签名进行比对。

本实施例中预设签名可以是在车机端特定存储区中预先存储好的签名,并采用在native层中调用java源代码的方式,来获取这个签名。预设签名还可以是能够执行并实现“对所获取的安装包签名和预设签名进行比对”的程序代码中预先设置好的签名。

本实施例通过在车机端启动过程中对android操作系统的安装包签名进行验证,来判断安装包的合法性,可以防止android操作系统被移植,确保其只能运行在相应的车辆上。例如,在native层中的动态库加载时即对安装包签名进行验证,若验证不通过可直接中断加载动态库。在此情况下,由于动态库不能加载,android操作系统即使被移植到其他车机端,也无法正常运行,更不会生成解密车机端数据的唯一密钥。

需要说明的是,本发明虽然公开了在native层中的动态库加载时即对安装包签名进行验证这一种实施方案,但是只要能够防止android操作系统被移植,以及防止android操作系统在被移植的情况下生成解密车机端数据的唯一密钥,可以适当调整安装包签名验证的时间,这些简单的时间变化都在本发明的保护范围之内。

上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。

需要说明的是,车机端在本申请的各示例中示例性地为车辆的信息娱乐系统,在某些情况下,可能直接指代该系统的控制器,而在某些情况下,可能具体指的是该系统的现实屏幕,这可结合上下文确定。需要特别指出的是,根据本申请的信息娱乐系统,其包括影音播放、导航、天气、里程示意等多种功能或其组合,在一些情况下,也可称作车辆的操作系统。相应地,车机端数据在本申请的各示例中示例性地为信息娱乐系统中部分或所有app的相关数据,如影音播放app、导航app或天气app等,这些app能够执行图1所示车机端数据保护方法进行数据保护,即这些app所涉及的所有数据,如配置数据、用户信息或车辆信息都能够被有效保护。

基于上述车机端数据保护方法实施例,本发明实施例还提供了一种存储装置,该存储装置存储有多条程序,并且这些程序适于由处理器加载并执行以实现上述方法实施例所述的车机端数据保护方法。

进一步地,基于上述车机端数据保护方法实施例,本发明实施例还提供了一种处理装置,该处理装置包括处理器和存储设备,其中,处理器可以适于执行各条程序,存储设备可以适于存储多条程序,并且这些程序可以适于由处理器加载并执行以实现上述方法实施例所述的车机端数据保护方法。

再进一步地,基于与方法实施例相同的技术构思,本发明实施例还提供一种车机端数据保护装置。下面结合附图对该车机端数据保护装置进行具体说明。

参阅附图2,其示例性示出了本实施例中第一种车机端数据保护装置的主要结构。如图2所示,本实施例中应用于基于android操作系统的车机端包括:密钥生成模块11和数据加密模块12。具体地,本实施例中密钥生成模块11可以配置为在android操作系统的native层中,获取车机端的预设的车机特征信息,并根据预设的车机特征信息生成唯一密钥。数据加密模块12可以配置为利用密钥生成模块11所生成的唯一密钥对车机端数据进行加/解密。

进一步地,本实施例中图2所示车机端数据保护装置中的密钥生成模块11可以包括特征信息获取单元,该特征信息获取单元可以配置为执行如下操作:首先,在native层中调取android操作系统中预先添加的系统服务。根据预先添加的系统服务,获取车机端的预设的车机特征信息。在本实施例的一个优选实施方案中,预设的车机特征信息为预设的车机端id值。

参阅附图3,其示例性示出了本实施例中第二种车机端数据保护装置的主要结构。如图3所示,本实施例中应用于基于android操作系统的车机端包括:密钥生成模块11、数据加密模块12和密钥更新模块13。具体地,密钥生成模块11和数据加密模块12,分别与图2所示车机端数据保护装置中的密钥生成模块和数据加密模块相同。密钥更新模块13可以配置为执行如下操作:按照预设的密钥更新周期,重新根据预设的车机特征信息生成唯一密钥,并根据重新生成的唯一密钥对当前唯一密钥进行更新,利用更新后的唯一密钥对车机端数据进行加/解密。

参阅附图4,其示例性示出了本实施例中第三种车机端数据保护装置的主要结构。如图4所示,本实施例中应用于基于android操作系统的车机端包括:密钥生成模块11、数据加密模块12、密钥更新模块13和签名验证模块14。具体地,密钥生成模块11和数据加密模块12,分别与图2所示车机端数据保护装置中的密钥生成模块和数据加密模块相同。密钥更新模块13与图3所示车机端数据保护装置中的密钥更新模块相同。签名验证模块14可以配置为执行如下操作:在车机端启动过程中对android操作系统的安装包签名进行验证的步骤,具体为:在android操作系统的native层中,对安装包签名进行验证并在验证不通过的情况下中断车机端启动。

进一步地,本实施例中图4所示车机端数据保护装置中的签名验证模块14可以包括签名验证单元,该签名验证单元可以配置为执行如下操作:首先,动态调取context对象。然后,根据context对象获取安装包签名。最后,对所获取的安装包签名和预设签名进行比对。

上述车机端数据保护装置实施例可以用于执行上述车机端数据保护方法实施例,其技术原理、所解决的技术问题及产生的技术效果相似,所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的车机端数据保护装置的具体工作过程及有关说明,可以参考前述车机端数据保护方法实施例中的对应过程,在此不再赘述。同时,本发明中图2-4中的各个模块的数量仅仅是示意性的。根据实际需要,各模块可以具有任意的数量。

基于上述装置实施例所述的车机端数据保护装置,本发明还提供了一种车辆,该车辆包括上述车机端数据保护装置。

本领域技术人员可以理解,可以对实施例中的装置中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个装置中。可以把实施例中的模块或单元组合成一个模块或单元,以及此外可以把它们分成多个子模块或子单元。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在本发明的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1