CN117668872A - 一种数据保护方法及装置 - Google Patents
一种数据保护方法及装置 Download PDFInfo
- Publication number
- CN117668872A CN117668872A CN202311650365.4A CN202311650365A CN117668872A CN 117668872 A CN117668872 A CN 117668872A CN 202311650365 A CN202311650365 A CN 202311650365A CN 117668872 A CN117668872 A CN 117668872A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- verification
- protection
- integrity protection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012795 verification Methods 0.000 claims abstract description 152
- 238000010511 deprotection reaction Methods 0.000 claims abstract description 38
- 230000000873 masking effect Effects 0.000 claims description 19
- 238000013461 design Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 16
- 150000003839 salts Chemical class 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Abstract
本申请公开了一种数据保护方法及装置,该方法包括:获取第一信息和第一数据,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和/或完整性保护;根据所述第一信息和所述第一数据确定验证信息,所述验证信息用于进行所述第一数据的数据遮蔽解保护和/或完整性保护验证;输出所述验证信息和所述第一信息。该方法能够提高数据的保护效率。
Description
技术领域
本申请实施例涉及信息安全领域,尤其涉及一种数据保护方法及装置。
背景技术
目前,随着信息化和计算机技术的发展,网络安全问题已成为信息时代人类共同面临的挑战。其中,软件在使用过程中很容易被篡改,比如,计算机网络病毒、恶意代码、流氓软件或木马程序等网络攻击行为均会造成软件数据出现安全问题。为解决这些安全问题,现有技术一般采用国家标准GB/T37092-2018《信息安全技术密码模块安全要求》,该标准中明确要求密码边界内的所有软件和固件部件都应当使用核准的完整性技术进行验证。
目前,数据保护的效率有待提高。
发明内容
本申请实施例提供一种数据保护方法及装置,用以提高数据的保护效率。
第一方面,本申请实施例提供的一种数据保护方法,包括:
获取第一信息和第一数据,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和/或完整性保护;根据所述第一信息和所述第一数据确定验证信息,所述验证信息用于进行所述第一数据的数据遮蔽解保护和/或完整性保护验证;输出所述验证信息和所述第一信息。
根据该方法,以第一设备为执行主体,第一设备可设置第一信息,根据第一信息确定对第一数据进行数据遮蔽保护和/或完整性保护。相应的,数据使用端可以通过数据遮蔽解保护和/或完整性保护验证,对第一数据进行验证,以确保数据安全。该数据保护和验证过程的效率较高,可提高数据的保护效率。
在一种可能的设计中,所述第一信息用于指示对所述第一数据进行数据遮蔽保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据。
根据该设计,第一设备可根据第一信息为第一值选择仅对第一数据进行数据遮蔽保护,获得第二数据,第二数据表示经过数据遮蔽保护后的第一数据,提高第一设备执行数据遮蔽保护的效率。
在一种可能的设计中,所述第一信息用于指示对所述第一数据进行完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据。
根据该设计,第一设备可根据第一信息为第二值选择仅对第一数据进行完整性保护,获得第三数据,第三数据表示经过完整性保护后的第一数据,提高第一设备执行完整性保护的效率。
在一种可能的设计中,所述方法还包括:输出所述第一数据。
根据该设计,第一设备仅对第一数据进行完整性保护后,获得第三数据,输出第一数据和第三数据。相应的,第二设备在进行完整性保护验证时,根据第三数据验证该第一数据的完整性,以获知第一数据是否通过完整性保护验证,因此可以提高第二设备的验证效率。由于不需要进行数据遮蔽保护,此时第二设备可以获得未经过数据遮蔽保护的第一数据。
在一种可能的设计中,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据,以及,根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据。
根据该设计,第一设备可根据第一信息为第三值选择对第一数据进行数据遮蔽保护和完整性保护,获得第二数据和第三数据,第二数据表示经过数据遮蔽保护后的第一数据,第三数据表示经过完整性保护后的第一数据。该设计中,第二设备可以根据获得的第二数据作数据遮蔽解保护,获得第一数据。第二设备还可以根据第三数据验证该第一数据的完整性,以获知第一数据是否通过完整性保护验证,因此可以提高第一设备执行数据遮蔽保护和完整性保护的效率。
第二方面,本申请实施例提供的一种数据保护方法,包括:
获取验证信息和第一信息,所述验证信息是根据所述第一信息和第一数据确定的,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和/或完整性保护;根据所述验证信息进行所述第一数据的数据遮蔽解保护和/或完整性保护验证。
第二方面及第二方面各个可能的设计的有益效果可以参照第一方面及相应的可能的设计中对于有益效果的描述,不再赘述。
在一种可能的设计中,所述第一信息用于指示对所述第一数据进行数据遮蔽保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据;所述根据所述验证信息进行所述第一数据的数据遮蔽解保护,包括:根据所述第一信息对所述第二数据进行数据遮蔽解保护,获得所述第一数据。
在一种可能的设计中,所述第一信息用于指示对所述第一数据进行完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据;所述根据所述验证信息进行所述第一数据的完整性保护验证,包括:根据所述第一信息对所述第一数据进行完整性保护,获得第四数据;比对所述第三数据和所述第四数据;根据所述第三数据和所述第四数据的比对结果确定所述第一数据是否通过完整性保护验证。
在一种可能的设计中,所述方法还包括:接收所述第一数据。
在一种可能的设计中,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据,以及,根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据;所述根据所述验证信息进行所述第一数据的数据遮蔽解保护,包括:根据所述第一信息对所述第二数据进行数据遮蔽解保护,获得所述第一数据;所述根据所述验证信息进行所述第一数据的完整性保护验证,包括:根据所述第一信息对所述第一数据进行完整性保护,获得第四数据;比对所述第三数据和所述第四数据;根据所述第三数据和所述第四数据的比对结果确定所述第一数据是否通过完整性保护验证。
第三方面,本申请实施例还提供一种数据保护装置,包括通信模块和处理模块。其中:通信模块,用于获取第一信息和第一数据,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和/或完整性保护;处理模块,用于根据所述第一信息和所述第一数据确定验证信息,所述验证信息用于进行所述第一数据的数据遮蔽解保护和/或完整性保护验证;所述通信模块,还用于输出所述验证信息和所述第一信息。
在一种可能的设计中,所述通信模块还用于:输出所述第一数据。
第四方面,本申请实施例还提供一种数据保护装置,包括通信模块和处理模块。其中:通信模块,用于获取验证信息和第一信息,所述验证信息是根据所述第一信息和第一数据确定的,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和/或完整性保护;处理模块,用于根据所述验证信息进行所述第一数据的数据遮蔽解保护和/或完整性保护验证。
在一种可能的设计中,所述第一信息用于指示对所述第一数据进行数据遮蔽保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据;所述处理模块具体用于:根据所述第一信息对所述第二数据进行数据遮蔽解保护,获得所述第一数据。
在一种可能的设计中,所述第一信息用于指示对所述第一数据进行完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据;所述处理模块具体用于:根据所述第一信息对所述第一数据进行完整性保护,获得第四数据;比对所述第三数据和所述第四数据;根据所述第三数据和所述第四数据的比对结果确定所述第一数据是否通过完整性保护验证。
在一种可能的设计中,所述通信模块还用于:接收所述第一数据。
在一种可能的设计中,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据,以及,根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据;所述处理模块具体用于:根据所述第一信息对所述第二数据进行数据遮蔽解保护,获得所述第一数据;所述处理模块具体用于:根据所述第一信息对所述第一数据进行完整性保护,获得第四数据;比对所述第三数据和所述第四数据;根据所述第三数据和所述第四数据的比对结果确定所述第一数据是否通过完整性保护验证。
第五方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面、第二方面及其任意一种设计的方法。
第六方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现第一方面、第二方面及其任意一种设计的方法。
第三方面至第六方面及其任意一种设计所带来的技术效果可参见第一方面中对应的设计所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据保护方法的流程示意图;
图2为本申请实施例提供的一种数据保护系统的结构示意图;
图3为本申请实施例提供的一种装置结构示意图;
图4为本申请实施例提供的另一种装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以按不同于此处的顺序执行所示出或描述的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。
本申请技术方案中,对数据的采集、传播、使用等,均符合国家相关法律法规要求。
在介绍本申请实施例所提供的一种数据保护方法之前,为了便于理解,首先对下面对本申请实施例的技术背景进行介绍。
目前,随着信息化和计算机技术的发展,网络安全问题已成为信息时代人类共同面临的挑战。其中,数据在使用过程中很容易被篡改,比如,计算机网络病毒、恶意代码、流氓软件或木马程序等网络攻击行为均会造成数据出现安全问题。为解决这些安全问题,现有技术一般采用国家标准GB/T 37092-2018《信息安全技术密码模块安全要求》,该标准中明确要求密码边界内的所有软件和固件部件都应当使用核准的完整性技术进行验证。
其中,现有技术中实现软件保护的系统较为复杂,例如,现有软件保护系统例如Sigstore,Sigstore是一款制品签名、验证的自动化工具,其优势在于对组件的自动化签名和验证实现,公开可审计日志服务的构建,和开源生态的支持。Sigstore由Fulcio,Rekor和Cosign三个主要组件组成。Fulcio,证书颁发机构,根据OIDC身份颁发证书,且只能签署少于20分钟的短期证书。OIDC是基于OAuth 2.0的认证+授权协议,用于用户身份认证,安全的暴露用户数据给第三方,可使用Github、Google等账号为Fulcio提供认证。Rekor,完全公开日志,使用Trillian(提供仅增加日志模式的功能,是Certificate Transparency思想的概括和扩展)作为防篡改的日志服务,记录验证签名有效性的证据,提供基于RESTful API的用于存储和验证签名的服务。Cosign,签名客户端,为容器镜像或制品(artifact,如可执行文件)提供签名、验证和存储支持。签名会写入到如下支持的OCI注册表(Oracle云基础设施容器注册表,是一种由Oracle管理的Docker注册表服务,可以安全的存储和共享容器映像。可用Docker命令和API轻松推送和拉取Docker映像。),并且容器镜像和制品也可以存储在注册表中。
因此,现有技术Sigstore由Fulcio,Rekor和Cosign三个主要组件组成,每个组件包括若干主要模块,并需要执行证书的签发、证书的验证、数字签名的计算、数字签名的验证等一系列工作,另外,该系统所采取的是国外的密码算法,可能存在安全性隐患,因此,现有技术对于软件保护的执行效率和安全性较低。
为了解决以上问题,本申请提供了一种数据保护方法,用以提高对数据的保护效率。在本申请实例中,通过第一信息的取值可选择多种保护方案,可根据多种保护方案对第一数据进行数据遮蔽保护和/或完整性保护,从而避免按照单一流程执行数据保护,因此该方法能够提高对数据的保护效率。其中,第一数据可以是带保护的数据,例如是软件数据。
并且,在获得验证数据时使用国密算法,可提高数据的安全性。
图1示例性的示出了一种数据保护方法的流程示意图。示例性的,该方法的执行主体可为第一设备。
步骤101:第一设备获取第一信息和第一数据。
可选的,第一信息由第一设备设置,用于指示对第一数据进行数据遮蔽保护和/或完整性保护。其中,数据遮蔽保护是一种通过对原始数据进行转换和编辑来隐藏敏感信息的技术,例如,通过对第一数据进行异或计算,以实现数据遮蔽保护。完整性保护是一种对数据加密备份以确保数据不被非法篡改、损坏或丢失的技术,例如,通过对第一数据加密后存储至单独的内存空间,以实现第一数据的完整性保护,确保数据的完整性和准确性没有被破坏。
本申请中,第一设备根据第一信息的不同取值可确定不同的保护方案。例如,第一信息取第一值,表示对第一数据进行数据遮蔽保护;第一信息取第二值,表示对第一数据进行完整性保护;第一信息取第三值,表示对第一数据进行数据遮蔽保护和完整性保护。比如,对于第一设备,第一信息可以表示为W,W=1表示“仅执行数据遮蔽保护”,W=2表示“仅执行完整性保护”,W=3表示“执行数据遮蔽保护和完整性保护”。
例如,如图2所示,生产软件的厂商设备可作为第一设备,用于对待保护的设备提供数据遮蔽保护和/或完整性保护。厂商提供的设备或装置等产品中可以包含软件模块数据,软件模块数据作为存储待保护的第一数据的存储区域。第一数据可以是软件数据。另外,也不排除第一设备是包含待保护的数据的设备,比如,第一设备中包含软件模块数据。
本申请中,可以由第二设备对数据进行数据保护验证,例如,由第二设备对保护后的数据进行遮蔽解保护和/或完整性验证。其中,第二设备可以是用户设备或者检测设备。例如,第一设备是软件模块的厂商,第二设备可以是包含软件模块的设备或软件模块的用户设备。第二设备可以获得由第一设备提供的验证软件或验证数据。验证软件或验证数据可用于第二设备对数据进行验证。一般来说,第一设备与第二设备是不同的设备。
可选的,验证软件或验证数据可以保存在软件模块中,或者,数据验证功能可以集成在被保护的软件模块中,因此可以由软件模块对自身数据进行验证,即软件模块自身可以作为第二设备或作为第二设备的一部分。
示例性的,第一设备可在软件模块出厂前执行步骤101,比如,终端设备作为软件数据的载体,厂商可以在终端设备出厂前执行步骤101。其中,W的取值可以根据需要进行的保护方式决定。例如,对于一些需要进行数据遮蔽保护的数据,可以设置W=1;对于一些需要进行完整性保护的数据,可以设置W=2;对于一些需要进行数据遮蔽保护和完整性保护的数据,可以设置W=3。
步骤102:第一设备根据第一信息和第一数据确定验证信息,验证信息用于进行第一数据的数据遮蔽解保护和/或完整性保护验证。
其中,第一信息的取值不同可使第一设备采用不同的保护方案,不同的保护方案如数据遮蔽保护,完整性保护,或,数据遮蔽保护和完整性保护。其中,不同的保护方案对应的验证信息不同。
下面根据第一信息的不同取值,对不同的保护方案中验证信息的确定流程进行介绍。
第一种情况,当第一信息为第一值时,采用数据遮蔽保护,此时验证信息为第二数据,第二数据是根据第一信息对第一数据进行数据遮蔽保护后获得的。
例如,第一信息为W=1,第二数据表示为C,C可以满足以下公式:
C=M⊕T,(公式1)
其中,M是第一数据,即待保护的原始数据。T可以是与W有关的一个信息。
作为一种示例,T可以满足以下公式:
T=GenMask(PRK,W,MLen),(公式2)
其中,PRK表示伪随机密钥。
MLen表示第一数据的数据长度,例如,第一数据的长度为MLen比特。
其中,GenMask函数可以是基于哈希运算消息认证码(hash-based messageauthentication code,HMAC)算法输出特定长度数据的函数。例如,GenMask函数可调用多次HMAC函数,得到多个特定长度的消息认证码(message authentication code,MAC),然后组合这些MAC获得掩码值,即公式2中的T。特定长度比如256比特。
其中,HMAC函数是基于哈希运算消息认证码函数,通常是在HASH函数的基础上增加一个额外的密钥(比如PRK)作为输入。HMAC函数会调用HASH函数来计算一个特点长度的输出值,也称为校验码,通常记为MAC。
基于HMAC算法生成的函数值可称为杂凑值。本申请中,杂凑值与哈希值、散列值等描述基于HMAC算法生成的函数值的名称可互相替换。
例如,第一设备可以确定初始化的杂凑值T0等于空串,并执行m次HMAC迭代,其中,第i次迭代后的杂凑值满足:
Ti=HMAC(PRK,Ti-1||W||i),i=1、2、…、m;
第一设备可将第i次迭代后的杂凑值进行拼接,根据拼接后的数据作为T,T的比特长度等于MLen比特,T满足:
T=MSB(T1||T2||T3||...||Tm,MLen);
m=ceil(MLen/HashLen);
其中,m表示迭代运算的次数。
T1||T2||T3||...||Tm表示对T1、T2、……、Tm进行拼接。
MSB(T1||T2||T3||...||Tm,MLen)表示取数据(T1||T2||T3||...||Tm)的左边的MLen比特,HashLen表示HMAC算法使用的杂凑算法的输出杂凑值的比特长度,ceil表示向上取整,Ti-1||W||i表示将Ti-1、W、i进行拼接。杂凑算法又称哈希(hash)算法,比如SM3算法。
可以理解,本申请的各个公式中,向上取整、向下取整和四舍五入等取整方式可以互相替换。
可选的,本申请中的PRK可以是使用HMAC函数执行反复的串行迭代生成的。
作为一种示例,PRK可满足以下公式:
PRK = GenPRK(P,Salt,n) (公式4)
其中,P表示保护口令,n表示迭代次数,Salt表示盐值,GenPRK表示生成PRK的运算。PRK长度可以是HMAC使用的杂凑算法的杂凑值长度。
例如,第一设备可以确定初始化数据串Z0=Salt,并执行n次HMAC迭代,其中,第i次迭代后的数据串满足:
Zi=HMAC(P,Zi-1),i=1、2、…、n;
第一设备可将最终迭代结果Zn作为PRK。
作为另一种示例,T可以通过第一设备查询与第一信息有关的表格获得,表格中可以包含第一信息的不同取值与T的不同取值之间的对应关系,即可以通过查表而不是公式计算的方式确定第一信息有关的T而不需要通过公式计算。其中,表格中的对应关系可以满足前述公式。
可选的,基于第一种情况,第一设备可将第二数据存储至“软件模块数据”,比如将C存储至如图2所示的“软件模块数据”中。在第一种情况下,由于不需要进行完整性保护,第一设备可以将如图2所示的“软件完整性验证数据”区的数据置为空串。
其中,“软件完整性验证数据”区的数据可用于进行数据的完整性保护验证。
第二种情况,当第一信息为第二值,采用完整性保护,此时验证信息为第三数据,第三数据可以是根据第一信息对第一数据进行完整性保护后获得的。第三数据也可以称为软件完整性验证数据。
其中,第三数据可以是根据第一信息对第一数据进行完整性保护获得的。具体的,第三数据可以根据第二数据获得。参照第一种情况中的说明,第二数据可以是根据第一信息对第一数据进行数据遮蔽保护后获得的。
例如,第一信息为W=2,第三数据为软件认证码(software authenticationcode,SAC),SAC可以满足以下公式:
SAC=HMAC(PRK,C),(公式5)
其中,C表示第二数据,PRK表示密钥,PRK和C可参照第一种情况中的说明。
可选的,基于第二种情况,第一设备可将第三数据存储至“软件完整性验证数据”区,比如将SAC存储至如图2所示的“软件完整性验证数据”区中。在第二种情况下,由于不需要进行数据遮蔽保护,即第二数据对于情况二的验证来说是不必须的,因此第一设备在根据第二数据获得第三数据后,将第二数据置为空串或数据M。比如,第一设备在根据图2所示的“软件模块数据”区的第二数据得到SAC后,将该“软件模块数据”区的数据置为待保护的空串或原始数据M。
可选的,第一设备可输出第一数据。其中,“输出第一数据”的动作可以理解为,将“软件模块数据”区的数据置为原始数据M;或者,也可以理解为是在将“软件模块数据”区的数据置为空串的情况下,额外向第二设备输出原始数据M或将原始数据M存储至“软件模块数据”区以外的其他存储空间。
第三种情况,第一信息为第三值,采用数据遮蔽保护和完整性保护,此时验证信息包括第二数据和第三数据。其中,第二数据根据第一信息对第一数据进行数据遮蔽保护后获得,第三数据根据第一信息对第一数据进行完整性保护后获得。第二数据的获得方式可以参照第一种情况中的说明,第三数据的获得方式可以参照第二种情况中的说明,不再重复。
例如,第一信息为W=3,验证信息包括第二数据C和第三数据SAC。其中C可参照上述公式1获得,SAC可参照上述公式5获得。
可选的,基于第三种情况,第一设备可在获得第二数据后,将第二数据存储至“软件模块数据”,比如将C存储至如图2所示的“软件模块数据”中,并且将第三数据存储至“软件完整性验证数据”区,比如将SAC存储至如图2所示的“软件完整性验证数据”区中。
可选的,执行步骤102之前,第一设备可以生成密码认证码(passwordauthentication code,PAC),PAC在本申请中也称为口令验证码。PAC可用于验证第二设备获取的待验证口令。
本申请中,PAC可以根据PRK获得。
作为一种示例,PAC可满足以下公式:
PAC=HMAC(PRK,Salt)。(公式6)
其中,Salt表示盐值。
步骤103:第一设备输出验证信息和第一信息。
相应的,第二设备获得验证信息和第一信息。
作为一种示例,第一设备比如生产软件的厂商设备,第二设备比如用户设备,或厂商提供的设备或装置等产品。第一设备向第二设备输出验证信息和第一信息,当第二设备获得用户的验证指示时,第二设备可根据验证信息对第一数据进行数据遮蔽解保护和/或完整性验证。例如,图2所示为厂商提供的产品中的数据保护和验证区域的逻辑结构,第一设备在数据保护中将验证信息和第一信息存储至图2所示的相应区域,第二设备可以是产品以外的设备,第二设备在对该设备的数据验证过程中,可以从该设备的数据保护和验证区域中读取验证信息和第一信息等参数。又如,第一设备与第二设备可以是不同的设备,第一设备在对数据进行保护后,可以通过第一设备与第二设备之间的接口将验证信息和第一信息发送至第二设备,此时图2所示可以是第二设备中的数据保护和验证区域的逻辑结构。
示例性的,对于步骤102中的第一种情况,第一设备输出验证信息的动作可以包括将第二数据C存储至“软件模块数据”区。第一设备输出第一信息的动作可以是将第一信息W存储至“保护方案”字段,“保护方案”字段可位于如图2所示的“配置数据”区。
对于前述第二种情况,第一设备输出验证信息的动作可以包括将第三数据SAC存储至“软件完整性验证数据”区。
对于前述第三种情况,第一设备输出验证信息的动作可以包括将第二数据C存储至“软件模块数据”区,将第三数据SAC存储至“软件完整性验证数据”区。第二种情况和第三种情况中的第一设备输出第一信息的动作可以参照第一种情况的说明,不再重复。
可选的,第一设备还可输出盐值、迭代次数、口令验证码,用于第二设备根据盐值、迭代次数、口令验证码进行数据遮蔽解保护和/或验证数据的完整性。例如,第一设备可以将数据保护计算或者处理中涉及的Salt存储至“盐值”字段,Salt例如伪随机数据,将n存储至“迭代次数”字段。第一设备可以将PAC存储至“口令验证数据”区。
其中,以上所述的“盐值”字段和“迭代次数”字段可以位于“配置数据”区中,
“软件模块数据”区、“配置数据”区、“口令验证数据”区和“软件完整性验证数据”区可以位于系统文件(system,SYS)中。系统文件可以包含在软件模块中,也可以独立于软件模块单独存储,本申请不具体限制。另外,以上图2中的“软件模块数据”区、“配置数据”区、“口令验证数据”区和“软件完整性验证数据”可以采用其他名称,本申请不具体限制。
在获取验证信息和第一信息后,第二设备可以根据验证信息进行第一数据的数据遮蔽解保护和/或完整性保护验证。
本申请中,第二设备根据第一信息的不同取值可确定不同的验证方案。例如,第一信息取第一值,表示第一设备对第一数据进行数据遮蔽保护,相应的,第二设备可以数据遮蔽解保护以获得第一数据;第一信息取第二值,表示第一设备对第一数据进行完整性保护,相应的,第二设备可以根据验证信息包含的第三数据验证第一数据的完整性;第一信息取第三值,表示第一设备对第一数据进行数遮蔽保护和完整性保护,相应的,第二设备可以数据遮蔽解保护以获得第一数据,并根据第三数据验证第一数据的完整性。
可选的,以第一数据是软件数据为例,第二设备验证软件数据的时机可以是以下中的任意一个或多个时机:
1)软件启动阶段,第二设备可以验证软件数据,以确定软件是否被篡改或者出现数据异常等错误。
2)运行的运行过程中,第二设备根据用户手动触发的验证操作,进行软件数据的验证。
3)第二设备对软件数据进行周期性验证,比如每隔不超过24小时就验证一次。
下面根据第一信息的不同取值,对不同的验证方案中对验证信息的验证流程进行介绍。
针对步骤102中的第一种情况,第二设备可获得验证信息和第一信息。其中,验证信息为第二数据。例如,第二设备可以从图2所示的“软件模块数据”区获得第二数据,从“配置数据”区获得第一信息。
基于第一信息,第二设备可获知第一设备对第一数据进行数据遮蔽保护,因此可以通过数据遮蔽解保护获得第一数据。
具体来说,第二设备可以根据第一信息对第二数据进行数据遮蔽解保护,获得第一数据。
例如,W=1,第二设备可获得第一设备输出的第二数据C和第一信息W。另外,第二设备还可获得第一设备输出的Salt、W、n和PAC。第二设备根据第一信息对第二数据进行数据遮蔽解保护,获得解保护后的第一数据。
示例性的,解保护后的第一数据M与C满足以下关系式:
M=C⊕T,(公式7)
其中,C表示存储于“软件模块数据”中的第二数据,W表示第一信息。T可以是与W有关的一个信息。
作为一种示例,T可以满足以下公式:
T=GenMask(PRK,W,CLen),(公式8)
其中,CLen表示第二数据的数据长度,例如,第二数据的长度为CLen比特。GenMask可参照步骤102的公式2的说明,此处不再赘述。
可选的,第二设备可设置验证标识,验证标识可用于表示第一数据的完整性保护是否通过验证。验证标识可用V表示。
在第一种情况下,由于第二设备不需要进行完整性保护验证,第二设备可设置验证标识为代表“验证通过”的值。比如,第二设备确定W=1,则对“软件模块数据”中的C和运算生成的T作异或,获得解保护的M,然后将V设置为代表“验证通过”的值。
针对步骤102中的第二种情况,第一设备输出的验证信息为第三数据,第一信息可以为代表数据完整性保护的第二值。第二设备可根据第一信息为第二值,采用完整性保护验证的验证方案,根据第三数据对第一数据进行完整性保护验证。
其中,第二设备可根据第一信息对第一数据进行完整性保护,获得第四数据,比对第三数据和第四数据,根据第三数据和第四数据的比对结果确定第一数据是否通过完整性保护验证。
其中,由于不需要进行数据遮蔽保护,第二设备可以读取第一设备输出的第一数据,例如,第二设备可以从第一设备接收第一数据,或者,从图2所示的“软件模块数据”区读取第一数据M。
例如,W=2,第二设备接收第一数据M和第一信息W。
另外,第二设备还可获得第一设备输出的Salt、W、n、PAC和验证信息SAC。第二设备可参照步骤102中公式5获得SAC*,例如,SAC*=HMAC(PRK,C),其中C和PRK可参照步骤102中的说明,不再重复。
其中,SAC*可以作为第四数据,SAC为第三数据。第二设备可比较SAC和SAC*,若SAC等于SAC*,则第二设备可确定第一数据通过完整性验证。第二设备可设置完整性校验的验证标识V为代表“验证通过”的值。若SAC不等于SAC*,则第二设备可确定第一数据未通过完整性验证。第二设备可设置验证标识为代表“验证不通过”的值。
针对步骤102中的第三种情况,第一设备输出的验证信息为第二数据和第三数据,第一信息为代表数据遮蔽保护和数据完整性保护的第三值。第二设备可根据第一信息为第三值,采用数据遮蔽解保护,并采用完整性保护验证的验证方案对第一数据作数据遮蔽解保护和完整性保护验证。
例如,W=3,第二设备可获得第二数据C、第三数据SAC以及获得第一信息W。
第二设备可以根据第二数据C进行数据遮蔽解保护,以获得第一数据M。
参照前述第二设备获得验证信息和第一信息(验证信息为第二数据)的情况下,第二设备进行数据遮蔽解保护的方式的说明,解保护后的第一数据M与C满足前述公式7。
在通过数据遮蔽解保护获得第一数据M后,第二设备还可以根据第三数据对第一数据的完整性进行验证。其中,第二设备可以参照第二种情况中的方式获得第四数据SAC*,并比对SAC与SAC*是否一致。若SAC*和SAC一致,则第二设备设置V为代表“验证通过”的值。若SAC不等于SAC*,则第二设备可设置验证标识为代表“验证不通过”的值。
可选的,在对验证信息进行验证之前,第二设备还可以生成待验证的口令验证码PAC*。其中,第二设备生成PAC*的方式可以参照步骤102中生成PAC的方式。例如,PAC*可以满足公式6,即PAC*=HMAC(PRK,Salt)。
此外,第二设备还可以比对PAC与PAC*,以确定二者是否一致。若PAC*和PAC一致,则表示口令验证通过,第二设备可继续验证获取的验证信息。若PAC*不等于PAC,则表示口令验证不通过,第二设备可报错“口令无效”并终止验证。
基于相同的技术构思,本申请示例性的提供了一种数据保护装置。该装置可以用于执行以上方法实施例所述的动作。在该实施例中,装置的结构可以如图3所示。
如图3所示,本申请示例性的提供一种数据保护装置可包括通信模块301和处理模块302。
其中,在实现本申请中第一设备的功能时,通信模块301,用于获取第一信息和第一数据,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和/或完整性保护;处理模块302,用于根据所述第一信息和所述第一数据确定验证信息,所述验证信息用于进行所述第一数据的数据遮蔽解保护和/或完整性保护验证;所述通信模块301,还用于输出所述验证信息和所述第一信息。
可选的,所述第一信息用于指示对所述第一数据进行数据遮蔽保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据。
可选的,所述第一信息用于指示对所述第一数据进行完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据。
可选的,所述通信模块301还用于:输出所述第一数据。
可选的,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据,以及,根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据。
在实现本申请中第二设备的功能时,通信模块301,用于获取验证信息和第一信息,所述验证信息是根据所述第一信息和第一数据确定的,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和/或完整性保护;处理模块302,用于根据所述验证信息进行所述第一数据的数据遮蔽解保护和/或完整性保护验证。
可选的,所述第一信息用于指示对所述第一数据进行数据遮蔽保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据;所述处理模块302具体用于:根据所述第一信息对所述第二数据进行数据遮蔽解保护,获得所述第一数据。
可选的,所述第一信息用于指示对所述第一数据进行完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据;所述处理模块302具体用于:根据所述第一信息对所述第一数据进行完整性保护,获得第四数据;比对所述第三数据和所述第四数据;根据所述第三数据和所述第四数据的比对结果确定所述第一数据是否通过完整性保护验证。
可选的,所述通信模块301还用于:接收所述第一数据。
可选的,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据,以及,根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据;所述处理模块302具体用于:根据所述第一信息对所述第二数据进行数据遮蔽解保护,获得所述第一数据;所述处理模块302具体用于:根据所述第一信息对所述第一数据进行完整性保护,获得第四数据;比对所述第三数据和所述第四数据;根据所述第三数据和所述第四数据的比对结果确定所述第一数据是否通过完整性保护验证。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。该电子设备可以用于执行以上方法实施例所述的动作。在该实施例中,电子设备的结构可以如图4所示,包括存储器401以及一个或多个处理器402。
存储器401,用于存储处理器402执行的计算机程序。存储器401可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器401可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器401也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器401是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器401可以是上述存储器的组合。
处理器402,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等。所述处理器402,用于调用存储器401中存储的计算机程序时实现上述方法。
本申请实施例中不限定上述存储器401和处理器402之间的具体连接介质。作为一种示例,本申请实施例在图4中以存储器401和处理器402之间通过总线403连接,总线403在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线403可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,处理器402可用于执行以上由通信模块301和处理模块302中任意一项或多项执行的动作。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的方法。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种数据保护方法,其特征在于,包括:
获取第一信息和第一数据,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和/或完整性保护;
根据所述第一信息和所述第一数据确定验证信息,所述验证信息用于进行所述第一数据的数据遮蔽解保护和/或完整性保护验证;
输出所述验证信息和所述第一信息。
2.如权利要求1所述的方法,其特征在于,所述第一信息用于指示对所述第一数据进行数据遮蔽保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据。
3.如权利要求1所述的方法,其特征在于,所述第一信息用于指示对所述第一数据进行完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
输出所述第一数据。
5.如权利要求1所述的方法,其特征在于,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据,以及,根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据。
6.一种数据保护方法,其特征在于,包括:
获取验证信息和第一信息,所述验证信息是根据所述第一信息和第一数据确定的,所述第一信息用于指示对所述第一数据进行数据遮蔽保护和/或完整性保护;
根据所述验证信息进行所述第一数据的数据遮蔽解保护和/或完整性保护验证。
7.如权利要求6所述的方法,其特征在于,所述第一信息用于指示对所述第一数据进行数据遮蔽保护,所述验证信息包括根据所述第一信息对所述第一数据进行数据遮蔽保护后获得的第二数据;
所述根据所述验证信息进行所述第一数据的数据遮蔽解保护,包括:
根据所述第一信息对所述第二数据进行数据遮蔽解保护,获得所述第一数据。
8.如权利要求6所述的方法,其特征在于,所述第一信息用于指示对所述第一数据进行完整性保护,所述验证信息包括根据所述第一信息对所述第一数据进行完整性保护后获得的第三数据;
所述根据所述验证信息进行所述第一数据的完整性保护验证,包括:
根据所述第一信息对所述第一数据进行完整性保护,获得第四数据;
比对所述第三数据和所述第四数据;
根据所述第三数据和所述第四数据的比对结果确定所述第一数据是否通过完整性保护验证。
9.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~8中任一所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1~8中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311650365.4A CN117668872A (zh) | 2023-12-04 | 2023-12-04 | 一种数据保护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311650365.4A CN117668872A (zh) | 2023-12-04 | 2023-12-04 | 一种数据保护方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117668872A true CN117668872A (zh) | 2024-03-08 |
Family
ID=90080273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311650365.4A Pending CN117668872A (zh) | 2023-12-04 | 2023-12-04 | 一种数据保护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117668872A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1850256A1 (en) * | 2006-04-24 | 2007-10-31 | Telefonaktiebolaget LM Ericsson (publ) | Authorisation of the installation of a software version |
CN104657681A (zh) * | 2015-03-13 | 2015-05-27 | 深圳酷派技术有限公司 | 一种数据存储方法及装置 |
CN109362108A (zh) * | 2017-09-30 | 2019-02-19 | 华为技术有限公司 | 一种安全保护的方法、装置和系统 |
CN110110551A (zh) * | 2019-04-19 | 2019-08-09 | 中共中央办公厅电子科技学院(北京电子科技学院) | 一种数据存储方法及装置 |
CN113779652A (zh) * | 2020-06-09 | 2021-12-10 | 华为技术有限公司 | 数据完整性保护的方法和装置 |
US20220129583A1 (en) * | 2020-10-22 | 2022-04-28 | Optum, Inc. | Data protection as a service |
US20240095382A1 (en) * | 2021-06-04 | 2024-03-21 | Huawei Technologies Co., Ltd. | Data protection method and vehicle |
-
2023
- 2023-12-04 CN CN202311650365.4A patent/CN117668872A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1850256A1 (en) * | 2006-04-24 | 2007-10-31 | Telefonaktiebolaget LM Ericsson (publ) | Authorisation of the installation of a software version |
CN101427259A (zh) * | 2006-04-24 | 2009-05-06 | 艾利森电话股份有限公司 | 对软件版本的安装的授权 |
CN104657681A (zh) * | 2015-03-13 | 2015-05-27 | 深圳酷派技术有限公司 | 一种数据存储方法及装置 |
CN109362108A (zh) * | 2017-09-30 | 2019-02-19 | 华为技术有限公司 | 一种安全保护的方法、装置和系统 |
WO2019062996A1 (zh) * | 2017-09-30 | 2019-04-04 | 华为技术有限公司 | 一种安全保护的方法、装置和系统 |
CN110110551A (zh) * | 2019-04-19 | 2019-08-09 | 中共中央办公厅电子科技学院(北京电子科技学院) | 一种数据存储方法及装置 |
CN113779652A (zh) * | 2020-06-09 | 2021-12-10 | 华为技术有限公司 | 数据完整性保护的方法和装置 |
US20220129583A1 (en) * | 2020-10-22 | 2022-04-28 | Optum, Inc. | Data protection as a service |
US20240095382A1 (en) * | 2021-06-04 | 2024-03-21 | Huawei Technologies Co., Ltd. | Data protection method and vehicle |
Non-Patent Citations (2)
Title |
---|
吴逸伦: "不可信云环境下的数据保护与应用关键技术研究", 中国博士学位论文全文数据库信息科技辑, no. 01, 15 January 2019 (2019-01-15) * |
眭晗;吴文玲;张立廷;: "基于双管道结构的在线加密方案", 计算机学报, no. 05, 19 August 2017 (2017-08-19) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313690B (zh) | 自包含的加密引导策略验证 | |
KR102396071B1 (ko) | 소프트웨어 시스템의 자동화된 검증 기법 | |
US9633210B2 (en) | Keying infrastructure | |
US10771264B2 (en) | Securing firmware | |
US20130031371A1 (en) | Software Run-Time Provenance | |
US8442218B2 (en) | Method and apparatus for compound hashing via iteration | |
US20130318357A1 (en) | System and Method for Secure Software Update | |
CN115048652A (zh) | 针对运行已验证软件的硬件的端到端安全性 | |
JPH10133952A (ja) | ファイルアクセスを行うための方法およびその装置ならびに署名データ構造 | |
CN112784278B (zh) | 一种计算机系统的可信启动方法、装置及设备 | |
US8225189B2 (en) | Data error detection | |
US10853472B2 (en) | System, apparatus and method for independently recovering a credential | |
WO2014123779A1 (en) | Method for protecting the integrity of a fixed-length data structure | |
CN108229144B (zh) | 一种应用程序的验证方法、终端设备及存储介质 | |
EP3317875A1 (en) | Virtual machine integrity | |
US7353386B2 (en) | Method and device for authenticating digital data by means of an authentication extension module | |
KR20170089352A (ko) | 가상화 시스템에서 수행하는 무결성 검증 방법 | |
CN109033818B (zh) | 终端、验证方法和计算机可读存储介质 | |
CN106372523B (zh) | 一种modem文件安全保护方法及系统 | |
CN110851851A (zh) | 一种块链式账本中的权限管理方法、装置及设备 | |
CN116484379A (zh) | 系统启动方法、包含可信计算基软件的系统、设备及介质 | |
CN117668872A (zh) | 一种数据保护方法及装置 | |
CN113868691B (zh) | 一种基于云原生的区块链的授权运行方法及装置 | |
CN111949996A (zh) | 安全私钥的生成方法、加密方法、系统、设备及介质 | |
CN111611551A (zh) | 一种基于国密算法的动态链接库保护方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |