个人信息保护方法、保护装置和车辆与流程

文档序号:18835489发布日期:2019-10-09 05:11阅读:216来源:国知局
个人信息保护方法、保护装置和车辆与流程

本发明涉及汽车技术领域,特别涉及一种个人信息保护方法、保护装置和车辆。



背景技术:

随着电子技术的发展,个人信息逐渐引起用户的重视。智能电子设备通常承载了大量的个人信息。对于搭载了开源操作系统的电子设备,在使用过程中当第三方式应用程序访问个人信息数据时,将可能导致个人信息泄露。因此,在开源操作系统中如何有效保护个人信息成为亟待解决的问题。



技术实现要素:

有鉴于此,本发明的实施例提供了一种个人信息保护方法、保护装置和车辆。

本发明提供了一种个人信息保护方法,包括:

在第三方应用程序启动前,创建替换文件;

在所述第三方应用程序启动过程中,将所述第三方应用程序访问敏感数据的函数接口替换为预定函数接口;

在所述第三方应用程序访问所述敏感数据时,所述预定函数接口自所述替换文件获取与所述敏感数据对应的脱敏数据返回至所述第三方应用程序。

在某些实施方式中,所述在第三方应用程序程序启动前创建替换文件包括:

在系统首次启动时创建所述替换文件。

在某些实施方式中,所述替换文件包括个人信息替换文件和/或设备信息替换文件。

在某些实施方式中,所述个人信息替换文件包括多个属性及与分别与所述多个属性对应的多个值。

在某些实施方式中,所述属性包括设备识别码、mac地址、基站定位数据和文件路径中的至少一个。

在某些实施方式中,每个所述属性对应的值随机生成并符合所述属性的数据规格。

在某些实施方式中,所述个人信息替换文件的内容通过所述属性和所述值对的方式组织。

在某些实施方式中,所述设备信息替换文件的内容为随机生成且所述内容的值符合所述内容的数据规格。

在某些实施方式中,所示个人信息保护法方法还包括:

在所述第三方应用程序运行过程中加载功能模块时,将所述第三方应用程序访问敏感数据的函数接口替换为预定函数接口。

在某些实施方式中,所述个人信息保护方法包括:

在应用程序安装时,判断所述应用程序是否为所述第三方应用程序。

在某些实施方式中,所述判断所述应用程序是否为所述第三方应用程序包括:

判断所述应用程序的签名与系统签名是否一致,若否,则所述应用程序为所述第三方应用程序。

在某些实施方式中,所述判断所述应用程序是否为所述第三方应用程序包括:

判断所述应用是否属于系统的程序白名单,若否,则所述应用程序为所述第三方应用程序。

本发明提供了一种个人信息保护装置,包括:

创建模块,用于在第三方应用程序启动前,创建替换文件;

替换模块,在所述第三方应用程序启动过程中,将所述第三方应用程序访问敏感数据的函数接口替换为预定函数接口;

数据返回模块,用于在所述第三方应用程序访问所述敏感数据时,通过所述预定函数接口自所述替换文件获取与所述敏感数据对应的脱敏数据返回至所述第三方应用程序。

本发明提供了一种车辆,包括一个或多个处理器、存储器;和

一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行如上所述的个人信息保护方法的指令。

本发明提供了一种包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被处理器执行时,使得所述处理器执行如上所述的个人信息保护方法。

本发明实施方式的个人信息保护方法、保护装置、车辆及计算机可读存储介质中,在第三方应用程序启动前创建替换文件,第三方应用程序在启动过程中替换了系统访问数据的函数接口,当第三方应用程序访问敏感数据时,函数接口从替换文件中获取脱敏数据替换敏感数据数据返回给第三方应用程序,由于该脱敏数据是非真实的,用户的敏感数据不会被第三方应用程序获取,个人信息得到有效的保护。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本发明某些实施方式的个人信息保护方法的流程示意图;

图2是本发明某些实施方式的个人信息保护装置的模块示意图;

图3是本发明某些实施方式替换访问个人信息的系统java方法为预定方法的流程示意图。

图4是本发明某些实施方式替换访问个人信息的c库函数替换为预定函数的流程示意图。

图5是本发明某些实施方式的个人信息保护方法的流程示意图;

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

