发明内容
为此,需要提供一种数据保护的保护方案,解决现有重要的信息数据的泄露问题。
为实现上述目的,发明人提供了一种数据保护系统,包括存储模块、保护模块,所述存储模块和保护模块存有相同的校验码,所述存储模块包括地址空间保护单元和用于存储数据的存储单元,所述存储单元具有保护数据地址,所述保护数据地址对应的存储位置用于存储保护数据,所述保护模块与地址空间保护单元连接;其中:
所述保护模块用于发送带有校验码的数据读取指令到地址空间保护单元;
所述地址空间保护单元用于接收到数据读取指令后,判断数据读取指令所要读取的地址是否是保护数据地址,如果不是保护数据地址,则返回数据读取指令所要读取的地址的数据,如果是保护数据地址,则判断数据读取指令是否包含有与存储模块所存储的校验码一致的校验码,如果是则返回数据读取指令所要读取的地址的数据,否则不返回数据读取指令所要读取的地址的数据。
进一步地,所述保护模块还用于在接收到与保护数据相关的指令后,发送带有校验码的数据读取指令到地址空间保护单元。
进一步地,所述保护数据地址的存储位置上存有密钥,所述保护模块还用于接收加密数据后,发出密钥读取指令和校验码到地址空间保护单元,保护模块接收到密钥后使用密钥对加密数据进行解密处理。
进一步地,所述校验码的位数与存储模块数据地址的位数不同。
进一步地,所述存储模块为eMMC,所述保护模块包含有用于与地址空间保护单元交互的eMMC控制器。
以及一种数据保护装置,包括保护系统和用户系统,所述保护系统为上述的数据保护系统,所述用户系统包括处理模块,所述处理模块与保护模块连接,所述处理模块与地址空间保护单元连接,所述处理模块处理保护数据时访问保护模块,所述处理模块处理非保护数据时访问地址空间保护单元。
以及发明人还提供一种数据保护方法,包括如下步骤:存储模块接收数据读取指令后,判断数据读取指令所要读取的地址是否是保护数据地址,如果不是保护数据地址,则返回数据读取指令所要读取的地址的数据,如果是保护数据地址,则判断数据读取指令是否包含有与存储模块所存储的校验码一致的校验码,如果是则返回数据读取指令所要读取的地址的数据,否则不返回数据读取指令所要读取的地址的数据。
进一步地,还包括如下步骤:保护模块发送带有校验码的保护数据读取指令到存储模块,存储模块返回保护数据到保护模块。
进一步地,还包括如下步骤:保护模块接收到加密数据后,发出密钥读取指令和校验码到存储模块,存储模块返回密钥到保护模块,保护模块接收到密钥后使用密钥对加密数据进行解密处理。
进一步地,所述加密数据包含有公钥,还包括如下步骤:保护模块对解密后的数据进行处理,使用公钥加密处理结果。
进一步地,所述校验码的位数与存储模块数据地址的位数不同。
区别于现有技术,上述技术方案使用预设的校验码完成对数据的保护,正常的读取并没有校验码,则无法成功读取,避免保护的数据的泄露。而在需要使用保护的数据时,使用保护模块进行读取和数据的处理,避免了数据的泄露的同时又可以对保护的数据进行间接的访问和处理。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,本实施例提供一种数据保护系统1,包括存储模块10、保护模块11,存储模块10和保护模块11存有相同的校验码,校验码是一些用于校验的数据,如一个字符串。存储模块10包括地址空间保护单元100和用于存储数据的存储单元101,地址空间保护单元100起到了接收外部读写指令、读写存储单元101以及返回读取的数据的作用。存储单元101可以是如图1所示的Nand-flash。存储单元101具有保护数据地址,保护数据地址对应的存储位置(如图1所示的位置A)用于存储保护数据。保护数据即需要进行保护的数据,不希望被用户直接读取到的数据,如校验码。非位置A的其他位置则存放有非保护数据,即希望能被用户直接读取到的数据。地址空间保护单元100与存储单元101连接,保护模块11与地址空间保护单元100连接。
其中,保护模块11用于发送带有校验码的数据读取指令到地址空间保护单元100。即当保护模块11需要读取保护数据时,在发送数据读取指令到地址空间保护单元100时可将保护模块11上存有的校验码一同发送到地址空间保护单元100。保护模块11上的校验码可以预先存储在保护模块11上的非易失存储器上,如图1中的EFUSE,在系统掉电时,保护模块11上的校验码不会丢失。
地址空间保护单元100用于接收到数据读取指令后,判断数据读取指令所要读取的地址是否是保护数据地址,如果不是保护数据地址,则返回数据读取指令所要读取的地址的数据,如果是保护数据地址,则判断数据读取指令是否包含有与存储模块10所存储的校验码一致的校验码,如果是则返回数据读取指令所要读取的地址的数据,否则不返回数据读取指令所要读取的地址的数据。数据读取指令即其他系统(如图1的用户系统)想要读取存储模块10中的数据时,发送给存储模块10的地址空间保护单元100的指令,该指令带有其他系统所要读取的数据的地址。
当其他系统想要读取存储模块10中数据时,可以发送数据读取指令到地址空间保护单元100,由于其他系统并不知晓校验码,则其他系统想要读取保护数据地址时,则地址空间保护单元100不会返回保护数据而使得其他系统读取失败,从而避免了保护数据的泄露。在某些实施例中,地址空间保护单元100在不返回保护数据时,可以返回读取失败信息给其他系统,通过读取失败信息告知其他系统读取失败。而保护模块11在读取保护数据时会携带有保护模块11上的校验码,由于保护模块11的校验码与存储模块10的校验码是一致的,则地址空间保护单元100会将保护数据返回给保护模块11,实现了保护模块11对保护数据的读取,从而保护模块11可以对保护数据进行处理。以及保护模块11并不会回复接收到的保护数据,保护模块11只完成数据处理的相关工作,保护模块11也不会造成保护数据的泄漏。
在某一实施例中,本系统1可以作为一个安全系统应用于如下的场景:外部安全系统只允许特定的安全系统接入,而不允许非法的安全系统接入。外部安全系统在安全系统连接时,会定时检测安全系统是否发来加密后的保护数据,只有安全系统定时发送加密后的保护数据时,外部安全系统才会允许安全系统的接入。则本系统1在作为安全系统接入时,保护模块11可以定时读取保护数据并根据事先约定加密规则将保护数据加密后发送到外部安全系统。外部安全系统解密收到的数据后对解密后的数据进行验证,验证通过后允许安全系统的接入。而非法的安全系统接入时,并没有保护数据从而会被拒绝接入,这样保证了只有存有特定的保护数据的安全系统的接入,避免了非法系统的接入。由于本系统地址空间保护单元100对保护数据的保护,则保护数据不会被泄露,从而保证了非法系统无法冒充安全系统接入到外部安全系统,保证了外部安全系统的安全。
以上实施例中,保护模块11可以自发地对保护数据进行读取,在某些实施例中,保护模块11可以在接收到其他系统发送过来与保护数据相关的指令后对保护数据进行读取,如其他系统需要使用保护数据对某些数据进行验证或者加解密等。则保护模块11在接收到与保护数据相关的指令后,发送带有校验码的数据读取指令到地址空间保护单元100,对保护数据进行读取。如银行的或游戏的密保卡认证,其他系统发来行号、列号和密码,则保护模块11在接收到后,发送带有校验码的数据读取指令到地址空间保护单元100,读取出保护数据,然后使用保护数据对行号、列号和密码进行验证,并将验证结果返回给其他系统。
在其他系统发送过来与保护数据相关的指令是解密指令和加密数据时,此时保护数据地址的存储位置上还存有用于解密的密钥,则保护模块11还用于接收加密数据后,发出密钥读取指令和校验码到地址空间保护单元100,地址空间保护单100会返回密钥给保护模块11,保护模块11接收到密钥后使用密钥对加密数据进行解密处理。解密后保护模块11可以根据需要回复解密后的数据或者对解密后的数据进行再次处理后回复给其他系统,可以根据实际需要对此进行操作,本实施例并不对此进行限定。如在某些实施例中,如图1所述,存储模块10上的保护数据地址的存储位置上存储的密钥为私钥A,其他系统具有与私钥A对应的公钥A,其他系统使用公钥A对数据和公钥B进行加密,并将加密后的数据发送到保护模块11。保护模块11在接收到加密后的数据后,发送读取私钥A的命令和校验码到存储模块10,存储模块10返回私钥A给保护模块11。保护模块11使用私钥A对加密后的数据进行解密,得到公钥B和数据。而后保护模块11可以对数据进行处理,并将处理后的数据使用公钥B进行加密并返回给外部系统。外部系统对发送过来的数据使用与公钥B对应的私钥B进行解密后得到保护模块11处理后的真实数据,在传输过程中的数据都是经过加密的、安全的数据,避免信息被截取后被破解,从而完成了一次安全的数据处理过程。
在某些实施例中,校验码可以作为与数据地址一样的参数发送到地址空间包含单元100,这样可以减少对协议的修改,为了避免校验码与存储模块10数据地址在某些情况下的冲突,优选地,校验码的位数与存储模块10数据地址的位数不同。如存储模块10数据地址为32位,则可以校验码位数可以选择30位或31位等,则在读取存储模块10时,由于数据地址都是32位,而校验码是非32位,则不会存在将数据地址当成校验码的情况,从而避免了校验码错误的匹配。
上述实施例在具体实施时,存储模块10可以采用现有的带有控制器的存储模块10进行实现,如eMMC。eMMC带有eMMC控制器,可以在eMMC控制器实现地址空间保护单元100。在某些实施例中,为了避免对保护数据地址的修改,地址空间保护单元100还用于禁止对保护数据地址的写入。在存储模块10是eMMC时,可以直接将保护数据地址的FTL算法标记为不可写位置即可(FTL算法是eMMC的eMMC控制器管理Nand-flash的算法),则所有对该eMMC的数据写入,都不会有写入映射到保护数据地址,从而保证了校验码和保护数据不会丢失。保护模块11可以使用CPU或MCU等实现,为了实现保护模块11与eMMC的通讯,保护模块11包含有用于与地址空间保护单元100交互的eMMC控制器。eMMC的eMMC控制器与保护模块11的eMMC控制器可实现信息交互和数据的传输。使用现有的模块进行实现可以大大减少系统开发的成本和周期,加快了产品的上市。
以及发明人在上述数据保护系统的基础上还提供一种数据保护装置,如图1所示,包括保护系统1和用户系统2,保护系统1为上述的数据保护系统1,用户系统2包括处理模块20,处理模块20与保护模块11连接,处理模块20与地址空间保护单元100连接,处理模块20处理保护数据时访问保护模块11,处理模块处理非保护数据时访问地址空间保护单元100。处理模块20可以是CPU、MCU等具有处理功能的模块。用户系统2还可以包含有内存、电源、通信等模块,可以装有安卓、苹果等操作系统。用户系统2在存取与保护数据无关的数据时,可以直接访问地址空间保护单元100实现数据的存取。当用户系统2需要处理与保护数据相关的数据时,则可以访问保护模块11,将需要处理的与保护数据相关的数据和指令发送给保护模块11,由保护模块11对该数据进行处理,而后将处理后的结果返回给用户系统2。即数据保护装置即可以避免了保护数据被人为直接地访问,又可以在需要保护数据的时候对保护数据进行安全地访问和使用,从而起到了对数据进行保护的目的。
上述装置可以通过通信模块与外部系统进行交互,外部系统可以是服务器等。结合上述实施例,本装置与外部系统可以应用于如下场景:外部系统使用公钥A将公钥B和数据进行加密后发送给本装置。本装置的用户系统收到加密后的数据后,判断得到这个数据是加密数据,是需要存储模块10中保护数据来进行处理的,则将加密数据发给保护模块11。保护模块11接收到后,发送保护数据读取指令和校验码给地址空间保护单元100读取私钥A,地址空间保护单元100验证校验码后发送私钥A到保护模块11。保护模块11接收到私钥A对加密数据进行解密,得到公钥B和数据,保护模块11对数据进行处理后,使用公钥B对处理后的数据进行加密,而后将加密的处理后的数据发送给用户系统。发送后保护模块11可以将使用后的保护数据删除,即删除私钥A,保证了私钥A的安全。用户系统转发加密的处理后的数据到外部系统,而后外部系统使用私钥B可以对加密的处理后的数据进行解密得到保护模块11处理后的数据,则外部系统可以对该数据进行进一步的处理。以上即完成了一次安全的信息处理过程,本装置虽然使用到了保护数据(私钥A),但是在地址空间保护单元100的保护下,却不会被直接访问到,从而实现了对数据的保护。上述中私钥A与公钥A为一对相对应的密钥,私钥B与公钥B为一对相对应的密钥。
以及发明人还提供一种数据保护方法的实施例,如图2所示,包括如下步骤:首先步骤S101存储模块接收数据读取指令,存储模块即用于存储数据的模块,数据读取指令用于读取存储模块中的数据。而后,存储模块在步骤S102判断数据读取指令所要读取的地址是否是保护数据地址,保护数据地址上存储有保护数据。如果不是保护数据地址,则进入步骤S103返回数据读取指令所要读取的地址的数据。如果是保护数据地址,则存储模块进入步骤S104判断数据读取指令是否包含有与存储模块所存储的校验码一致的校验码,如果是则进入步骤S105返回数据读取指令所要读取的地址的数据,即返回保护数据;否则进入步骤S106不返回数据读取指令所要读取的地址的数据。通过校验码的校验,则没有校验码的情况下,则无法完成对保护数据的读取,实现了对数据的保护。
在上述方法实施例的基础上,在某些实施例中,还包括如下步骤:保护模块发送带有校验码的保护数据读取指令到存储模块,存储模块返回保护数据到保护模块。校验码可以预存在保护模块上的非易失性存储器上,在需要保护数据时,通过保护模块完成对保护数据的读取和处理,避免了直接去读取保护数据而造成保护数据的泄露,实现了对数据的保护。
为了使得保护模块在进行数据处理时的安全,保护模块处理的数据可以采用加密的数据。则在某些实施例中,本方法还包括如下步骤:保护模块接收到加密数据后,发出密钥读取指令和校验码到存储模块,存储模块验证校验码通过后返回密钥到保护模块,保护模块接收到密钥后使用密钥对加密数据进行解密处理。加解密可以采用非对称式的加解密方式,如采用私钥和公钥对进行加解密,加密的时候使用公钥进行加密,解密的时候采用私钥进行解密,可以提高数据的安全程度。
保护模块在处理完数据后,有时需要对数据进行回复,为了保证回复的数据的安全,保护模块可以对回复的数据进行加密。具体地,在某些实施例中,保护模块加密时所采用的密钥是保护模块收到的加密数据中的公钥,则本方法还包括如下步骤:保护模块对解密后的数据进行处理,使用解密后的公钥加密处理结果。而后根据实际的需要保护模块可以将加密后的处理结果发送出去。
为了避免校验码与存储模块数据地址的冲突,在某些实施例中,上述方法的校验码的位数与存储模块数据地址的位数不同。则存储模块接收到数据读取指令时,校验码和数据地址可以明显地区分开来,可有效地防止校验码与数据地址相似而导致出错的情况。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。