具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请实施例提出一种数据安全防护方案,能够在接收到数据下载指令时,从密钥***获取针对第一数据的第一密钥以及第一密钥的密钥接口地址,进而通过第一密钥对第一数据进行加密处理,得到第一加密数据,并且根据第一密钥的密钥接口地址生成对应的第一接口调用代码,以便于后续在进行解密处理时根据第一接口调用代码获取第一密钥,进而根据第一加密数据与第一接口调用代码组合得到第一目标加密数据。由此可以通过对第一数据进行加密,使得用户下载得到的数据为加密后的数据,避免用户通过其他未知软件或***进行查看,并且由于对数据进行加密的数据存储在密钥***中,在进行解密处理时需要调用密钥接口来获取,减少了密钥泄露的风险,有助于提升数据的安全性。
在一种可能的实施方式中,本申请实施例提出一种数据安全防护***,请参见图1,图1是本申请实施例提供的一种数据安全防护***的结构示意图,该数据安全防护***可以包括客户端、服务器以及密钥***。其中,该服务器可以配置有上述的安全防护方案。并且,该服务器中可以设置有对应的业务***,如协同办公***、财务***以及其他应用***等等,此处不做限制。该客户端可以为业务***提供的客户端,该客户端中登录了业务***授权的账号。用户在基于业务***处理业务时,可以通过该业务***所提供的客户端向对应的服务器发送指令以实现对应的功能。例如,用户基于业务***提供的客户端向服务器发送数据下载指令,该数据下载指令用于指示从业务***中下载数据,则服务器通过本申请提出的数据安全防护方案对数据进行加密处理,然后将加密后的数据返回至客户端,使得用户最终下载得到的数据为加密后的数据。又如,客户端向服务器发送针对对通过上述数据安全防护方法进行加密处理后的数据的数据获取指令(也称数据查看指令),该数据获取指令用于指示获取数据的明文数据以进行显示,则服务器可以对通过上述数据安全防护方法进行加密处理后的数据进行解密处理,使得用户能够通过该业务***的客户端查看明文的数据。
该密钥***可以为用于生成和管理密钥的***。该密钥***可以用于接收服务器发送的请求,并对服务器发送的请求执行对应的响应处理,以返回对应的请求结果。例如,该密钥***在接收到服务器发送的密钥生成指令时,密钥***生成对应的密钥,并将密钥返回至该服务器。又如,该密钥***在接收到服务器发送的密钥获取请求时,密钥***可以根据密钥获取请求对发起密钥获取请求的服务器的权限、以及所请求获取的密钥的有效时长等等信息进行验证,若验证通过,则可以将密钥返回至服务器,若验证不通过,则可以不将密钥返回至服务器,由此可以提升对数据进行加密的密钥的安全性,进而提升数据的安全性。
需要特别说明的是,除特别说明外,在本申请的具体实施方式中,涉及到用户信息等相关的数据,当本申请的实施例运用到具体产品或技术中时,均需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
该本申请的技术方案可运用在电子设备中,该电子设备可以是终端,也可以是服务器,或者也可以是用于进行数据安全防护的其他设备,本申请不做限定。可选的。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云存储、网络服务、中间件服务、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。
基于上述的描述,本申请实施例提出一种数据安全防护方法。请参见图2,图2是本申请实施例提供的一种数据安全防护方法的流程示意图。该方法可以由上述所提及的电子设备执行。该数据安全防护方法可以包括以下步骤。
S201、当接收到第一客户端发送的针对第一数据的数据下载指令时,从密钥***获取针对第一数据的第一密钥以及第一密钥的密钥接口地址。
其中,如上述,针对第一数据的数据下载指令用于指示从业务***中下载第一数据。该第一数据可以为任一需要进行下载的明文数据,例如该第一数据可以为word、excel、txt等格式的文件数据。该第一客户端可以为任一客户端。在一种可能的场景中,用户可以在第一客户端中点击用于指示下载第一数据的控件,则第一客户端可以向电子设备(如服务器)发送针对第一数据的数据下载指令。
在一种可能的实施方式中,电子设备在接收到针对第一数据的数据下载指令后,可以从密钥***获取针对第一数据的第一密钥以及第一密钥的密钥接口地址,具体包括以下步骤:①向密钥***发送密钥生成指令。②接收密钥***返回的针对第一数据的第一密钥以及第一密钥的密钥接口地址;第一密钥的密钥接口地址中包括第一数据的唯一数据标识,唯一数据标识为密钥***生成的。
其中,该密钥生成指令用于指示密钥***生成对应的密钥。可以理解的是,密钥***在接收到密钥生成指令时,可以随机生成目标位数的密钥,如可以生成一个64位的密钥作为第一密钥。并且,密钥***还可以生成针对第一数据的唯一数据标识,该唯一数据标识可以为数据的唯一标识,该唯一数据标识可以为目标长度的字符串,该字符串可以由字母、数字或可见字符中的一种或多种组成,该可见字符用于指示可以通过键盘直接输入的字符,如字符“_”“*”等等。例如,密钥***可以生成一个字符串“58E15f61R4DR7S78TWR8271”作为第一数据的唯一数据标识。可以理解的是,密钥***在针对各个不同数据的密钥生成指令,可以生成相同长度的字符串作为对应数据的唯一数据标识。该唯一数据标识可以也可以称为数据ID、文件ID等等。密钥***可以将生成的密钥与数据的唯一数据标识关联存储至存储区域,以便于后续根据唯一数据标识获取对应的密钥。
在一种可能的实施方式中,密钥***生成唯一数据标识时,可以为随机生成一组字符串作为唯一数据标识;也可以为根据密钥生成指令的接收时间顺序生成对应的唯一数据标识,如唯一数据标识的最后5位字符可以为接收到密钥生成指令的排序,若是密钥***第2000次接收到密钥生成指令,则可以最后5位字符可以为02000;还可以根据密钥生成指令所对应的数据的数据格式生成对应的唯一数据标识,如数据的数据格式为word,则唯一数据标识中目标位置的字符可以为对应word格式的字符串,同理,excel、txt、ppt等格式的数据的唯一数据标识中目标位置的字符可以为对应的字符串;或者,密钥***还可以根据其他方式生成数据的唯一数据标识,此处不做。
密钥***还可以发布第一密钥的密钥接口,并生成第一密钥的密钥接口地址,该密钥接口可以为后续对加密后的数据进行解密处理时获取对应的密钥的接口,该密钥接口地址即为密钥接口所对应的(统一资源定位地址)URL地址,可以用于后续对加密后的数据进行解密处理时通过该密钥接口地址调用密钥接口以获取对应的密钥。
在一种可能的实施方式中,密钥***生成的第一密钥的密钥接口地址时可以根据第一数据的唯一数据标识进行生成,进而第一密钥的密钥接口地址中可以包括第一数据的唯一数据标识,由此使得每个数据的密钥的密钥接口地址与数据的唯一数据标识相关联,进而使得不同数据的密钥接口地址不同,有助于保护密钥,提升密钥的安全性。例如,https://ph-xxx.com.cn/getSecKeyFor58E15f61R4DR7S78TWR8271.do,其中,后缀58E15f61R4DR7S78TWR8271即为第一数据的唯一数据标识。进而密钥***在生成了第一密钥以及第一密钥的密钥接口地址后,向发送密钥生成指令的电子设备返回第一密钥以及第一密钥的密钥接口地址。
在一种可能的实施方式中,密钥***所发布的第一密钥的密钥接口的接口逻辑中可以实现对接口调用方的来源、域名以及密钥的有效时长等进行验证,以便于后续密钥接口在被调用时,密钥接口对接口调用方进行相关验证。其中,接口调用方的来源可以用于指示获取密钥的电子设备的设备标识等等。该域名用于指示获取密钥的电子设备所对应的业务***的域名信息。可以理解的是,在发布的密钥接口的接口逻辑中可以配置有能够验证通过的接口调用当的来源以及域名等信息,相当于配置了具有授权的的接口调用方,到由此可以避免接口被没有授权的接口调用方成功调用,并且可以通过密钥的有效时长的验证,避免在超出一定有效期后密钥被获取,由此可以保障密钥的安全性,进而提升数据的安全性。
密钥***在生成第一密钥时,还可以记录第一密钥的生成时间,并且确定第一密钥的有效时长。该第一密钥的生成时间可以为密钥***生成第一密钥的时间。该第一密钥的有效时长可以用于指示第一密钥有效期的时长。由此可以在密钥接口的被调用时,密钥接口能够根据第一密钥的生成时间和密钥接口被调用的时间之间的时间差与第一密钥的有效时长进行对比以验证第一密钥的有效时长。例如,第一密钥的生成时间为t1,且第一密钥的有效时长可以为为3天(即72小时),当接口调用方在t2调用第一密钥的密钥接口时,若t2-t1小于或等于72小时,则对密钥的有效时长验证通过,若t2-t1大于72小时,则对密钥的有效时长验证不通过。
S202、通过第一密钥对第一数据进行加密处理,得到第一加密数据。
其中,该第一加密数据也就是对第一数据进行加密处理后的数据。对第一数据进行加密处理可以通过第一密钥进行加密处理。在一种可能的实施方式中,对通过第一密钥对第一数据进行加密处理可以采用对称加密的加密算法进行加密,如可以采用AES算法进行加密处理。可以理解的是,采用对称加密的加密算法对数据进行加密所用的密钥与对加密后的数据进行解密时所用的密钥相同。
S203、根据第一密钥的密钥接口地址生成对应的第一接口调用代码。
其中,第一接口调用代码用于在对第一加密数据进行解密处理时根据第一密钥的密钥接口地址调用对应的密钥接口以获取第一密钥。该第一接口调用代码可以包括接口调用逻辑,该接口调用逻辑用于调用接口参数的参数值所指示的密钥接口,第一接口调用代码中的接口参数的参数值为第一密钥接口地址。
在一种可能的实施方式中,生成第一接口调用代码可以通过对初始接口调用代码中的参数进行调整以自动生成第一接口调用代码。具体可以包括以下步骤:①获取初始接口调用代码。其中,初始接口调用代码包括接口调用逻辑,接口调用逻辑用于调用接口参数的参数值所指示的密钥接口。在一种可能的实施方式中,在初始接口调用代码的代码类型可以为java、python等等,此处不做限制。②根据第一密钥的密钥接口地址对接口参数的参数值进行更新,并将更新后的初始接口调用代码确定为第一接口调用代码。该初始接口调用代码中的接口参数的参数值可以为空或者为一个初始值,此处不做限制。进而可以将接口参数的参数值替换为第一密钥的密钥接口地址,进而后续在对数据进行解密处理时,可以通过第一接口调用代码所包括的接口调用逻辑调用第一密钥接口地址所对应的密钥接口。
S204、根据第一加密数据与第一接口调用代码组合得到第一目标加密数据,并将第一目标加密数据发送至第一客户端。
其中,该第一目标加密数据可以为用户最终下载得到的数据。根据第一加密数据与第一接口调用代码组合得到第一目标加密数据,可以为将第一接口调用代码添加至第一加密数据中。例如,第一加密数据为:xxxxxxxxxxxxxx,第一接口调用代码可以为:ttttttttt,则可以将第一接口调用代码添加至第一加密数据中,可以得到第一目标加密数据为:xxxxxxxtttttttttxxxxxxx。由此可以将接口调用代码与加密数据进行融合得到最终下载的数据,以便于后续在对下载的数据进行解密时,能够解析出其中的接口调用代码,进而获取解密需要的密钥。
在一种可能的实施方式中,在组合得到第一目标加密数据时,可以通过添加关键标识对的方式来对加密数据和接口调用代码进行区分,以便于后续在解析接口调用代码时,能够快速识别出其中的接口调用代码。
可选的,根据第一加密数据与第一接口调用代码组合得到第一目标加密数据可以包括以下步骤:①在第一接口调用代码的前后添加关键标识对,关键标识对用于标识第一接口调用代码的位置。该关键标识对可以为一对特殊标识符号,该特殊标识符号可以为一个符号或多个符号,如“¥@密”“¥@*”等等。该关键标识对中的两个特殊标识符号可以相同,也可以不同,此处不做限制。例如,第一接口调用代码可以为:ttttttttt,若添加在第一接口调用代码前的特殊标识符号为“¥@密”,添加在第一接口调用代码后的特殊标识符号为“¥@*”,则添加关键标识对后的第一接口调用代码为:¥@密ttttttttt¥@*;若添加在第一接口调用代码前的特殊标识符号为“¥@密”,添加在第一接口调用代码后的特殊标识符号也为“¥@密”,则添加关键标识对后的第一接口调用代码为:¥@密ttttttttt¥@密。②将添加关键标识对后的第一接口调用代码添加至第一加密数据中,得到第一目标加密数据。例如,第一加密数据为:xxxxxxxxxxxxxx,第一接口调用代码可以为:ttttttttt,则添加了关键标识对后的第一接口调用代码添加至第一加密数据中,可以得到第一目标加密数据为:xxxxxxx¥@密ttttttttt¥@密xxxxxxx。
可选的,根据第一加密数据与第一接口调用代码组合得到第一目标加密数据,又可以包括以下步骤:①在第一接口调用代码的前后添加关键标识对,关键标识对用于标识第一接口调用代码的位置。②对添加关键标识对后的第一接口调用代码进行加密处理,得到加密调用代码。其中,对添加关键标识对后的第一接口调用代码进行加密处理,可以采用不需要密钥的加密方式进行加密处理,如采用Base64、Base32等算法进行加密。可以理解的是,虽然对添加关键标识对后的第一接口调用代码进行加密处理,采用不需要密钥的加密方式进加密,但是通过增加一个加密手段,可以使得未授权的业务***或软件需要通过不断尝试来确定出对添加关键标识对后的第一接口调用代码进行加密处理所采用的加密方法,提升未授权的业务***或软件恶意获取数据的难度,进而提升数据的安全性。③将加密调用代码添加至第一加密数据中,得到第一目标加密数据。其中,将加密调用代码添加至第一加密数据中的方式与上述将添加关键标识对后的第一接口调用代码添加至第一加密数据的方式相同,此处不做赘述。例如,第一加密数据为:xxxxxxxxxxxxxx,第一接口调用代码可以为:ttttttttt,则添加了关键标识对后的第一接口调用代码为:¥@密ttttttttt¥@密,进而对添加了关键标识对的第一接口调用代码进行Base64加密得到加密调用代码为:77+lQOWvhnR0dHR0dHR0dO+/pUDlr4Y=,进而将加密调用代码添加至第一加密数据中后得到的第一目标加密数据可以为:xxxxxxx77+lQOWvhnR0dHR0dHR0dO+/pUDlr4Y=xxxxxxx。
可选的,根据第一加密数据与第一接口调用代码组合得到第一目标加密数据,还可以先对第一调用代码进行加密处理,进而在加密处理后的第一调用代码的前后添加关键标识对,从而将添加了关键标识对的加密处理后的第一调用代码添加至第一加密数据中。
本申请实施例能够在接收到数据下载指令时,从密钥***获取针对第一数据的第一密钥以及第一密钥的密钥接口地址,进而通过第一密钥对第一数据进行加密处理,得到第一加密数据,并且根据第一密钥的密钥接口地址生成对应的第一接口调用代码,以便于后续在进行解密处理时根据第一接口调用代码获取第一密钥,进而根据第一加密数据与第一接口调用代码组合得到第一目标加密数据。由此可以通过对第一数据进行加密,使得用户下载得到的数据为加密后的数据,避免用户通过其他未知软件或***进行查看,并且由于对数据进行加密的数据存储在密钥***中,在进行解密处理时需要调用密钥接口来获取,减少了密钥泄露的风险,有助于提升数据的安全性。
请参见图3,图3是本申请实施例提供的一种数据安全防护方法的流程示意图。该方法可以由上述的电子设备执行。该数据安全防护方法具体可以包括以下步骤。
S301、当检测到针对第二数据的数据获取指令时,获取第二数据对应的第二目标加密数据。
其中,该第二目标加密数据根据第二加密数据以及第二接口调用代码组合得到。该第二目标加密数据相当于通过图2所示的实施例的方法对第二数据进行处理得到的数据。可以理解的是,该第二数据可以为第一数据也可以不为第一数据,此处不做限制。其中,第二加密数据可以为对第二数据通过第二密钥进行加密处理后得到的数据,该第二接口调用代码可以用于在对第二加密数据进行解密处理时获取对第二数据进行解密处理所需要的第二密钥。可以理解的是,生成第二数据对应的第二目标加密数据的电子设备可以为该接收数据获取指令的电子设备(或业务***),也可以不为该接收数据获取指令的电子设备(或业务***),此处不做限制。
该数据获取指令可以为第二客户端发送的,该第二客户端可以为任一客户端,该第二客户端与上述第一客户端可以相同也可以不同,此处不做限制。例如,用户A需要通过业务***A的客户端上传第二目标加密数据并查看,则当用户A基于客户端上传第二目标加密数据并点击指示查看第二目标加密数据对应的明文数据(即第二数据)的控件时,用户A对应的客户端向设置有业务***A的电子设备发送针对第二数据的数据获取指令,该用户A对应的客户端即为上述的第二客户端。又如,用户A通过业务***A的客户端上传第二目标加密数据,若用户B需要查看用户A上传的该第二目标加密数据的明文数据,则用户B点击指示查看第二目标加密数据对应的明文数据(即第二数据)的控件时,用户B对应的客户端向设置有业务***A的电子设备发送针对第二数据的数据获取指令,该用户B对应的客户端即为上述的第二客户端,也就是说,第二客户端可以为上传第二数据对应的第二目标数据的客户端,有可以不为上传第二数据对应的第二目标数据的客户端,此处不做限制。
在一种可能的场景中,用户在配置有该数据安全防护方法的业务***中下载数据时,可以通过图2所示的实施例的方法获取数据对应的目标加密数据,若用户需要对该目标加密数据进行查看时,可以将该目标加密数据可以通过客户端上传至该业务***中,以便于设置有业务***的电子设备对该目标加密数据进行解密处理得到该目标加密数据的明文数据,进而电子设备向客户端返回该目标加密数据的明文数据进行显示。由此使得用户仅能通过该业务***查看由该业务***(或与该业务***互信的其他业务***)进行加密的数据,从而提升数据的安全性。
S302、从第二目标加密数据中获取第二接口调用代码。
其中,该第二接口调用代码用于调用对应的密钥接口以获取对第二数据进行解密处理所需要的第二密钥,也就是对第二数据进行加密处理时的第二密钥。
在一种可能的实施方式中,从第二目标加密数据中获取第二接口调用代码,可以确定第二目标加密数据中的关键标识对的方式来对确定第二接口调用代码的位置,从而快速获取第二接口调用代码。这是由于在生成的第二目标加密数据时,在第二接口调用代码的前后添加了关键标识对,其中针对关键标识对的相关描述可以参照S204的相关描述,此处不做限制。
可选的,若在生成第二目标加密数据时,是通过在第二接口调用代码的前后添加关键标识对后,将添加关键标识对后的第二接口调用代码添加至第二加密数据中得到第二目标加密数据,则从第二目标加密数据中获取第二接口调用代码,可以包括以下步骤:确定第二目标加密数据中的关键标识对,将关键标识对之间的数据确定为第二接口调用代码。例如,第二目标加密数据为:xxxxxxx¥@密ttttttttt¥@密xxxxxxx,关键标识对中的两个特殊标识符号均为“¥@密”,则将两个“¥@密”之间的数据确定为第二接口调用代码,即第二接口调用代码为:ttttttttt。
可选的,若在生成第二目标加密数据时,是通过在第二接口调用代码的前后添加关键标识对后,将添加关键标识对后的第二接口调用代码进行加密处理得到对应的加密调用代码,进而将加密调用代码添加至第一加密数据中得到第一目标加密数据,则从第二目标加密数据中获取第二接口调用代码,又可以包括以下步骤:对第二目标加密数据进行解密处理,根据解密处理后的第二目标加密数据中确定关键标识对,将解密处理后的第二目标加密数据中的关键标识对之间的数据确定为第二接口调用代码。可以理解的是,对第二目标加密数据进行解密处理所采用的解密方法与对添加关键标识对后的第二接口调用代码进行加密处理所采用的加密方法相对应。例如,第二目标加密数据为:xxxxxxx77+lQOWvhnR0dHR0dHR0dO+/pUDlr4Y=xxxxxxx,关键标识对中的两个特殊标识符号均为“¥@密”,则对第二目标加密数据进行解密处理,如采用Base64解密处理得到解密后的第二目标加密数据中包括数据:¥@密ttttttttt¥@密,则将两个“¥@密”之间的数据确定为第二接口调用代码,即第二接口调用代码为:ttttttttt。
可选的,若在根据第二加密数据与第二接口调用代码组合得到第二目标加密数据时,是先对第二调用代码进行加密处理,进而在加密处理后的第二调用代码的前后添加关键标识对,从而将添加了关键标识对的加密处理后的第二调用代码添加至第二加密数据中以得到第二目标加密数据,则从第二目标加密数据中获取第二接口调用代码,又可以包括以下步骤:确定第二目标加密数据中的关键标识对,对关键标识对之间的数据进行解密处理得到第二接口调用代码。
S303、根据第二接口调用代码中的密钥接口地址调用对应的密钥接口,得到对第二加密数据进行解密处理所需的第二密钥。
其中,该第二密钥可以为对第二加密数据进行解密处理所需要的密钥,该第二接口调用代码中的接口参数的参数值可以指示获取第二密钥的密钥接口地址。
在一种可能的实施方式中,步骤S303可以包括以下步骤:①根据第二接口调用代码中的密钥接口地址向对应的密钥接口发送密钥获取请求;②接收密钥***返回的对第二加密数据进行解密处理所需的第二密钥;第二密钥是密钥接口对第二密钥的有效时长验证通过后密钥***返回的,密钥接口是根据第二密钥的生成时间和密钥接口被调用的时间之间的时间差与第二密钥的有效时长进行对比以验证第二密钥的有效时长。
其中,该密钥获取请求用于指示获取对第二加密数据进行解密处理所需的第二密钥。可以理解的是,密钥接口在对密钥获取请求进行验证通过后,密钥***可以根据密钥接口地址所包括的唯一数据标识从存储区域中获取对应的密钥,即得到第二密钥,并向电子设备返回第二密钥。
具体的,密钥接口对第二密钥的有效时长验证的具体描述可以参照步骤S201中的相关描述,此处不做赘述。可以理解的是,若密钥接口对第二密钥的有效时长验证通过,则密钥***可以获取第二密钥并向电子设备返回第二密钥;若密钥接口对第二密钥的有效时长验证不通过,则可以向电子设备返回提示信息以提示电子设备该密钥接口地址所指示的密钥已超过有效期,以便于电子设备向客户端返回提示信息以提示用户第二密钥超过有效期。
在一种可能的实施方式中,如上述,密钥接口还可以对发送密钥获取请求的电子设备(即接口调用方)的来源、域名等进行验证,若验证通过,则密钥***才从存储区域中获取对应的密钥;若验证不通过,则表示该电子设备不具备对第二加密数据进行解密处理的权限,则密钥***不会从存储区域中获取对应的密钥,从而导致电子设备不能接收到密钥***返回的对第二加密数据进行解密处理所需的第二密钥,由此有助于提升密钥的安全性,避免任意软件或业务***都可以随意获取到对加密数据进行解密处理所需的密钥,提升数据的安全性。
S304、从第二目标加密数据中获取第二加密数据。
其中,从第二目标加密数据中获取第二加密数据可以为从第二目标加密数据中删除添加了关键标识对的第二接口调用代码,或者说删除添加了关键标识对的第二接口调用代码的加密调用代码,则可以得到第二加密数据。
S305、根据第二密钥对第二加密数据进行解密处理,得到第二数据,并将第二数据发送至第二客户端。
其中,根据第二密钥对第二加密数据进行解密处理所采用的解密方法与对第二数据进行加密处理所采用的加密算法相对应,如上述对第二数据进行加密处理所采用的加密算法为AES算法,则根据第二密钥对第二加密数据进行解密处理也可以采用AES算法,此处不做赘述。第二客户端可以接收到返回的第二数据,并显示所获取到的第二数据,从而用户可以通过该客户端查看第二数据。
在一种可能的场景中,本申请实施例可以应用于多个互信的业务***中。其中,互信的业务***用于指示在密钥***对接口调用方进行验证时能够域名、来源等验证通过的业务***。例如,用户1需要从业务***A中下载数据M,然后将数据M发送给用户2,则用户1从业务***A中下载数据M时可以通过图2所示的实施例的方法得到数据M对应的目标加密数据,进而由于数据M已经被加密,用户1将数据M对应的目标加密数据发送给用户2的整个过程可以保障数据的安全性,用户2在查看数据M时,用户2仅能通过业务***A或者与业务***互信的其他***进行查看,如用户2将数据上传至与业务***A互信的业务***B中,并通过业务***B查看数据M时,业务***B可以通过图3所示方法获取对应的密钥以对数据M对应的目标加密数据进行解密处理,并且在获取密钥时密钥接口可以对业务***B的设备标识以及域名信息等进行验证,若验证通过则表示业务***B与业务***A是互信的,能够对数据M对应的目标加密数据进行解密处理,进而用户2能够通过业务***B查看数据M。可以理解的是,若用户2将数据M的目标加密数据上传至与业务***A不互信的业务***C以查看数据M时,由于业务***C与业务***A不互信,则业务***对应的电子设备在调用密钥接口时,密钥接口对接口调用方验证不通过,进而无法查看数据M,由此可以大大提升数据的安全性。可以理解的是,不同文件数据可以授权给对应的业务***解密,同一文件可以给不同的业务***解密,由此有助于增强各个业务***的文件的互信性和文件的隔离性,业务***与业务***之间数据交信度可以细化到文件维度,既可以加强***之间的安全性又可以避免之间的壁垒。
本申请实施例能够当检测到针对第二数据的数据获取指令时,获取第二数据对应的第二目标加密数据,进而从第二目标加密数据中获取第二接口调用代码,以根据第二接口调用代码中的密钥接口地址调用对应的密钥接口,得到对第二加密数据进行解密处理所需的第二密钥,然后根据第二密钥对第二加密数据进行解密处理,得到第二数据。由此可以通过对第二数据的目标加密数据进行解密处理,使得用户对下载得到的加密后的数据上传至业务***中进行查看,避免用户通过其他未知软件或***进行查看,并且由于对数据进行加密的数据存储在密钥***中,在进行解密处理时需要调用密钥接口来获取,减少了密钥泄露的风险,有助于提升数据的安全性。
请参见图4,图4是本申请实施例提供的一种数据安全防护装置的结构示意图。可选的,该数据安全防护装置可以设置于上述电子设备中。如图4所示,本实施例中所描述的数据安全防护装置可以包括:
获取单元401,用于当接收到第一客户端发送的针对第一数据的数据下载指令时,从密钥***获取针对所述第一数据的第一密钥以及所述第一密钥的密钥接口地址;
处理单元402,用于通过所述第一密钥对所述第一数据进行加密处理,得到第一加密数据;
所述处理单元402,还用于根据所述第一密钥的密钥接口地址生成对应的第一接口调用代码,所述第一接口调用代码用于在对所述第一加密数据进行解密处理时根据所述第一密钥的密钥接口地址调用对应的密钥接口以获取所述第一密钥;
所述处理单元402,还用于根据所述第一加密数据与所述第一接口调用代码组合得到第一目标加密数据,并将所述第一目标加密数据发送至所述第一客户端。
在一种实现方式中,所述处理单元402,还用于:
当检测到针对第二数据的数据获取指令时,获取所述第二数据对应的第二目标加密数据;所述数据获取指令为第二客户端发送的,所述第二目标加密数据根据第二加密数据以及第二接口调用代码组合得到;
从所述第二目标加密数据中获取第二接口调用代码;
根据所述第二接口调用代码中的密钥接口地址调用对应的密钥接口,得到对所述第二加密数据进行解密处理所需的第二密钥;
从所述第二目标加密数据中获取第二加密数据;
根据所述第二密钥对所述第二加密数据进行解密处理,得到所述第二数据,并将所述第二数据发送至所述第二客户端。
在一种实现方式中,所述处理单元402,具体用于:
根据所述第二接口调用代码中的密钥接口地址向对应的密钥接口发送密钥获取请求;
接收所述密钥***返回的对所述第二加密数据进行解密处理所需的第二密钥;所述第二密钥是所述密钥接口对所述第二密钥的有效时长验证通过后所述密钥***返回的,所述密钥接口是根据所述第二密钥的生成时间和密钥接口被调用的时间之间的时间差与第二密钥的有效时长进行对比以验证所述第二密钥的有效时长。
在一种实现方式中,所述处理单元402,具体用于:
在所述第一接口调用代码的前后添加关键标识对,所述关键标识对用于标识所述第一接口调用代码的位置;
将添加关键标识对后的第一接口调用代码添加至所述第一加密数据中,得到第一目标加密数据。
在一种实现方式中,所述处理单元402,具体用于:
在所述第一接口调用代码的前后添加关键标识对,所述关键标识对用于标识所述第一接口调用代码的位置;
对添加关键标识对后的第一接口调用代码进行加密处理,得到加密调用代码;
将所述加密调用代码添加至所述第一加密数据中,得到第一目标加密数据。
在一种实现方式中,所述处理单元402,具体用于:
获取初始接口调用代码,所述初始接口调用代码包括接口调用逻辑,所述接口调用逻辑用于调用接口参数的参数值所指示的密钥接口;
根据所述第一密钥的密钥接口地址对所述接口参数的参数值进行更新,并将更新后的初始接口调用代码确定为第一接口调用代码。
在一种实现方式中,所述处理单元402,具体用于:
向所述密钥***发送密钥生成指令;
接收所述密钥***返回的针对所述第一数据的第一密钥以及所述第一密钥的密钥接口地址;所述第一密钥的密钥接口地址中包括所述第一数据的唯一数据标识,所述唯一数据标识为所述密钥***生成的。
请参见图5,图5是本申请实施例提供的一种电子设备的结构示意图。本实施例中所描述的电子设备,包括:处理器501、存储器502。可选的,该电子设备还可包括网络接口或供电模块等结构。上述处理器501、存储器502之间可以交互数据。
上述处理器501可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述网络接口可以包括输入设备和/或输出设备,例如该输入设备是可以是控制面板、麦克风、接收器等,输出设备可以是显示屏、发送器等,此处不一一列举。例如,在申请实施例中,该网络接口可包括接收器和发送器。
上述存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供程序指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。其中,所述处理器501调用所述程序指令时用于执行:
当接收到第一客户端发送的针对第一数据的数据下载指令时,从密钥***获取针对所述第一数据的第一密钥以及所述第一密钥的密钥接口地址;
通过所述第一密钥对所述第一数据进行加密处理,得到第一加密数据;
根据所述第一密钥的密钥接口地址生成对应的第一接口调用代码,所述第一接口调用代码用于在对所述第一加密数据进行解密处理时根据所述第一密钥的密钥接口地址调用对应的密钥接口以获取所述第一密钥;
根据所述第一加密数据与所述第一接口调用代码组合得到第一目标加密数据,并将所述第一目标加密数据发送至所述第一客户端。
在一种实现方式中,所述处理器501,还用于:
当检测到针对第二数据的数据获取指令时,获取所述第二数据对应的第二目标加密数据;所述数据获取指令为第二客户端发送的,所述第二目标加密数据根据第二加密数据以及第二接口调用代码组合得到;
从所述第二目标加密数据中获取第二接口调用代码;
根据所述第二接口调用代码中的密钥接口地址调用对应的密钥接口,得到对所述第二加密数据进行解密处理所需的第二密钥;
从所述第二目标加密数据中获取第二加密数据;
根据所述第二密钥对所述第二加密数据进行解密处理,得到所述第二数据,并将所述第二数据发送至所述第二客户端。
在一种实现方式中,所述处理器501,具体用于:
根据所述第二接口调用代码中的密钥接口地址向对应的密钥接口发送密钥获取请求;
接收所述密钥***返回的对所述第二加密数据进行解密处理所需的第二密钥;所述第二密钥是所述密钥接口对所述第二密钥的有效时长验证通过后所述密钥***返回的,所述密钥接口是根据所述第二密钥的生成时间和密钥接口被调用的时间之间的时间差与第二密钥的有效时长进行对比以验证所述第二密钥的有效时长。
在一种实现方式中,所述处理器501,具体用于:
在所述第一接口调用代码的前后添加关键标识对,所述关键标识对用于标识所述第一接口调用代码的位置;
将添加关键标识对后的第一接口调用代码添加至所述第一加密数据中,得到第一目标加密数据。
在一种实现方式中,所述处理器501,具体用于:
在所述第一接口调用代码的前后添加关键标识对,所述关键标识对用于标识所述第一接口调用代码的位置;
对添加关键标识对后的第一接口调用代码进行加密处理,得到加密调用代码;
将所述加密调用代码添加至所述第一加密数据中,得到第一目标加密数据。
在一种实现方式中,所述处理器501,具体用于:
获取初始接口调用代码,所述初始接口调用代码包括接口调用逻辑,所述接口调用逻辑用于调用接口参数的参数值所指示的密钥接口;
根据所述第一密钥的密钥接口地址对所述接口参数的参数值进行更新,并将更新后的初始接口调用代码确定为第一接口调用代码。
在一种实现方式中,所述处理器501,具体用于:
向所述密钥***发送密钥生成指令;
接收所述密钥***返回的针对所述第一数据的第一密钥以及所述第一密钥的密钥接口地址;所述第一密钥的密钥接口地址中包括所述第一数据的唯一数据标识,所述唯一数据标识为所述密钥***生成的。
可选的,该程序指令被处理器执行时还可实现上述实施例中方法的其他步骤,这里不再赘述。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述方法,比如执行上述电子设备执行的方法,此处不赘述。
可选的,本申请涉及的存储介质如计算机可读存储介质可以是非易失性的,也可以是易失性的。
可选的,该计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。其中,本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法的实施例中所执行的步骤。例如,该计算机设备可以为终端,或者可以为服务器。
以上对本申请实施例所提供的一种数据安全防护方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。