随着科技的发展,智能电子设备逐渐走入人们日常生活的方方面面,很多传统行业也因为互联网与电子科技的发展越来越智能化。智能电子设备相较于传统设备具有可运行的操作系统,并可以通过安装应用程序来实现更多的丰富功能。因使用电子设备而导致设备中的个人信息泄露等安全问题也日趋增加。通常,移动终端设备的操作系统包括开源系统,如linux系统、android系统,以及闭源系统,如windows系统、ios系统等。相对于闭源系统而言,开源系统由于源代码开放,用户可自主进行修改与编写,因此个人安全信息的安全隐患更大。

以android系统为例,对于个人信息的保护,其提供了通过权限管理来保护个人信息的方式。具体而言,应用程序在需要访问个人信息等敏感数据时需要得到明确授权才能够佳进行访问。而为了避免第三方应用程序获取个人信息等敏感数据,通常会对操作系统进行权限修改,从而禁止第三方应用拥有某些与访问敏感数据相对应的权限。然而如此,首先,很多第三方应用程序会强制要求拥有相关权限才能够继续运行,否则可能会导致应用程序强制退出、崩溃或者功能缺失的情况出现。其次,应用程序通过一些基本权限也能获取敏感的个人信息,譬如设备识别码、基站定位信息等。再有,应用程序可以通过运行native代码,从而绕过安卓操作系统的某些权限控制,直接读取文件系统中的敏感数据,例如mac地址、系统各组件版本信息等。

请参阅图1,为解决上述问题,本申请提供一种个人信息保护方法,包括:

s10:在第三方应用程序启动前,创建替换文件;

s20:在第三方应用程序启动过程中,将第三方应用程序访问敏感数据的函数接口替换为预定函数接口;

s30:在第三方应用程序访问敏感数据时,预定函数接口自替换文件获取与敏感数据对应的脱敏数据返回至第三方应用程序。

请参阅图2,本申请实施方式还提供了一种个人信息保护装置100。本申请实施方式的个人信息保护方法可以由个人信息保护装置100实现。

具体地,个人信息保护装置100包括创建模块10、替换模块20和数据返回模块30。s10可以由创建模块10实现,s20可以由替换模块20实现,s30可以由数据返回模块30实现。或者说,创建模块10用于在第三方应用程序启动前,创建替换文件。替换模块20用于在第三方应用程序启动过程中,将第三方应用程序访问敏感数据的函数接口替换为预定函数接口。数据返回模块30用于在第三方应用程序访问敏感数据时,预定函数接口自替换文件获取与敏感数据对应的脱敏数据返回至第三方应用程序。

本发明实施方式的个人信息保护方法、保护装置中,在第三方应用程序启动前创建替换文件,第三方应用程序在启动过程中替换了系统访问数据的函数接口,当第三方应用程序访问敏感数据时,函数接口从替换文件中获取脱敏数据替换敏感数据数据返回给第三方应用,由于该脱敏数据是非真实的,用户的敏感数据不会被第三方应用程序获取,个人信息得到有效的保护。

具体地,本申请实施方式的个人信息保护方法可适用于已知的开源系统或未来可能研发的基于开源内核而研发的新系统。需要说明的是,本申请以开源系统中较典型且使用范围较广的安卓系统为例对各实施例的个人信息保护方法进行说明。

其中,所述的第三方应用程序可以理解为非系统自带的应用程序,而是由其他开发者提供,需要在系统运行后通过应用商店等渠道获取并安装在操作系统中。

可以理解地,应用程序在运行过程中需要访问数据时,通过调用操作系统提供的函数接口来实现获取数据。本申请中,将函数接口进行替换,并将与函数接口调用的数据也进行替换,如此,当第三方应用程序通过函数接口预获取敏感数据时,实际上是通过替换后的函数接口获取替换后的数据,而并没有直接获取真实数据,敏感数据得到有效的保护。

通常,一个函数接口访问的数据并不总是敏感的,因此需要对于其访问的数据的敏感与否进行确认。一般地,可以人为地根据函数接口的访问的数据设定其访问的数据是否敏感。例如,与个人信息有关的数据,如通信录、通话记录等数据,再如,与设备信息相关的数据,如设备识别码、地理位置等信息。替换文件针对这些敏感数据生成替换数据,这些替换数据是非真实的数据,相对于敏感数据而言,称为脱敏数据。操作中,当认为某函数接口访问的数据是敏感数据时,将该函数接口进行替换,当替换后的函数被调用时将获取并返回脱敏数据。

