具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所描述计算节点可以为电子设备,电子设备可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、行车记录仪、服务器、笔记本电脑、移动互联网设备(MID,Mobile Internet Devices)或穿戴式设备(如智能手表、蓝牙耳机)等,上述仅是举例,而非穷举,包含但不限于上述电子设备,该电子设备也可以为云服务器,或者,该电子设备也可以为计算机集群。
本申请实施例中,SM4即SM4分组密码算法,其是一个迭代分组密码算法,由加解密算法和密钥扩展算法组成。
本申请实施例中,可信数据空间可以保证其内部存储数据的隐私和安全,防止内部数据被篡改和访问。可信执行环境可以是中央处理器(Central Processing Unit/Processor,CPU)厂商提供的硬件隔离技术方案,其可以在计算机上开辟一个安全的计算空间。在计算空间内部,数据和程序均为密态执行,且执行的结果可以加密保存到磁盘上,可以有效杜绝计算安全问题。可信数据空间可以理解为,应用了可信执行环境的相关安全特性来保护内部数据和程序的安全。
相关技术中,可信数据空间的授权过程主要包括业务层访问控制和密钥授权两类方案。第一种方案(业务层访问控制方案)通过在应用层指定数据的访问规则来实现数据授权,即用户或应用在访问可信数据空间时首先基于规则判断当前用户或应用与目标数据指定的权限是否匹配,如果不匹配则拒绝访问。第二种方案(密钥授权方案)则是首先对原始数据进行加密,再通过管理用来加密数据的密钥来实现对数据的访问控制,即拥有合法密钥的用户才可以访问目标数据。
对于第一种方案,业务系统需要存储元数据信息以及访问控制规则,而这些信息往往存储在业务数据库中,因此,该方案主要面临两种风险:1)由于业务系统一般会暴露在公开环境下供应用程序访问,往往面临多种外部攻击(如分布式拒绝服务攻击(Distributed Denial of Service attack,DDoS)、提权攻击、漏洞利用等),容易导致元数据信息和访问规则的泄露,最终导致原始数据的泄露;2)存储上述信息的数据库管理员往往有较高的数据访问权限,由此带来权限绕过及数据泄露风险。
对于第二种方案,由于需要通过私钥来授权用户访问可信数据空间的数据,因此,被授权的用户或应用需要存储对应的密钥,该方案一方面会增加用户端的密钥管理成本,另一方面容易产生由用户密钥丢失导致的原始数据泄露风险。此外,该第二种方案通过密钥管理来实现数据授权,将涉及到公钥基础设施(Public Key Infrastructure,PKI)的搭建和维护,需要通过维护证书撤销列表来完成密钥撤销操作。当需要频繁的密钥分发和撤销来操作管理用户权限时,将给系统的灵活性带来较大瓶颈。
为了解决相关技术中的缺陷,本申请实施例提供一种应用于可信数据空间的数据授权管理方法,其可以包括如下步骤:
基于可信执行环境,采用密钥派生算法派生出根密钥;
使用随机数发生器生成数据加密密钥;
通过所述根密钥加密所述数据加密密钥得到第一密文结果,并将所述第一密文结果保存在所述可信执行环境内;
获取用户创建的第一口令码;
采用所述密钥派生算法确定所述第一口令码对应的第一用户密钥;
使用所述第一用户密钥加密所述第一用户密钥,得到第一密文值,并将所述第一密文值保存在所述可信执行环境内;
在所述用户向所述可信执行环境请求根密钥时,使用所述根密钥解密所述第一密文结果,得到所述数据加密密钥;
根据所述第一用户密钥加密所述数据加密密钥,得到第二密文结果。
可以看出,本申请实施例中所描述的应用于可信数据空间的数据授权管理方法,基于可信执行环境,采用密钥派生算法派生出根密钥,使用随机数发生器生成数据加密密钥,通过根密钥加密数据加密密钥得到第一密文结果,并将第一密文结果保存在可信执行环境内,获取用户创建的第一口令码,采用密钥派生算法确定第一口令码对应的第一用户密钥,使用第一用户密钥加密第一用户密钥,得到第一密文值,并将第一密文值保存在可信执行环境内,在用户向可信执行环境请求根密钥时,使用根密钥解密第一密文结果,得到数据加密密钥,根据第一用户密钥加密数据加密密钥,得到第二密文结果,如此,在TEE内部创建用于加密数据的系统密钥(根密钥),在该系统密钥的基础上,进一步基于用户口令派生用户密钥,系统密钥和用户密钥安全存储在TEE内部,用户无需管理,当用户登录可信数据空间时,可通过口令间接访问数据,消除了用户端管理密钥的成本,从而降低了用户/应用端的接入成本,进而,可以提升可信数据空间的数据授权安全性。
下面对本申请实施例进行详细介绍。
请参阅图1,图1是本申请实施例提供的一种应用于可信数据空间的数据授权管理方法的流程示意图,如图所示,本应用于可信数据空间的数据授权管理方法包括:
S101、基于可信执行环境,采用密钥派生算法派生出根密钥。
本申请实施例中,密钥派生算法可以预先设置或者系统默认,例如,密钥派生算法可以包括密钥派生函数(key derivation function,KDF),又例如,密钥派生算法的一种可能实现方式也可以是采用安全的哈希算法实现,如SM3、SHA256等。
本申请实施例中,可以基于可信执行环境(Trusted Execution Environment,TEE)构造灵活的口令-密钥管理以及授权规则管理模块,从而实现安全、细粒度的数据授权。
其中,该根密钥为系统根密钥,该系统根密钥由TEE派生,且无法直接获取。例如,TEE派生得到根密钥rk。
S102、使用随机数发生器生成数据加密密钥。
本申请实施例中,可以使用随机数发生器生成数据加密密钥。例如,使用随机数发生器生成数据加密密钥dek。
S103、通过所述根密钥加密所述数据加密密钥得到第一密文结果,并将所述第一密文结果保存在所述可信执行环境内。
本申请实施例中,可以通过根密钥加密数据加密密钥得到第一密文结果,并将第一密文结果保存在可信执行环境内,即基于第一预设加密算法使用根密钥加密数据加密密钥,得到一个密文结果,并将密文结果保存在TEE内。第一预设加密算法可以预先设置或者系统默认,例如,第一预设加密算法的一种可能实现方式可以是采用安全的对称加密算法实现,如SM4、高级加密标准(Advanced Encryption Standard,AES)等算法。
S104、获取用户创建的第一口令码。
本申请实施例中,可以获取用户创建的第一口令码,即用户创建口令码pin。不同的用户可以对应不同的口令码。不同的口令码则可以派生出不同的用户密钥,用户密钥不直接作用于数据。由于用户间的密钥彼此隔离,且用户密钥不直接作用于数据,因此,用户密钥的新增和销毁不会影响原始数据的访问。当需要取消用户的访问权限时,仅需销毁存储在TEE内的用户密钥。由于用户密钥不存在,因此,后续无法访问数据。该方案使用户权限管理更加高效,提升了密钥管理的灵活性。
S105、采用所述密钥派生算法确定所述第一口令码对应的第一用户密钥。
本申请实施例中,可以采用密钥派生算法确定第一口令码对应的第一用户密钥,第一用户密钥可以记作ukey(1),例如,可以采用密钥派生算法KDF派生得到用户的密钥ukey(1),具体如下:
ukey(1)= KDF(pin)
其中,KDF表示密钥派生算法,pin表示第一口令码,ukey(1)表示第一用户密钥。
S106、使用所述第一用户密钥加密所述第一用户密钥,得到第一密文值,并将所述第一密文值保存在所述可信执行环境内。
本申请实施例中,可以使用第一用户密钥加密第一用户密钥,得到第一密文值,并将第一密文值保存在可信执行环境内,具体实现中,可以使用该第一用户密钥加密自身得到该第一用户密钥的密文值,具体如下:
ukey_cipher=Encrypt(ukey(1), ukey(1))
其中,ukey_cipher表示第一密文值,Encrypt表示加密算法,ukey(1)表示第一用户密钥。
S107、在所述用户向所述可信执行环境请求根密钥时,使用所述根密钥解密所述第一密文结果,得到所述数据加密密钥。
具体实现中,在用户向可信执行环境请求根密钥时,则可获取根密钥,接着,可以使用根密钥解密第一密文结果,得到数据加密密钥。
具体实现中,用户可以向TEE请求根密钥,并使用根密钥恢复数据加密密钥明文,在TEE中管理密钥,降低了用户端由于管理密钥而带来的系统复杂度。
S108、根据所述第一用户密钥加密所述数据加密密钥,得到第二密文结果。
本申请实施例中,可以采用第二预设加密算法,根据第一用户密钥加密数据加密密钥,得到第二密文结果,第二预设加密算法可以预先设置或者系统默认,例如,第二预设加密算法的一种可能实现方式可以是采用安全的对称加密算法实现,如SM4、AES等算法。基于TEE进行可信数据空间的密钥管理,可安全保护密钥。
接着,用户使用自己的用户密钥加密数据加密密钥,具体如下:
dek_cipher=Encrypt(ukey(1), dek)
其中,dek_cipher表示第二密文结果,Encrypt表示加密算法,ukey(1)表示第一用户密钥,dek表示数据加密密钥。接着,可以将数据加密密钥的密文值,即第二密文结果保存在TEE内。
具体实现中,通过步骤S101-步骤S108实现系统初始化及用户密钥初始化流程。本申请实施例中,在TEE内部创建用于加密数据的系统密钥(根密钥),在该系统密钥的基础上,进一步基于用户口令派生用户密钥。系统密钥和用户密钥安全存储在TEE内部,用户无需管理。当用户登录可信数据空间时,可通过口令间接访问数据,消除了用户端管理密钥的成本,从而降低了用户/应用端的接入成本。
可选的,还可以包括如下步骤:
A1、获取第二口令码;
A2、采用所述密钥派生算法确定所述第二口令码对应的第二用户密钥;
A3、根据所述第一密文值和所述第二用户密钥进行解密操作,得到解密结果;
A4、将所述解密结果与所述第二用户密钥进行匹配;
A5、在所述解密结果与所述第二用户密钥匹配成功时,确认所述用户提供正确的口令。
具体实现中,可以获取第二口令码,即在用户需要登录系统时,用户输入口令登录系统。则可以采用密钥派生算法确定第二口令码对应的第二用户密钥,具体如下:
ukey(2)=KDF(pin)
其中,ukey(2)表示第二用户密钥,pin表示第二口令码,KDF表示密钥派生算法。
接着,则可以根据第一密文值和第二用户密钥进行解密操作,得到解密结果,具体如下:
ukey(3)=Decrypt(ukey(2), ukey_cipher)
其中,ukey(3)表示解密结果,ukey(2)表示第二用户密钥,ukey_cipher表示第一密文值,Decrypt表示解密算法。
进一步的,可以将解密结果与第二用户密钥进行匹配,即将解密结果和ukey(2)匹配,若一致,则表明用户提供了正确的口令,若不一致则拒绝该用户登录。
在解密结果与第二用户密钥匹配成功时,确认用户提供正确的口令,即第一口令码与第二口令码相同,反之,则说明第一口令码与第二口令码不相同。
具体实现中,例如,解密结果与第二用户密钥相同,则说明解密结果与第二用户密钥匹配成功,反之,解密结果与第二用户密钥不相同,则说明解密结果与第二用户密钥匹配失败。又例如,解密结果与第二用户密钥之间的匹配值大于预设匹配值,则说明解密结果与第二用户密钥匹配成功,反之,解密结果与第二用户密钥之间的匹配值小于或等于预设匹配值,则说明解密结果与第二用户密钥匹配失败,预设匹配值可以预先设置或者系统默认。
本申请实施例中,将数据加密密钥和用户身份解耦,使系统用户创建和删除不影响保存在可信数据空间内的数据,进一步解决了由于频繁密钥分发和撤销导致需要维护密钥撤销列表而导致的系统灵活性问题,另外,用户通过口令登录可信数据空间,降低了用户端需要维护管理密钥的带来的系统复杂度,也降低了系统的接入成本。
可选的,还可以包括如下步骤:
根据所述第二用户密钥对所述第二密文结果进行解密操作,得到所述数据加密密钥。
具体实现中,可以根据第二用户密钥对第二密文结果进行解密操作,得到数据加密密钥,即使用用户密钥解密,以得到数据加密密钥,具体如下:
dek=Decrypt(ukey(2), dek_cipher)
其中,dek表示数据加密密钥,Decrypt表示解密算法,dek_cipher表示第二密文结果,ukey(2)表示第二用户密钥。
具体实现中,用户登录系统并获取数据加密密钥dek,有助于使用dek解密数据头,根据解密得到的授权规则判断该用户是否有访问相应数据的权限。
可选的,还可以包括如下步骤:
B1、获取所述用户针对目标数据的目标授权规则;
B2、根据所述目标数据和所述目标授权规则确定待加密数据;
B3、根据所述数据加密密钥对所述待加密数据进行加密,得到加密结果,将所述加密结果保存在所述可信执行环境内。
其中,目标数据可以预先设置或者系统默认。目标授权规则也可以预先设置或者系统默认。目标授权规则可以包括以下至少一种:可访问用户范围、文件可访问时间、文件可访问次数等等,在此不做限定。
其中,目标授权规则可以理解为针对可信数据空间的数据访问控制规则。
具体实现中,可以获取用户针对目标数据的目标授权规则,再根据目标数据和目标授权规则确定待加密数据,再采用第三预设加密算法,根据数据加密密钥对待加密数据进行加密,得到加密结果,将加密结果保存在可信执行环境内,进而,完成数据加密流程,通过加密存储元数据信息和授权规则,避免数据授权规则被攻击者获取和篡改,另外,通过将所有密钥完全托管在TEE内部,解决了由于引PKI公钥基础设施带来的灵活性下降和成本上升问题。
本申请实施例中所描述的方法,可以实现用户和数据的细粒度授权,同时防止外部攻击和内部高权限管理员造成的数据泄露,降低应用端的密钥管理成本。
其中,第三预设加密算法可以预先设置或者系统默认,例如,第三预设加密算法的一种可能实现方式可以是采用安全的对称加密算法实现,如SM4、AES等算法。
其中,第一预设加密算法、第二预设加密算法、第三预设加密算法可以部分或者全部相同,也可以完全不同。
举例说明下,用户提供数据的授权规则,在创建新数据时,将目标授权规则作为数据头写入文件,以及将目标数据一并写入该文件,得到数据明文text,然后,使用数据加密密钥加密数据明文text,具体如下:
cipher=Encrypt(dek, text)
其中,cipher表示加密结果,text表示数据明文,Encrypt表示加密算法。接着,可以再将加密结果cipher保存在TEE内。
可选的,上述步骤B2,根据所述目标数据和所述目标授权规则确定待加密数据,可以包括如下步骤:
B21、将所述目标授权规则作为数据头写入文件;
B22、将所述目标数据作为数据内容写入所述文件,得到所述待加密数据。
本申请实施例中,可以将目标授权规则作为数据头写入文件,再将目标数据作为数据内容写入文件,得到待加密数据,即使用TEE和密码算法保护授权规则内容,将数据授权规则与数据一同写入并加密,解决了外部攻击下元数据和授权规则无法保证安全性的问题。
可选的,还可以包括如下步骤:
C1、根据所述数据加密密钥解密所述数据头,得到所述目标授权规则;
C2、根据所述目标授权规则判断所述用户是否具备访问相应数据的权限;
C3、在根据所述目标授权规则判断所述用户具备访问相应数据的权限时,继续解密操作;
C4、在根据所述目标授权规则判断所述用户不具备访问相应数据的权限时,终止解密操作。
本申请实施例中,根据数据加密密钥解密数据头,得到目标授权规则,根据目标授权规则判断用户是否具备访问相应数据的权限,在根据目标授权规则判断用户具备访问相应数据的权限时,继续解密操作,在根据目标授权规则判断用户不具备访问相应数据的权限时,终止解密操作,进而,完成数据解密流程,即可以使用dek解密数据头,根据解密得到的授权规则判断该用户是否有访问相应数据的权限。若没有访问权限,则终止解密;如有访问权限,则继续解,进而,用户使用数据加密密钥解密数据得到明文数据。
本申请实施例中,在TEE中管理密钥,降低了用户端由于管理密钥而带来的系统复杂度,另外,将数据授权规则与数据内容融合加密,杜绝了明文保存数据授权信息造成的可信数据空间内授权规则不可信的问题。
可选的,还可以包括如下步骤:
在所述解密结果与所述第二用户密钥匹配失败时,确认所述用户提供错误的口令,拒绝所述用户登录。
本申请实施例中,在解密结果与第二用户密钥匹配失败时,则说明第一口令码与第二口令码不一致,即用户提供错误的口令,拒绝用户登录。
本申请实施例中,基于可信执行环境构造灵活的口令-密钥管理以及授权规则管理模块,从而实现安全、细粒度的数据授权。主要思路如下:首先,在TEE内部创建用于加密数据的系统密钥,在该系统密钥的基础上,进一步基于用户口令派生用户密钥。系统密钥和用户密钥安全存储在TEE内部,用户无需管理。当用户登录可信数据空间时,可通过口令间接访问数据,消除了用户端管理密钥的成本,从而降低了用户/应用端的接入成本。其次,通过加密存储元数据信息和访问规则,避免数据授权规则被攻击者获取和篡改;最后,通过将所有密钥完全托管在TEE内部,解决了由于引PKI公钥基础设施带来的灵活性下降和成本上升问题。
举例说明下,本申请实施例中,可以对保存在可信数据空间内的数据加密以防止任意读取。如图2所示,相应数据采用数据加密密钥加密。数据加密密钥使用随机数发生器生成,初始状态下的数据加密密钥被系统根密钥加密并保存在TEE环境内。系统根密钥由TEE派生,且无法直接获取。
具体实现中,可信数据空间的系统用户各自拥有用户密钥,例如,用户A口令码派生得到用户A密钥,用户B口令码派生得到用户B密钥,用户C口令码派生得到用户C密钥。基于可信执行环境,采用密钥派生算法派生出根密钥rk,密钥导出密钥ek,使用随机数发生器生成随机数,采用ek对随机数加密,得到数据加密密钥dek。根密钥rk加密数据加密密钥dek,可以得到第一密文结果。采用数据加密密钥dek加密数据,得到加密结果。
具体实现中,用户密钥在生成时,首先向TEE环境请求数据加密密钥dek,然后使用用户密钥加密该数据加密密钥dek,并将数据加密密钥dek的密文保存在TEE中。其中,用户密钥由用户的口令码派生,同样以密文形式存储于TEE。当用户需要使用数据时,首先通过自身口令获取用户密钥,然后,解密得到数据加密密钥,最后解密得到数据明文。
其中,密钥导出密钥ek和数据加密密钥dek均可采用随机数发生器生成。ek和dek均可以为对称密钥,对称密钥一般为随机数发生器生成的随机数,毋需再经过额外处理。生成的随机数的大小和具体密钥算法相关,如SM4对称算法的密钥为16字节,AES-128对称算法的密钥长度也为16字节,因此,随机数发生器需要生成对应长度的随机数以将其作为密钥。
再举例说明下,如图3所示,目标授权规则可以包括:1、可访问用户范围;2、文件可访问时间;3、文件可访问次数。数据加密密钥可以加密文件,该文件可以包括文件头和文件内容,文件头由目标授权规则写入,文件内容即数据内容,数据的授权规则随数据内容一并被数据加密密钥加密保护。当用户请求访问该数据时,首先需要提供正确的用户密钥解密访问规则。解密成功后,通过查询授权规则进一步判断该用户是否可访问相应数据。
可以看出,本申请实施例中所描述的应用于可信数据空间的数据授权管理方法,基于可信执行环境,采用密钥派生算法派生出根密钥,使用随机数发生器生成数据加密密钥,通过根密钥加密数据加密密钥得到第一密文结果,并将第一密文结果保存在可信执行环境内,获取用户创建的第一口令码,采用密钥派生算法确定第一口令码对应的第一用户密钥,使用第一用户密钥加密第一用户密钥,得到第一密文值,并将第一密文值保存在可信执行环境内,在用户向可信执行环境请求根密钥时,使用根密钥解密第一密文结果,得到数据加密密钥,根据第一用户密钥加密数据加密密钥,得到第二密文结果,如此,在TEE内部创建用于加密数据的系统密钥(根密钥),在该系统密钥的基础上,进一步基于用户口令派生用户密钥,系统密钥和用户密钥安全存储在TEE内部,用户无需管理,当用户登录可信数据空间时,可通过口令间接访问数据,消除了用户端管理密钥的成本,从而降低了用户/应用端的接入成本,进而,可以提升可信数据空间的数据授权安全性。
与上述实施例一致地,请参阅图4,图4是本申请实施例提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,本申请实施例中,上述程序包括用于执行以下步骤的指令:
基于可信执行环境,采用密钥派生算法派生出根密钥;
使用随机数发生器生成数据加密密钥;
通过所述根密钥加密所述数据加密密钥得到第一密文结果,并将所述第一密文结果保存在所述可信执行环境内;
获取用户创建的第一口令码;
采用所述密钥派生算法确定所述第一口令码对应的第一用户密钥;
使用所述第一用户密钥加密所述第一用户密钥,得到第一密文值,并将所述第一密文值保存在所述可信执行环境内;
在所述用户向所述可信执行环境请求根密钥时,使用所述根密钥解密所述第一密文结果,得到所述数据加密密钥;
根据所述第一用户密钥加密所述数据加密密钥,得到第二密文结果。
可选的,上述程序还包括用于执行以下步骤的指令:
获取第二口令码;
采用所述密钥派生算法确定所述第二口令码对应的第二用户密钥;
根据所述第一密文值和所述第二用户密钥进行解密操作,得到解密结果;
将所述解密结果与所述第二用户密钥进行匹配;
在所述解密结果与所述第二用户密钥匹配成功时,确认所述用户提供正确的口令。
可选的,上述程序还包括用于执行以下步骤的指令:
根据所述第二用户密钥对所述第二密文结果进行解密操作,得到所述数据加密密钥。
可选的,上述程序还包括用于执行以下步骤的指令:
获取所述用户针对目标数据的目标授权规则;
根据所述目标数据和所述目标授权规则确定待加密数据;
根据所述数据加密密钥对所述待加密数据进行加密,得到加密结果,将所述加密结果保存在所述可信执行环境内。
可选的,在所述根据所述目标数据和所述目标授权规则确定待加密数据方面,上述程序包括用于执行以下步骤的指令:
将所述目标授权规则作为数据头写入文件;
将所述目标数据作为数据内容写入所述文件,得到所述待加密数据。
可选的,上述程序还包括用于执行以下步骤的指令:
根据所述数据加密密钥解密所述数据头,得到所述目标授权规则;
根据所述目标授权规则判断所述用户是否具备访问相应数据的权限;
在根据所述目标授权规则判断所述用户具备访问相应数据的权限时,继续解密操作;
在根据所述目标授权规则判断所述用户不具备访问相应数据的权限时,终止解密操作。
可选的,上述程序还包括用于执行以下步骤的指令:
在所述解密结果与所述第二用户密钥匹配失败时,确认所述用户提供错误的口令,拒绝所述用户登录。
可以看出,本申请实施例中所描述的电子设备,基于可信执行环境,采用密钥派生算法派生出根密钥,使用随机数发生器生成数据加密密钥,通过根密钥加密数据加密密钥得到第一密文结果,并将第一密文结果保存在可信执行环境内,获取用户创建的第一口令码,采用密钥派生算法确定第一口令码对应的第一用户密钥,使用第一用户密钥加密第一用户密钥,得到第一密文值,并将第一密文值保存在可信执行环境内,在用户向可信执行环境请求根密钥时,使用根密钥解密第一密文结果,得到数据加密密钥,根据第一用户密钥加密数据加密密钥,得到第二密文结果,如此,在TEE内部创建用于加密数据的系统密钥(根密钥),在该系统密钥的基础上,进一步基于用户口令派生用户密钥,系统密钥和用户密钥安全存储在TEE内部,用户无需管理,当用户登录可信数据空间时,可通过口令间接访问数据,消除了用户端管理密钥的成本,从而降低了用户/应用端的接入成本,进而,可以提升可信数据空间的数据授权安全性。
图5是本申请实施例中所涉及的一种应用于可信数据空间的数据授权管理装置500的功能单元组成框图。该应用于可信数据空间的数据授权管理装置500包括:派生单元501、生成单元502、加密单元503、获取单元504、确定单元505、解密单元506,其中,
所述派生单元501,用于基于可信执行环境,采用密钥派生算法派生出根密钥;
所述生成单元502,用于使用随机数发生器生成数据加密密钥;
所述加密单元503,用于通过所述根密钥加密所述数据加密密钥得到第一密文结果,并将所述第一密文结果保存在所述可信执行环境内;
所述获取单元504,用于获取用户创建的第一口令码;
所述确定单元505,用于采用所述密钥派生算法确定所述第一口令码对应的第一用户密钥;
所述加密单元503,还用于使用所述第一用户密钥加密所述第一用户密钥,得到第一密文值,并将所述第一密文值保存在所述可信执行环境内;
所述解密单元506,用于在所述用户向所述可信执行环境请求根密钥时,使用所述根密钥解密所述第一密文结果,得到所述数据加密密钥;
所述加密单元503,还用于根据所述第一用户密钥加密所述数据加密密钥,得到第二密文结果。
可选的,所述应用于可信数据空间的数据授权管理装置500还具体用于:
获取第二口令码;
采用所述密钥派生算法确定所述第二口令码对应的第二用户密钥;
根据所述第一密文值和所述第二用户密钥进行解密操作,得到解密结果;
将所述解密结果与所述第二用户密钥进行匹配;
在所述解密结果与所述第二用户密钥匹配成功时,确认所述用户提供正确的口令。
可选的,所述应用于可信数据空间的数据授权管理装置500还具体用于:
根据所述第二用户密钥对所述第二密文结果进行解密操作,得到所述数据加密密钥。
可选的,所述应用于可信数据空间的数据授权管理装置500还具体用于:
获取所述用户针对目标数据的目标授权规则;
根据所述目标数据和所述目标授权规则确定待加密数据;
根据所述数据加密密钥对所述待加密数据进行加密,得到加密结果,将所述加密结果保存在所述可信执行环境内。
可选的,在所述根据所述目标数据和所述目标授权规则确定待加密数据方面,所述应用于可信数据空间的数据授权管理装置500具体用于:
将所述目标授权规则作为数据头写入文件;
将所述目标数据作为数据内容写入所述文件,得到所述待加密数据。
可选的,所述应用于可信数据空间的数据授权管理装置500还具体用于:
根据所述数据加密密钥解密所述数据头,得到所述目标授权规则;
根据所述目标授权规则判断所述用户是否具备访问相应数据的权限;
在根据所述目标授权规则判断所述用户具备访问相应数据的权限时,继续解密操作;
在根据所述目标授权规则判断所述用户不具备访问相应数据的权限时,终止解密操作。
可选的,所述应用于可信数据空间的数据授权管理装置500还具体用于:
在所述解密结果与所述第二用户密钥匹配失败时,确认所述用户提供错误的口令,拒绝所述用户登录。
可以看出,本申请实施例中所描述的应用于可信数据空间的数据授权管理装置,基于可信执行环境,采用密钥派生算法派生出根密钥,使用随机数发生器生成数据加密密钥,通过根密钥加密数据加密密钥得到第一密文结果,并将第一密文结果保存在可信执行环境内,获取用户创建的第一口令码,采用密钥派生算法确定第一口令码对应的第一用户密钥,使用第一用户密钥加密第一用户密钥,得到第一密文值,并将第一密文值保存在可信执行环境内,在用户向可信执行环境请求根密钥时,使用根密钥解密第一密文结果,得到数据加密密钥,根据第一用户密钥加密数据加密密钥,得到第二密文结果,如此,在TEE内部创建用于加密数据的系统密钥(根密钥),在该系统密钥的基础上,进一步基于用户口令派生用户密钥,系统密钥和用户密钥安全存储在TEE内部,用户无需管理,当用户登录可信数据空间时,可通过口令间接访问数据,消除了用户端管理密钥的成本,从而降低了用户/应用端的接入成本,进而,可以提升可信数据空间的数据授权安全性。
可以理解的是,本实施例的应用于可信数据空间的数据授权管理装置的各程序模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory ,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。