数据安全校验方法、装置及校验设备
技术领域
本申请涉及信息安全技术领域,尤其涉及一种数据安全校验方法、装置及校验设备。
背景技术
在数据传输过程中,可能被病毒恶意篡改,因此为了保证数据传输的安全性,需要对数据进行完整性校验。现有技术中,通常采用哈希(Hash)算法对数据的完整性进行校验,数据可以包括用户口令、数字证书、文本信息、多媒体文件等。哈希算法可以将任意长度的二进制值映射为较短的固定长度的二进制值,这个较短的二进制值称为哈希值,哈希值具有唯一性,无论对数据作何更改,更改前后数据的哈希值均不相同,因此通过哈希值可以检验数据的完整性。
在一种典型应用场景中,终端和服务器之间传输用户口令,初始用户注册时服务器保存用户口令的哈希值,后续用户登录时,如果验证输入用户口令的哈希值与注册时保存的哈希值一致,则用户通过验证。但是,现有技术通常采用单一哈希算法对用户口令的完整性进行校验,恶意第三方在获得服务器保存的用户口令的哈希值后,可以通过碰撞(Collision)方式获得与用户口令不同的数据,而该数据与用户口令具有相同的哈希值,因此服务器在接收到该数据后,也会验证通过,从而导致数据安全性校验结果不准确。
发明内容
本申请提供数据安全校验方法、装置、及校验设备,以解决现有采用单一哈希算法导致数据安全性校验结果不准确的问题。
第一方面,提供一种数据安全校验方法,所述方法应用在校验设备内,所述方法包括:
获得待校验数据的N个实时校验值,所述N个实时校验值为通过N个校验算法分别对所述待校验数据进行校验运算获得的校验值,所述N为大于1的自然数;
获得与所述待校验数据对应的原始数据的N个原始校验值,所述N个原始校验值为通过所述N个校验算法对所述原始数据进行校验运算获得的校验值;
当验证所述N个实时校验值与所述N个原始校验值中,采用相同校验算法的实时校验值和原始校验值均一致时,确定所述待校验数据通过安全校验。
第二方面,提供一种数据安全校验方法,所述方法应用在校验设备内,所述方法包括:
获得待校验数据的N个实时校验值,所述N个实时校验值为通过N个校验算法分别对所述待校验数据进行校验运算获得的校验值,所述N为大于1的自然数;
获得与所述待校验数据对应的原始数据的N个原始校验值,所述N个原始校验值为通过所述N个校验算法对所述原始数据进行校验运算获得的校验值;
当验证所述N个实时校验值与所述N个原始校验值中,采用相同校验算法的实时校验值和原始校验值均一致时,确定所述待校验数据通过安全校验。
第三方面,提供一种校验设备,包括:
处理器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为:
获得待校验数据的N个实时校验值,所述N个实时校验值为通过N个校验算法分别对所述待校验数据进行校验运算获得的校验值,所述N为大于1的自然数;
获得与所述待校验数据对应的原始数据的N个原始校验值,所述N个原始校验值为通过所述N个校验算法对所述原始数据进行校验运算获得的校验值;
当验证所述N个实时校验值与所述N个原始校验值中,采用相同校验算法的实时校验值和原始校验值均一致时,确定所述待校验数据通过安全校验。
本申请实施例中的校验设备在对数据进行安全校验时,获得待校验数据的N个实时校验值,以及获得与待校验数据对应的原始数据的N个原始校验值,当验证N个实时校验值与N个原始校验值中,采用相同校验算法的实时校验值和原始校验值均一致时,确定待校验数据通过安全校验。本申请实施例采用多个校验算法对待校验数据进行安全性校验,即使当恶意第三方获得N个原始校验值后,由于通过碰撞方式获得的不同校验算法对应的数据不会相同,因此在采用任意一个碰撞出的数据进行安全性校验时,该数据都难以通过所有校验算法的校验,因此在提高了碰撞难度的同时,可以有效鉴别各种伪造数据,从而保证了数据安全性校验的准确性。
附图说明
图1为本申请数据安全校验方法的一个实施例流程图;
图2为本申请数据安全校验方法的另一个实施例流程图;
图3为本申请数据安全校验方法的另一个实施例流程图;
图4为本申请数据安全校验方法的另一个实施例流程图;
图5为本申请数据安全校验装置所在校验设备的一种硬件结构图;
图6为本申请数据安全校验装置的实施例框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在数据传输过程中,可能被病毒恶意篡改,因此为了保证数据传输的安全性,需要对数据进行完整性校验。现有技术中,通常采用单一校验算法,例如,单一哈希算法对数据的完整性进行校验,但是在恶意第三方获得了原始数据的哈希值后,很容易通过碰撞方式得到与原始数据哈希值一样的伪造数据,从而难以确认数据的可信性和安全性。本申请实施例通过采用多校验算法对数据的完整性进行验证,由于不同校验算法对原始数据进行运算后得到的校验值不同,因此通过碰撞方式获得的不同校验算法对应的伪造数据也不相同,导致恶意第三方难以伪造原始数据,从而有效提高了数据安全性校验的准确性。下面通过具体实施例并结合不同应用实例对本申请进行描述。
参见图1,为本申请数据安全校验方法的一个实施例流程图,该实施例可以应用在任意对数据进行安全性校验的校验设备上:
步骤101:获得待校验数据的N个实时校验值,该N个实时校验值为通过N个校验算法分别对待校验数据进行校验运算获得的校验值,N为大于1的自然数。
本申请实施例中,校验算法可以包括:各种哈希算法、和/或CRC(CyclicRedundancy Check,循环冗余校验码)校验算法。其中,哈希算法可以包括:MD5(MessageDigest Algorithm,消息摘要算法第二版)、MD4、MD2、SHA(Secure Hash Algorithm,安全散列算法)等。
步骤102:获得与待校验数据对应的原始数据的N个原始校验值,该N个原始校验值为通过N个校验算法对原始数据进行校验运算获得的校验值。
步骤103:当验证N个实时校验值与N个原始校验值中,采用相同校验算法的实时校验值和原始校验值均一致时,确定待校验数据通过安全校验。
由上述方法实施例可见,该实施例采用多个校验算法对待校验数据进行安全性校验,即使当恶意第三方获得N个原始校验值后,由于通过碰撞方式获得的不同校验算法对应的数据不会相同,因此在采用任意一个碰撞出的数据进行安全性校验时,该数据都难以通过所有校验算法的校验,因此在提高了碰撞难度的同时,可以有效鉴别各种伪造数据,从而保证了数据安全性校验的准确性。
在一个可选的数据安全校验方法实施例中,校验设备可以为原始数据的接收方,该原始数据的接收方可以为服务器,该原始数据的发送方可以为终端,所校验的数据可以包括:用户口令、或数字证书等。参见图2,为该实施例流程图,该实施例以用户口令为例进行描述:
步骤201:每个用户注册时,终端向服务器发送用户的用户名和用户口令。
当用户要通过终端使用各种应用时,例如,即时通信应用、各种交易应用等,用户首先需要通过终端上安装的应用客户端向应用服务器进行注册,注册时向服务器提供用户名和用户口令(也可称为用户密码)。
步骤202:服务器通过N个校验算法对用户口令进行校验运算,获得N个原始校验值,N为大于1的自然数。
本申请实施例中,当服务器接收到用户注册的用户名和用户口令后,用N个校验算法分别对用户口令进行校验运算,得到N个校验值,称为原始校验值。该N个校验算法可以包括:各种哈希算法、和/或CRC校验算法。其中,哈希算法可以包括:MD5、MD4、MD2、SHA等。
服务器可以预先在存储器内保存若干校验算法,并且可以灵活设置采用若干校验算法中的N个校验算法对用户口令进行校验算法。当对用户口令进行校验运算时,可以通过串行处理方式,顺序采用N个校验算法中每个校验算法对用户口令进行校验运算获得N个原始校验值,也可以通过并行处理方式(例如,设置N个线程),同时采用N个校验算法对用户口令进行校验运算获得N个原始校验值。
步骤203:服务器保存用户名与N个原始校验值的对应关系。
当服务器通过校验运算得到N个原始校验值后,可以在设置的原始校验值数据库中保存用户名与N个原始校验值的对应关系。
以服务器采用两个校验算法,分别为MD5和SHA为例,原始校验值数据库如下表1所示:
表1
需要说明的是,上表1中各个字段的具体内容是为了描述方便所做的简单示例,以MD5校验值为例,在实际应用中,其通常为十六进制数字串,例如“0ca175b9c0f726a831d895e269332461”。
步骤204:当第一用户登录时,终端向服务器发送第一用户输入的第一用户名和第一用户口令。
步骤205:服务器通过N个校验算法分别对第一用户口令进行校验运算,获得N个实时校验值。
当接收到第一用户名和第一用户口令后,服务器从存储器中调取预先设置的N个校验算法,采用串行处理方式或并行处理方式,通过这N个校验算法对第一用户口令进行校验运算,获得N个实时校验值。
步骤206:服务器根据第一用户名查找对应关系,获得与第一用户名对应的N个原始校验值。
结合表1,仍然以校验算法分别为MD5和SHA为例,假设第一用户的第一用户名为“用户1”,采用MD5和SHA分别对第一用户口令进行校验运算后,得到的实时校验值为“X1’”和“Y1’”。服务器根据“用户1”查找表1,得到对应MD5和SHA的原始校验值分别为“X1”和“Y1”。
步骤207:服务器验证N个实时校验值与N个原始校验值中,采用相同校验算法的实时校验值和原始校验值是否均一致,若是,则执行步骤208;否则,执行步骤209。
服务器在验证待校验数据的安全性时,获得了N组实时校验值和原始校验值,每一组实时校验值和原始校验值为通过同一校验算法获得校验值,当每一组实时校验值和原始校验值均一致时,确定待校验数据通过安全性校验。
结合步骤206中的示例,服务器在比较“X1’”与“X1”一致,且“Y1’”与“Y”一致后,可以确定第一用户输入的第一用户口令即为“123456”,则第一用户口令通过安全校验。
步骤208:服务器确定第一用户口令通过安全校验,结束当前流程。
步骤209:服务器确定第一用户口令未通过安全校验,结束当前流程。
由上述实施例可见,该实施例采用多个校验算法对用户登录时的用户口令进行安全性校验,即使当恶意第三方获得了用户注册时服务器保存的用户口令的原始校验值,但由于通过碰撞方式获得的不同校验算法对应的用户口令不会相同,因此在采用任意一个碰撞出的用户口令进行安全性校验时,该用户口令都难以通过所有校验算法的校验,因此在提高了碰撞难度的同时,可以有效鉴别各种伪造的用户口令,从而保证了用户口令校验的准确性。
在另一个可选的数据安全校验方法实施例中,校验设备可以为待校验数据的下载方时,待校验数据的下载方可以为终端,原始数据的提供方可以为服务器,所校验的数据可以包括:应用程序、文本信息、或多媒体文件等。参见图3,为该实施例流程图,该实施例以下载视频文件为例进行描述:
步骤301:服务器获得原始视频文件后,通过N个校验算法对原始视频文件进行校验运算得到N个原始校验值,N为大于1的自然数。
本实施例中,服务器可以是某些视频下载网站设置的视频文件服务器,该服务器向终端用户提供视频文件下载服务,该服务器上保存的所有视频文件称为原始视频文件。
对于每个原始视频文件,服务器在保存该原始视频文件的同时,用N个校验算法分别对原始视频文件进行校验运算,得到N个校验值,称为原始校验值。
服务器可以预先在存储器内保存若干校验算法,并且可以灵活设置采用若干校验算法中的N个校验算法对原始视频文件进行校验算法。当对原始视频文件进行校验运算时,可以通过串行处理方式,顺序采用N个校验算法中每个校验算法对原始视频文件进行校验运算获得N个原始校验值,也可以通过并行处理方式(例如,设置N个线程),同时采用N个校验算法对原始视频文件进行校验运算获得N个原始校验值。
步骤302:服务器保存原始视频文件的文件名与N个原始校验值的对应关系。
当服务器通过校验运算得到N个原始校验值后,可以在设置的原始校验值数据库中保存每个原始视频文件的文件名和N个原始校验值的对应关系。
步骤303:终端下载完视频文件后,通过N个校验算法分别对下载视频文件进行校验运算,获得N个实时校验值。
步骤304:终端根据下载视频文件的文件名从服务器获得原始视频文件的N个原始校验值。
本实施例中,由终端对下载视频文件进行校验,因此终端可以根据下载视频文件的文件名从服务器获得原始视频文件的N个原始校验值。其中,可以在下载视频文件的同时,接收服务器传输的N个原始校验值,也可以在下载完视频文件后,向服务器请求N个原始校验值。
步骤305:终端验证N个实时校验值与N个原始校验值中,采用相同校验算法的实时校验值和原始校验值是否均一致,若是,则执行步骤306;否则,执行步骤307。
步骤306:终端确定下载视频文件通过安全校验,结束当前流程。
步骤307:终端确定下载视频文件未通过安全校验,结束当前流程。
由上述实施例可见,该实施例采用多个校验算法对用户下载的视频文件进行安全性校验,即使当恶意第三方获得了服务器保存的原始视频文件的原始校验值,但由于通过碰撞方式获得的不同校验算法对应的视频文件不会相同,因此在采用任意一个碰撞出的视频文件进行安全性校验时,该视频文件都难以通过所有校验算法的校验,因此在提高了碰撞难度的同时,可以有效鉴别各种非法的视频文件,从而保证了视频文件校验的准确性。
在另一个可选的数据安全校验方法实施例中,校验设备可以为原始数据的提供方时,原始数据的提供方可以为服务器,待校验数据的下载方可以为终端,所校验的数据可以包括:应用程序、文本信息、或多媒体文件。参见图4,为该实施例流程图,该实施例以下载应用程序为例进行描述:
步骤401:服务器获得原始应用程序时,通过N个校验算法对原始应用程序进行校验运算得到N个原始校验值,N为大于1的自然数。
本实施例中,服务器可以是某些应用程序下载网站设置的应用程序服务器,该服务器向终端用户提供各种应用程序的下载服务,该服务器上保存的所有应用程序称为原始应用程序。
对于每个原始应用程序,服务器在保存该原始应用程序的同时,用N个校验算法分别对原始应用程序进行校验运算,得到N个校验值,称为原始校验值。
服务器可以预先在存储器内保存若干校验算法,并且可以灵活设置采用若干校验算法中的N个校验算法对原始应用程序进行校验算法。当对原始应用程序进行校验运算时,可以通过串行处理方式,顺序采用N个校验算法中每个校验算法对原始应用程序进行校验运算获得N个原始校验值,也可以通过并行处理方式(例如,设置N个线程),同时采用N个校验算法对原始应用程序进行校验运算获得N个原始校验值。
步骤402:服务器保存原始应用程序的程序名与N个原始校验值的对应关系。
当服务器通过校验运算得到N个原始校验值后,可以在设置的原始校验值数据库中保存每个原始应用程序的程序名和N个原始校验值的对应关系。
步骤403:终端下载完应用程序后,通过N个校验算法分别对下载应用程序进行校验运算,获得N个实时校验值。
步骤404:终端向服务器发送下载应用程序的N个实时校验值。
步骤405:服务器获得下载应用程序的程序名。
本实施例中,终端可以在向服务器发送N个实时校验值的同时携带下载应用程序的程序名。
步骤406:服务器查找对应关系,获得与下载应用程序的程序名对应的N个原始校验值。
步骤407:服务器验证N个实时校验值与N个原始校验值中,采用相同校验算法的实时校验值和原始校验值是否均一致,若是,则执行步骤408;否则,执行步骤409。
步骤408:服务器确定下载应用程序通过安全校验,结束当前流程。
步骤409:服务器确定下载应用程序未通过安全校验,结束当前流程。
由上述实施例可见,该实施例采用多个校验算法对用户下载的应用程序进行安全性校验,即使当恶意第三方获得了服务器保存的原始应用程序的原始校验值,但由于通过碰撞方式获得的不同校验算法对应的应用程序不会相同,因此在采用任意一个碰撞出的应用程序进行安全性校验时,该应用程序都难以通过所有校验算法的校验,因此在提高了碰撞难度的同时,可以有效鉴别各种非法的,或经木马程序篡改的应用程序,从而保证了应用程序校验的准确性。
与本申请数据安全校验方法的实施例相对应,本申请还提供了数据安全校验装置及校验设备的实施例。
本申请数据安全校验装置的实施例可以应用在校验设备上,该校验设备可以具体为终端或者服务器。该装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请数据校验装置所在校验设备的一种硬件结构图,除了图5所示的CPU、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的校验设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。
参见图6,为本申请数据安全校验装置的实施例框图:
该装置包括:第一获得单元610、第二获得单元620和校验单元630。
其中,第一获得单元610,用于获得待校验数据的N个实时校验值,所述N个实时校验值为通过N个校验算法分别对所述待校验数据进行校验运算获得的校验值,所述N为大于1的自然数;
第二获得单元620,用于获得与所述待校验数据对应的原始数据的N个原始校验值,所述N个原始校验值为通过所述N个校验算法对所述原始数据进行校验运算获得的校验值;
校验单元630,用于当验证所述N个实时校验值与所述N个原始校验值中,采用相同校验算法的实时校验值和原始校验值均一致时,确定所述待校验数据通过安全校验。
在一个可选的实现方式中:
所述校验设备可以为所述原始数据的接收方,所述原始数据的接收方可以为服务器,所述原始数据的发送方可以为终端,所述数据可以包括:用户口令、或数字证书;
所述装置还可以包括(图6中未示出):
第一运算单元,用于当接收到所述原始数据时,通过所述N个校验算法对所述原始数据进行校验运算获得N个原始校验值;
第一保存单元,用于保存所述原始数据的数据标识与所述N个原始校验值的对应关系;
所述第一获得单元610,可以具体用于当接收到所述终端发送的所述待校验数据后,通过所述N个校验算法分别对所述待校验数据进行校验运算,获得N个实时校验值;
所述第二获得单元620,可以具体用于从所述待校验数据中读取数据标识,查找所述对应关系,获得与读取的数据标识对应的N个原始校验值。
在另一个可选的实现方式中:
所述校验设备可以为所述待校验数据的下载方时,所述待校验数据的下载方可以为终端,所述原始数据的提供方可以为服务器,所述数据可以包括:应用程序、文本信息、或多媒体文件;
所述第一获得单元610,可以具体用于当下载完所述待校验数据时,通过所述N个校验算法分别对所述待校验数据进行校验运算,获得N个实时校验值;
所述第二获得单元620,可以具体用于从所述服务器获得与所述待校验数据对应的所述原始数据的N个原始校验值。
在另一个可选的实现方式中:
所述校验设备可以为所述原始数据的提供方时,所述原始数据的提供方可以为服务器,所述待校验数据的下载方可以为终端,所述数据可以包括:应用程序、文本信息、或多媒体文件;
所述装置还可以包括(图6中未示出):
第二运算单元,用于当获得所述原始数据时,通过所述N个校验算法对所述原始数据进行校验运算得到N个原始校验值;
第二保存单元,用于保存所述原始数据的数据标识与所述N个原始校验值的对应关系;
所述第一获得单元610,可以具体用于接收所述终端在下载完所述待校验数据后,传输的所述待校验数据的N个实时校验值;
所述第二获得单元620,可以具体用于获得接收的所述N个实时校验值中携带的数据标识,查找所述对应关系,获得与所述携带的数据标识对应的N个原始校验值。
在上述实现方式中,所述校验算法可以包括:哈希算法、和/或CRC校验算法。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。