替换文件在第三方应用启动前创建,从而保证第三方应用程序在运行过程中可根据替换文件在需要时返回脱敏数据。当然,在一些实施方式中,替换文件也可以在第三方应用程序访问敏感数据时再即时生成。相比于在前生成替换文件,临时生成替换文件可能面临在应用程序在运行中较为复杂的系统环境,而导致处理速度慢甚至应用程序运行异常。

函数接口的替换过程在系统加载第三方应用程序时完成,也即是说,在第三方应用程序的代码运行前完成所有函数接口的替换。可以理解地,第三方应用运行过程中可能会加载新的功能模块,在这些模块运行前也需要实施相应的替换行为。全部的预定函数接口可以处于一个类或多个类中。

预定函数接口与其要替换的函数接口存在一一对应关系,并且函数所实现的功能相同,只是调用的数据不同。因此,并不会造成系统或第三方应用程序运行时功能的缺失。

在某些实施方式中,s10包括:

s11:在系统首次启动时创建替换文件。

在某些实施方式中,s11可以由创建模块10实现,或者说,创建模块10用于在系统首次启动时创建替换文件。

具体地,在操作中,当系统启动时,首先判断系统是否为首次启动。如果是首次启动,则创建替换文件。替换文件可存放一个全局可读的路径,并且替换文件的权限为全局可读,从而确保所有第三方应用可以读取到替换文件的内容。

可以理解地,系统在首次启动时,缓存中运行的应用程序数量较少,系统负荷较低,有利于替换文件的创建,从而避免在电子设备的使用过程中数据处理量过大而导致的异常。需要说明的是,如前述实施例所述,替换文件的创建时机还可以是在系统运行过程中且第三方程序启动前或第三方应用程序运行过程中访问敏感数据时再即时生成。其本质还是在于在需要访问数据前已完成替换文件的创建。

在本实施方式中,替换文件包括个人信息替换文件和/或设备信息替换文件。

具体地,第三方应用程序在访问时所需要的数据从函数接口的返回值得到,那么其对应的替换文件为个人信息替换文件。第三方应用程序在访问时所需要的数据通过函数接口读取某个系统文件得到,那么其对应的替换文件为设备信息替换文件。

例如,函数接口android.telephony.telephonymanager.getsubscriberid的访问行为直接从该函数的返回值得到数据,与该函数接口对应的预定函数接口为com.xiaopeng.secure.xp_getsubscriberid,该预定函数接口从个人信替换文件中读取对应的替换数据,并将其返回给第三方应用程序。

又如,函数接口open的访问参数需要读取文件/sys/class/net/wlan0/address,与该函数接口对应的预定函数接口为xp_open,与文件文件/sys/class/net/wlan0/address对应的设备信息替换文件为/data/xp/sys/class/net/wlan0/address。预定函数接口xp_open读取设备信息替换文件/data/xp/sys/class/net/wlan0/address,并将获取的数据返回给第三方应用程序。

进一步地,在本实施方式中,个人信息替换文件包括多个属性及与分别与多个属性对应的多个值。

具体地,属性表征了个人信息的具体载体,而预定函数接口访问个人信息替换文件所获取的数据实质上是某个属性所对应的值。

在本实施方式中,属性包括设备识别码、mac地址、基站定位数据和文件路径中的至少一个。

具体地,属性包括但不限于本实施方式所公开的内容。每个属性都承载了一定个人信息,例如设备识别码是每个设备所具有的唯一识别编码。mac地址用来确认设备位置的地址编码,同样具有唯一性。个人信息替换文件中的属性与原文件的属性相一致,只是对每个属性对应的值进行替换。

在本实施方式中,每个属性对应的值随机生成并符合属性的数据规格。

具体地,每个属性所对应的值为在建立替换文件时随机生成的数据,数据的值符合该属性的值的数据规格。例如,属性国际移动设备识别码对应的值为长度为15个字符的数字,因此在个人信息文件中对应该属性的值同样是15个字符的数字,但这个15个字符可以是一串随机生成的数字。

在本实施方式中,个人信息替换文件的内容通过属性和值对的方式组织。

具体地,个人信息替换中的属性与其对应的值可通过对的方式组织,也即是{属性1,值1}。例如,{getsubscriberid,012345678901234},其中,getsubscriberid为属性,012345678901234为值。在创建个人信息替换文件时,属性与原文件相同,属性的值根据该属性的数据规格则随机生成。

在本实施方式中,设备信息替换文件的内容为随机生成且内容的值符合内容的数据规格。

具体地,创建的设备信息替换文件可以认为是在文件系统下敏感数据的文件的映射。这些文件系统可包括例如/proc、/sys等。新创建的设备信息替换文件中的文件名和原始设备信息文件名一一对应。设备信息替换文件的内容为随机生成的数据,并且这些数据需要符合该文件所对应的原始文件内容的数据规格。例如,原始文件包含的内容为标准的mac地址,那么,对应的设备信息替换文件的内容也应该为标准的mac地址,只是其值为随机生成。

进一步地,原始设备信息文件与设备信息替换文件之间的对应关系可以存放于个人信息替换文件之中,也即是以文件和文件内容对的方式组件,即{原始设备信息文件1,设备信息替换文件1}例如,{“/sys/class/net/wlan0/address”,“/data/xp/sys/class/net/wlan0/address”}。其中,原始设备信息文件为/sys/class/net/wlan0/address,设备信息替换文件为/data/xp/sys/class/net/wlan0/address,设备信息替换文件所包含的内容是随机生成的数据。

在某些实施方式中,个人信息保护方法还包括:

s40:在第三方应用程序运行过程中加载功能模块时,将第三方应用程序访问敏感数据的函数接口替换为预定函数接口。

在某些实施方式中,s40可以由替换模块20实现,也即是说,替换模块20用于在第三方应用程序运行过程中加载功能模块时,将第三方应用程序访问敏感数据的函数接口替换为预定函数接口。

具体地,第三方应用程序在运行中可能会加载新的功能模块。这些新功能模块也可能调用系统函数接口,因此,也需要在功能模块加载过程中将函数接口替换为预定函数接口。功能模块与第三方应用程序在运行过程中加载的文件形式上相同,均为dex文件和/或so文件。其中,dex文件的源码是java,so文件的源码是c。对于加载dex文件的情况而言,函数接口是系统java方法,对于加载so文件的情况而言,函数接口为c库函数。

在进行函数接口的替换时要分别针对系统java方法和c库函数进行替换。而对于某些不具有so文件的第三方应用程序代码,则无需进行c库函数的替换。

请参阅图3,在某些实施方式中,s20包括:

s21:遍历预定函数接口与系统java方法的对应表;

s22:找到需要被替换的系统java方法;

s23:将需要被替换的系统java方法的nativefunc字段指向预定的native函数入口,并将系统java方法的签名存入需要被替换的系统java方法的insns字段;

s24:在预定的native函数中根据insns字段运行对应的预定函数接口。

在某些实施方式中,s21-s24可以由替换模块20实现,或者说,替换模块20用于遍历预定函数入口与系统java方法的对应表,找到需要被替换的系统java方法,将需要被替换的系统java方法的nativefunc字段指向预定的native函数入口,并将系统java方法的签名存入需要被替换的系统java方法的insns字段,在预定的native函数中根据insns字段运行对应的预定函数接口。

具体地,预定函数接口与被替换的系统java方法存在一一对应关系,根据此对应关系,使得系统java方法可以被正确地替换成预定函数接口。例如,系统java方法android.telephony.telephonymanager.getsubscriberid与预定函数接口com.xiaopeng.secure.xp_getsubscriberid的对应关系可用表的一项表示:{“android.telephony.telephonymanager.getsubscriberid”,com.xiaopeng.secure.xp_getsubscriberid}。如此,预定函数接口与被替换的系统java方法可形成对应表。

在第三方应用加载dex文件时,遍历预定函数接口与java方法的对应表,在已加载的系统中找到需要被替换的系统java方法,将该需要被替换的系统java方法的nativefunc字段指向一个特定的native函数入口。同时把系统java方法的签名等信息存入该需要被替换的系统java方法的insns字段。在特定native函数中根据insns字段信息运行其对应的预定函数接口。如此,使得系统java方法可以替换为预定函数接口。

请参阅图4,在某些实施方式中,s20包括:

s25:遍历预定函数接口与c库函数的对应表;

s26:找到对应表中的c库函数名以定位c库函数所在.got段位置;

s27:将c库函数对应.got段的入口地址修改为对应的预定函数接口的入口地址。

在某些实施方式中,s25-s27可以由替换模块20实现。或者说,替换模块20用于遍历预定函数与c库函数的对应表,找到对应表中的c库函数名以定位c库函数所在.got段位置,将c库函数对应.got段的入口地址修改为对应的预定函数的入口地址。

具体地,预定函数接口与被替换的c库函数存在一一对应关系,根据此对应关系,使得c库函数可以被正确地替换成预定函数接口。例如,c库函数open与预定函数接口xp_open的对应关系可用表的一项表示:{“open”,xp_open}。如此,预定函数接口与被替换的c库函数可形成对应表。

在第三方应用程序加载so文件时,遍历预定函数接口与c库函数对应表,根据so文件中的.got、.dynamic、.string等段中找到需要被替换的c库函数名,同时定位到该c库函数所在.got段的位置。把c库函数对应.got段的入口地址修改为对应的预定函数接口的入口地址。如此,通过使得c库函数可以替换为预定函数接口。

需要说明的是,除上述实施方式描述的只替换部分可能会访问敏感数据的系统java方法或c库函数,替换系统java方法或者c库函数的方式还可以针对第三方应用程序整体替换所有系统java库和c库函数。替换方式不应当视为对本申请的限制。

请参阅图5,在某些实施方式中,个人信息保护方法还包括:

s12:在应用程序安装时,判断应用程序是否为第三方应用程序。

进一步地,在这样的实施方中,s12包括:

s121:判断应用程序的签名与系统签名是否一致,若否,则应用程序为第三方应用程序。

s122:判断应用是否属于系统的程序白名单,若否,则应用程序为第三方应用程序。

在某些实施方式中,个人信息保护装置100还包括判断模块,s11可以由判断模块实现,或者说,判断模块用于在应用程序安装时,判断应用程序是否为第三方应用程序。

在某些实施方式中,判断模块用于通过判断应用程序的签名与系统签名是否一致来判断应用程序是否为第三方应用程序。

在某些实施方式中,判断模块用于通过判断应用是否属于系统的程序白名单来判断应用程序是否为第三方应用程序。

具体地,在一些示例中,可通过判断应用程序的签名和系统签名是否一致来判断该应用程序是否为第三方应用程序,如果该应用程序签名和系统签名不一致,则认为该应用程序是第三方应用程序。

在另一示例中,可通过判断应用程序是否在系统的应用程序白名单之内来判断该应用程序是否为第三方应用程序,如果该应用程序不在系统程序白名单中,则认为该应用程序是第三方应用程序。需要说明的是,应用程序的白名单不仅可以是仅包括系统原生应用程序的名单,还可以是在实际运行过程中并未访问敏感数据的应用程序名单,该名单中不仅包括原生应用程序还可以包括第三方应用程序。该名单可以通过互联网等方式获取。

综上所述,本申请能有效保护开源操作系统个人信息安全,用户在使用第三方应用程序时,用户的个人信息不会被第三方应用程序所获取。操作中替换了第三方应用程序访问的函数接口,当应用程序访问敏感数据时,通过替换后的函数接口返回替换文件中的相应数据,替换文件中的数据是随机生成的,从而达到真实的敏感数据不被泄露的目的。此外,本申请的实施方式,没有限制第三方应用程序在运行中的权限,因此,有效避免了可能的应用崩溃或者功能缺失,在有效保护个人信息的同时改善了用户体验。

本发明实施方式还提供了一种计算机可读存储介质。当计算机可执行指令被一个或多个处理器执行时,使得处理器执行上述任一实施方式的控制方法。

本发明实施方式还提供了一种车辆。车辆包括一个或多个处理器,一个或多个程序被存储在存储器中,并且被配置成由一个或多个处理器执行。程序包括用于执行上述任意一项实施方式所述的个人信息保护方法。

处理器可用于提供计算和控制能力,支撑整个车辆车载系统的运行。车辆的存储器为存储器其中的计算机可读指令运行提供环境。

车辆的车载系统采用上述提及的开源操作系统,可以理解地,基于所采用的操作系统,该车载系统开放给第三方应用程序时,同样存在相类似的个人信息安全隐患。本申请实施方式的车辆采用上述实施方式的个人信息保护方法,可以有效保护车辆与驾驶者的个人信息安全。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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