CN115758396B - 基于可信执行环境的数据库安全访问控制技术 - Google Patents
基于可信执行环境的数据库安全访问控制技术 Download PDFInfo
- Publication number
- CN115758396B CN115758396B CN202211066304.9A CN202211066304A CN115758396B CN 115758396 B CN115758396 B CN 115758396B CN 202211066304 A CN202211066304 A CN 202211066304A CN 115758396 B CN115758396 B CN 115758396B
- Authority
- CN
- China
- Prior art keywords
- data
- user
- database
- execution environment
- trusted execution
- 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.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于可信执行环境的数据库安全访问控制技术,实现数据库密钥存储态到计算态的转变、数据分级加密功能;其中,存储密钥动态生成阶段计算密钥参数在可信执行环境内执行,隐私数据加解密操作可选择在可信执行环境内或开放性执行环境执行;其余操作均在前后端开放性执行环境中实现。本发明的有益效果是:具有较高的安全性、较好的实用性,可抵抗恶意代码、特权用户攻击。与传统数据库表集中管理、整表加密、静态密钥存储方法相比,本发明实现了密钥存储态转变为计算态,从数据加解密密钥角度入手,实现了数据库隐私数据权属分离,解决了密钥管理问题,提供隐私数据字段级加密手段的同时,保证了业务数据的正常访问,大幅提高安全性。
Description
技术领域
本发明设计可信执行环境领域,尤其涉及一种基于可信执行环境的数据库安全访问控制技术。
背景技术
随着科技水平的不断提高,越来越多的领域因科技的提升而发生了巨大的改变,其中数据管理领域就是典型的例子。随着大数据时代的到来,众多公司的数据库的规模也变得越来越大,几乎大部分信息***都建立在数据库***上。这使得数据信息更便于管理与查看,也更有利于数据有效性与一致性的维护,极大的提升了公司的工作效率。但在5G、云计算等新兴技术快速发展,数据库***被广泛使用,各企业积极实现信息化,用户通过多渠道访问企业数据的背景下,企业也就面临业务复杂化、攻击常态化等问题,数据的重要性和数据管理的迫切性日益提高,数据库的安全访问控制问题就显得尤为重要。
权限分离指用户与用户之间针对不同访问客体,具有不同的访问与操作权限,是信息安全中一项重要的评价指标,也是国家等级保护测评中重要的一项安全评估指标。目前来说,主流数据库主要采用存储密钥由特权用户集中式管理,对数据库整表加密形式实现安全访问控制,该方法存在存储密钥与特权用户联系紧密、非敏感数据加密额外开销大等问题,面临恶意代码攻击窃取数据和特权用户泄露数据两个方面的威胁。如何实现关系型数据库权限分离安全访问控制方法——对这一问题的研究成为数据库领域急需解决的关键问题之一。
综上所述,基于关系型数据库进行安全访问控制研究,提高数据信息的安全性,保护用户隐私,从战略层面对国产科技长远发展具有重要意义。
发明内容
为了解决上述问题,本发明提供一种基于可信执行环境的数据库安全访问控制技术,基于可信执行环境框架,包括:五个阶段,分别为:用户登陆阶段、用户信息更新阶段、存储密钥动态生成阶段、隐私数据操作阶段、业务数据访问阶段;
其中,用户登录阶段将用户端输入用户信息传输至数据库端,识别合法数据拥有方,从而建立前端与数据库可靠通信;
存储密钥动态生成阶段生成数据拥有方专属的存储密钥。特别地,在该阶段技术通过结合个人身份信息与预定义主密钥在可信执行环境中通过某种消息摘要算法动态生成用户存储密钥,该存储密钥将用于后续数据读取以及用户隐私数据的加解密;
用户信息更新阶段将用户端输入更新的用户信息传输至数据库端,从而更新数据拥有方对应的密文隐私数据;
隐私数据操作阶段实现密文存储的隐私数据提取解密、明文输入的隐私数据加密写入功能,满足数据库字段级细粒度加密需求;
业务数据访问阶段实现数据库表非隐私数据并行直接操作功能。
其中,仅有存储密钥动态生成阶段根据用户信息与主密钥计算存储密钥参数限制在可信执行环境内部执行,而用户隐私数据提取解密或输入加密阶段对部分隐私数据加密可选择在可信执行环境内执行或在外部开放式执行环境执行;其余操作均在前端以及后端开放性执行环境中实现。进一步地,所述用户登录阶段具体流程如下:
S11:初始化客户端,并进行注册;
S12:从前端获取用户输入的UNi、PWi;其中UNi、PWi分别表示用户i的用户名和密码。用户端输入用户名,密码,并获取当前时间戳TS1;
S13:用户端获取当前时间戳TS1;
S14:用户端将m1={UNi,PWi,TS1}发送给远端数据库管理技术,由可信执行环境管理机构调用接口接收。其中可信执行环境管理机构,具体指:在数据库管理技术中部署的可信执行环境环境及交互式程序接口,特别的,在可信执行环境安全区内部编写实现某种消息摘要算法以及某种对称加密算法,同时在其内部保存有合法数据拥有方与数据库表存储密钥的映射关系表;
S15:可信执行环境管理机构接收到m1后,验证时间戳TS1是否有效,若无效则拒绝建立通信,若有效则检查请求用户名是否在预存储的映射表单中存在合法映射关系记录,若存在则获取数据拥有方所在表存储密钥PCDi以及当前时间戳TS2;其中时间戳有效,具体指:当前时间戳与待验证的时间戳之差小于通信传播的最大时间传输延迟;
S16:可信执行环境管理机构将获取的表存储密钥PCDi通过接口传至远端数据库管理技术。
S17:数据库管理技术通过接收到的PCDi查找得到对应数据拥有方所在数据库对应表。由于在关系型数据库中,整表可能存储多个数据拥有方的记录,仅将表中该数据拥有方相对应记录以子表形式返回给用户端。
进一步地,所述存储密钥动态生成阶段具体流程如下:
S21:远端数据库管理技术将m2={UNi,PWi,,TS2}发送给可信执行环境管理机构,可信执行环境管理机构接收到m2后,验证时间戳TS2是否有效,若无效则拒绝执行存储密钥生成操作,若有效则进行UNi||PWi操作;其中||表示按位连接;
S22:可信执行环境管理机构通过调用预设函数接口将UNi||PWi传入可信执行环境框架的安全区中;
S23:在安全区使用内部预先编写实现的某种消息摘要算法对用户名、密码以及预设的主密钥进行混合加密,生成数据拥有方专属的存储密钥CPWi,在数据拥有方个人信息不发生改变的情况下,每次动态生成的存储密钥均保持一致;
S24:在用户操作各阶段,可信执行环境管理机构始终在安全区内保存该数据拥有方专属的存储密钥CPWi。
进一步地,所述用户口令更新阶段,具体流程为:
S31:用户端将数据拥有方对应更新前用户名UN1以及对应密码PW1发送至可信执行环境管理机构,在安全区内通过调用消息摘要算法对用户名、密码以及预设的主密钥进行混合加密,生成数据拥有方旧存储密钥CPW1,同时查找映射表单中映射关系记录获取对应数据库表存储密钥PCDi;
S32:数据库管理技术通过接收到的PCDi查找得到对应数据拥有方所在数据库表,并将表中该数据拥有方相对应记录以子表形式传送至可信执行环境管理机构。
S33:用户端将数据拥有方更新后密码PW2发送至可信执行环境管理机构,在安全区内通过调用消息摘要算法对用户名、密码以及预设的主密钥进行混合加密,生成数据拥有方新存储密钥CPW2;
S34:在可信执行环境管理机构中,调用脚本获取到数据拥有方对应全部密文存储隐私数据,在安全区中通过旧存储密钥CPW1进行解密,再通过新存储密钥CPW2进行加密,得到更新后的隐私数据密文;
S35:操作完成后,程序将再次调用脚本连接数据库,通过gsql命令将完成隐私数据更新的数据拥有方对应子表记录传输回数据库并由存储过程更新总数据表。
进一步地,所述数据拥有方隐私数据操作阶段包括明文输入的隐私数据加密写入、密文存储的隐私数据提取解密阶段,其中明文输入隐私数据加密写入阶段,具体流程为:
S41:用户端技术程序运行脚本连接数据库,在用户存在的数据库表中通过存储程序等生成并导出含有用户个人信息数据库表对应子表,保存成文件,存储至程序所在的目录下;
S42:以上工作完成后,数据拥有方可选择查看、加密或解密个人信息。当用户选择隐私数据的写入/修改操作时,数据拥有方在用户端输入添加或更改的隐私数据CT,并获取最新时间戳TS1;
S43:用户端在可靠环境内将m1={CT,TS1}发送给远端数据库管理技术,由可信执行环境管理机构调用接口接收;
S44:可信执行环境管理机构在接收到m1后,首先检查时间戳TS1是否有效,若无效则拒绝进一步操作,若有效则根据用户请求在安全区内调用预先编写的对称加密算法将隐私数据CT与存储密钥动态生成阶段保存数据拥有方专属存储密钥CPWi加密,得到对应密文PT;
S45:操作完成后,由可信执行环境管理机构将加密后隐私数据返回给用户端,实现在用户端隐私数据本地写入或更新。
S46:程序将再次调用脚本连接数据库,通过gsql命令将操作后的数据拥有方对应子表记录传输回数据库并由存储过程更新总数据表。
S47:若实际安全访问控制框架允许隐私数据相关操作于外部开放性环境中执行,则该阶段由用户端调用接口请求可信执行环境管理机构发送用户存储密钥CPWi,并在用户端进行相对应对称加密过程,再将密文数据PT传输至远端数据库管理***执行存储。
进一步地,所述数据拥有方隐私数据操作阶段包括明文输入的隐私数据加密写入、密文存储的隐私数据提取解密阶段,其中密文存储隐私数据提取解密阶段,具体流程为:
S51:用户端技术程序运行脚本连接数据库,在用户存在的数据库表中通过存储程序等生成并导出含有用户个人信息数据库表对应子表,保存成文件,存储至程序所在的目录下;
S52:以上工作完成后,数据拥有方可选择查看、加密或解密个人信息。当用户选择隐私数据的提取解密操作时,数据拥有方在用户端存储的数据库子表选定对应位置的密文隐私数据PT,并获取最新时间戳TS1;
S53:用户端在可靠环境内将m1={PT,TS1}发送给远端数据库管理技术,由可信执行环境管理机构调用接口接收;
S54:数据库管理技术在接收到m1后,首先检查时间戳TS1是否有效,若无效则拒绝进一步操作,若有效则在可信执行环境管理机构安全区内调用预先编写的对称加密算法利用存储密钥动态生成阶段保存的数据拥有方专属存储密钥 CPWi对密文隐私数据PT进行解密,得到相对应明文CT,并将CT返回给用户端;
S55:用户端得到对应明文CT后,便进行本地文件对应记录段的更新。
S56:若实际安全访问控制框架允许隐私数据操作于外部开放性环境中执行,则该阶段由用户端调用接口请求可信执行环境管理机构发送用户存储密钥 CPWi,并在用户端进行相对应对称解密过程,将得到的对应明文CT直接于本地文件对应记录段进行更新。
S57:特别地,当数据持有方希望获得特定数据拥有方隐私数据调取权限时,远端数据库管理***将通过调用程序向特定数据拥有方对应用户端发送请求。
S58:若得到被请求用户端准许授予隐私数据部分权限,用户端将前述S55 流程中得到的部分明文在可信通信环境内发送至远端数据库管理***,并交由对应数据持有方进行后续操作。
进一步地,所述业务数据访问阶段,具体流程为:
S61:用户端技术程序运行脚本连接数据库,在用户存在的数据库表中通过存储程序等生成并导出含有用户个人信息数据库表对应子表,保存成文件,存储至程序所在的目录下;
S62:以上工作完成后,数据拥有方可选择查看、加密或解密个人
信息。当数据拥有方选择业务数据访问操作,其可直接在本地存储的数据库子表中查看相应的表项。
本发明提供的有益效果是:该技术基于可信执行环境特性,实现了关系型数据库权限分离,同时解决了企业级数据库密钥管理难题,具有较高的安全性、较好的实用性,可抵抗恶意代码、特权用户攻击。与传统数据库表集中管理、整表加密、静态密钥存储方法相比,本发明实现了密钥存储态转变为计算态,从数据加解密密钥角度入手,实现了数据库隐私数据权属分离,解决了密钥管理问题,提供隐私数据字段级加密手段的同时,保证了业务数据的正常访问,大幅提高安全性。
附图说明
图1为本发明技术整体架构图;
图2是技术访问控制技术流程图。
具体实施方法
为使本发明的目的,技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地描述。
请参考图1,本发明提供一种基于可信执行环境的数据库安全访问控制技术,基于可信执行环境框架框架,包括五个阶段,分别为:用户登陆阶段、用户口令更新阶段、存储密钥动态生成阶段、隐私数据操作阶段、业务数据访问阶段;
其中,用户登录阶段将用户端输入用户信息传输至数据库端,识别合法数据拥有方,从而建立前端与数据库可靠通信;
存储密钥动态生成阶段生成数据拥有方专属的存储密钥。特别地,在该阶段技术通过结合个人身份信息与预定义主密钥在可信执行环境中通过某种消息摘要算法动态生成用户存储密钥,该存储密钥将用于后续数据读取以及用户隐私数据的加解密;
用户口令更新阶段将用户端输入更新的用户信息传输至数据库端,从而更新数据拥有方对应的密文隐私数据;
隐私数据操作阶段实现密文存储的隐私数据提取解密、明文输入的隐私数据加密写入功能,满足数据库字段级细粒度加密需求;
业务数据访问阶段实现数据库表非隐私数据并行直接操作功能。
其中,仅有存储密钥动态生成阶段根据用户信息与主密钥计算存储密钥参数限制在可信执行环境内部执行,而用户隐私数据提取解密或输入加密阶段对部分隐私数据加密可选择在可信执行环境内执行或在外部开放式执行环境执行;其余操作均在前端以及后端开放性执行环境中实现。
其中,用户登录功能计划采用常规的表单形式对用户数据进行采集,采集完后分别进行处理。处理完的用户数据通过POST请求发送至后端,并接收后端的验证结果。同时,在各个表单的输入位置,发明计划设置相应的输入验证机制,避免非法数据传输造成安全隐患和浪费。
在可信执行环境中,通过对每一个合法数据拥有方建立传统ORM对象关系映射表实现数据拥有方向数据库整表映射。
通信过程中通过对时间戳的新鲜性检查来验证请求是否被重放攻击。通过用户端输入用户名密码传输与企业级关系型数据库内设合法用户登录机制,从而建立用户和远端数据库管理技术间的可靠通信。
若时间戳不新鲜(延迟/篡改等情况)或用户登录信息错误,则拒绝建立此次通信。
请参考图2,图2是技术访问控制技术流程图;用户在技术用户端中输入用户名及密码,在可信环境内通过POST方法传输至远端数据库管理技术,在验证为合法用户后,通过调用可信执行环境框架安全区预定义的某种消息摘要算法将用户名、密码及预设的主密钥进行混合加密,生成用户专属的存储密钥,将动态计算得到的存储密钥传输至数据库管理***中,根据用户存储密钥获得用户相对应数据库表。
程序将运行脚本连接数据库,在用户存在的数据库表中通过存储程序等生成并导出含有用户个人信息的数据表,保存成文件,存储至程序所在的目录下。
以上工作完成后,用户可选择查看、加密或解密个人信息。当用户做出选择后,程序将根据用户指令对文件进行操作。
操作完成后,程序将再次使用脚本连接数据库,通过gsql命令将操作后的数据文件传输回数据库并由存储过程更新总数据表。
根据该访问控制技术设计,本发明将采用前后端分离的形式进行开发,并且将后端企业级关系型数据库管理***搭载在后端服务器上。
为了全面展现可信执行环境的特性,对于后端数据库服务器,本发明将使用搭载鲲鹏处理器的华为云服务器作为后端关系型数据库服务器,采用 openEuler-20.03-LTS操作***进行交互,同时,将搭建ARM指令优化和MOT 引擎对web应用层进行部署,实现高并发、高可靠、负载均衡和并行恢复等功能,保证技术服务能顺利进行。
本发明将在可信执行环境可信执行环境框架内完成2个主要操作,用来实现访问控制功能中的几个核心操作,以保证整个技术的安全性。可信执行环境框架内的开发将通过C++进行编写,发明将对2个主要功能细分操作进行实现,并封装接口,供后端关系型数据库进行调用。2个主要功能分别为:根据用户信息与主密钥动态计算用户存储密钥参数,实现数据库用户存储密钥存储态到计算态的转变;根据动态生成用户密钥对用户部分敏感信息进行字段级细粒度加密。
所述根据用户信息与主密钥动态计算用户存储密钥参数流程具体如下:
S21:远端数据库管理技术将m2={UNi,PWi,,TS2}发送给可信执行环境管理机构,可信执行环境管理机构接收到m2后,验证时间戳TS2是否有效,若无效则拒绝执行存储密钥生成操作,若有效则进行UNi||PWi操作;其中||表示按位连接;
S22:可信执行环境管理机构通过调用预设函数接口将UNi||PWi传入可信执行环境框架的安全区中;
S23:在安全区使用内部预先编写实现的某种消息摘要算法对用户名、密码以及预设的主密钥进行混合加密,生成数据拥有方专属的存储密钥CPWi,在数据拥有方个人信息不发生改变的情况下,每次动态生成的存储密钥均保持一致;
S24:在用户操作各阶段,可信执行环境管理机构始终在安全区内保存该数据拥有方专属的存储密钥CPWi。
所述根据动态生成用户密钥对用户部分敏感信息进行字段级细粒度加密流程包括明文输入隐私数据加密存储、密文存储隐私数据提取解密阶段,其中明文输入隐私数据加密存储阶段具体流程如下:
S41:用户端技术程序运行脚本连接数据库,在用户存在的数据库表中通过存储程序等生成并导出含有用户个人信息数据库表对应子表,保存成文件,存储至程序所在的目录下;
S42:以上工作完成后,数据拥有方可选择查看、加密或解密个人信息。当用户选择隐私数据的写入/修改操作时,数据拥有方在用户端输入添加或更改的隐私数据CT,并获取最新时间戳TS1;
S43:用户端在可靠环境内将m1={CT,TS1}发送给远端数据库管理技术,由可信执行环境管理机构调用接口接收;
S44:可信执行环境管理机构在接收到m1后,首先检查时间戳TS1是否有效,若无效则拒绝进一步操作,若有效则根据用户请求在安全区内调用预先编写的对称加密算法将隐私数据CT与存储密钥动态生成阶段保存数据拥有方专属存储密钥CPWi加密,得到对应密文PT;
S45:操作完成后,由可信执行环境管理机构将加密后隐私数据返回给用户端,实现在用户端隐私数据本地写入或更新。
S46:程序将再次调用脚本连接数据库,通过gsql命令将操作后的数据拥有方对应子表记录传输回数据库并由存储过程更新总数据表。
S47:若实际安全访问控制框架允许隐私数据相关操作于外部开放性环境中执行,则该阶段由用户端调用接口请求可信执行环境管理机构发送用户存储密钥CPWi,并在用户端进行相对应对称加密过程,再将密文数据PT传输至远端数据库管理***执行存储。
其中密文存储隐私数据提取解密阶段具体流程如下:
S51:用户端技术程序运行脚本连接数据库,在用户存在的数据库表中通过存储程序等生成并导出含有用户个人信息数据库表对应子表,保存成文件,存储至程序所在的目录下;
S52:以上工作完成后,数据拥有方可选择查看、加密或解密个人信息。当用户选择隐私数据的提取解密操作时,数据拥有方在用户端存储的数据库子表选定对应位置的密文隐私数据PT,并获取最新时间戳TS1;
S53:用户端在可靠环境内将m1={PT,TS1}发送给远端数据库管理技术,由可信执行环境管理机构调用接口接收;
S54:数据库管理技术在接收到m1后,首先检查时间戳TS1是否有效,若无效则拒绝进一步操作,若有效则在可信执行环境管理机构安全区内调用预先编写的对称加密算法利用存储密钥动态生成阶段保存的数据拥有方专属存储密钥 CPWi对密文隐私数据PT进行解密,得到相对应明文CT,并将CT返回给用户端;
S55:用户端得到对应明文CT后,便进行本地文件对应记录段的更新。
S56:若实际安全访问控制框架允许隐私数据操作于外部开放性环境中执行,则该阶段由用户端调用接口请求可信执行环境管理机构发送用户存储密钥 CPWi,并在用户端进行相对应对称解密过程,将得到的对应明文CT直接于本地文件对应记录段进行更新。
S57:特别地,当数据持有方希望获得特定数据拥有方隐私数据调取权限时,远端数据库管理***将通过调用程序向特定数据拥有方对应用户端发送请求。
S58:若得到被请求用户端准许授予隐私数据部分权限,用户端将前述S55 流程中得到的部分明文在可信通信环境内发送至远端数据库管理***,并交由对应数据持有方进行后续操作。
本发明为了实际实现上述4个阶段,分别设计了前端和后端。
前端部分:
1.用户登录功能实现:
登录:发明以VUE框架为核心,使用Element Plus组件库对“用户登录”的相关组件进行开发。“用户登录”组件的主体为web表单,用以采集用户名及密码。同时,发明为表单的每一项输入都设置了验证规则(表1),并且设置了手机验证和拖动滑块的人机验证,以保证用户身份和用户输入的合法性,防止恶意攻击的发生。发明也设置输入次数限制,防止非法恶意攻击,导致服务器瘫痪。用户数据采集完后,打包成JSON类型,通过一个基于promise的HTTP 库Axios向后端发送Post请求。
表1登录验证规则说明
2.用户密钥参数计算实现:
存储密钥计算:在登录阶段,用户在用户端程序中输入用户名及密码,通过POST方式传输至远端数据库管理技术中部署的可信执行环境程序,在可信执行环境的enclave环境中通过调用定义好的函数接口将用户名及密码送入安全区。在安全区使用内部自主实现的国密SM3算法对用户名、密码及预设的主密钥进行混合加密,生成用户专属的存储密钥,将存储密钥传输至数据库管理***以访问用户对应数据库表。
后台部分:
实验选择的可信执行环境技术,需要有底层硬件的支持,即需要RISC-V蓬莱安全***的安装包,故实验环境选择为支持蓬莱的、操作***为 openEuler-20.03-LTS的物理机。此外,本发明选用的openGauss数据库在官方给出的文档中推荐使用openEuler或CentOS操作***,因此有关数据库的内容均在搭载鲲鹏处理器的华为云服务器上实现。
表2前端物理机配置
表3后端服务器配置
本发明最终对技术的信息安全进行了不同测试,具体安全测试如表4所示。
表4安全测试
本发明综合考虑数据库所面临恶意代码攻击以及特权用户泄密等问题,基于可信执行环境框架,结合国产自研哈希算法SM3、SM9,通过数据库用户存储密钥动态生成功能,实现存储密钥由存储态转变为计算态,从而实现了企业级关系型数据库权限分离;同时,本发明实现部分敏感信息字段级细粒度加密从而极大提高了企业级关系型数据库运算效率。本发明基于此搭建了数据库安全访问控制技术,该技术具有较高的安全性和较好的实用性,可抵抗绝大部分算法攻击和协议攻击。与已有数据库整表加密、密钥存储中心化方法相比,本发明将密钥存储态转变为计算态,提供数据库字段级加密手段,实现权限分离,从而大大提高安全性。具体来说,创新点有如下几点:
1.可信执行环境框架
本发明技术采用可信执行环境框架,涉密流程均在可信执行环境中执行,保障信息计算过程的安全性。可信执行环境框架通过一组新的指令集扩展与访问控制机制,实现不同程序间的隔离运行,保障技术服务器的关键加解密代码和数据的机密性与完整性不受恶意软件的破坏。通过硬件上的隔离使得应用程序可以定义一个安全代码和数据区域,这一区域可以维护其机密性,即使攻击者能够物理上控制本发明技术以及产生对内存的直接攻击,也能够有效加以抵御。同时,相比于其他机密运算框架,极大缩短了开发移植适配时间,降低维护成本。
值得一提的是,发明并没有调用可信执行环境框架提供的接口,而是通过 C++自主编写了一系列诸如SM3,SM9等加密算法以及异或、按位连接、快速模幂等基本运算操作,并对其进行封装,保证了代码的灵活性,使开发过程更加可控并且性能更加优异。
2.防止特权用户泄露威胁
本发明通过由用户的登录信息通过hash函数生成的密钥对用户隐私信息进行加密。为实现权限的分离密钥由每个用户的用户名及口令生成,由原来的存储状态转变为计算状态,每个用户保有自己的信息加密、解密密钥,不由特权用户统一管理。
同时,对隐私信息加密保证了特权用户无法查看其他用户的信息,从而避免了特权用户泄露信息的情况出现。且当个别用户口令意外泄露时,由于对加密数据实现了权限的分离,攻击者只能获取到泄露用户的相关隐私数据,无法获取其他用户的数据,极大地降低了意外数据泄露带来的风险与破坏。其中对用户数据的加密考虑在数据库中对数据字段进行加密,选用对数据字段加密,不影响正常查询等业务的开展,避免了在操作时频繁的加密解密,在保护数据的同时也提高了加解密的高效性。
3.恶意代码攻击抵抗性
在抵抗恶意代码攻击方面,本发明主要通过将由用户的用户名及口令生成的密钥的生产过程置于安全的环境内。恶意代码的攻击的防护主要基于以下两方面保障:1.生成密钥的过程处于可信执行环境;2.生成的密钥不被静态存储,而是在每次用户登陆时在安全环境中动态生成,用完后销毁。借助可信执行环境技术,我们将存储密钥由原来的存储态转变为临时的计算态。可以执行环境与密钥的临时状态,有效抵抗了恶意代码针对存储数据与运算数据的攻击,从而保证了使用中数据的安全。这部分内容考虑选择基于可信硬件的可信执行环境技术中的可信执行环境框架,将生成密钥的代码和生成后的密钥置于enclave 安全内存中,该内存区仅通过可信接口输入输出,杜绝了恶意代码修改代码、窃取密钥的可能。
4.数据库字段级细粒度加密
加密粒度通常有数据库级、表级、记录级、字段级,其中加密粒度越小,加解密消耗的时间就越少,操作越灵活,适用范围广。有别于传统企业级关系型数据库整表统一加密存储方法,本发明提供字段级细粒度加密手段,在针对部分敏感信息实现分层加密的同时,对非敏感信息实现并行访问操作,从而极大提高了数据库运算效率。
5.自主设计的创新性工作流程
本发明采用自主设计的访问控制方案对数据库进行安全保护,用户登录阶段的存储密钥生成以及敏感信息的加解密过程均在可信执行环境可信执行环境中执行。有别于主流数据库加密技术所采用的直接对文件加密,简单管理密钥方案,本发明实现了将密钥由存储态变为计算态,实现了权限分离;同时提供细粒度加密,仅对部分敏感信息进行分级加密,极大提高了数据库的运行效率。
同时,为了解决可信执行环境框架中安全区开销过大,I/O能力受限导致性能较差等问题,该协议优化了可信执行环境框架的使用流程,仅有用户信息的加解密,计算存储密钥参数等核心操作在可信执行环境框架内执行,其余操作均在前端及后端等开放性执行环境中实现,以此大幅度减少了安全区的吞吐量和载荷,提高了安全区的工作效率。相较于同领域研究成果,该协议既通过可信执行环境框架保证了技术的安全性,又提高大大技术的工作性能。发明组也通过详细的安全性测试与性能开销的对比分析,证明了该自主创新的访问控制技术能够以相对较小的性能开销实现较高的安全性能,兼备可用性与先进性。
本发明的有益效果是:基于可信执行环境特性,实现了关系型数据库权限分离,同时解决了企业级数据库密钥管理难题,具有较高的安全性、较好的实用性,可抵抗恶意代码、特权用户攻击。与传统数据库表集中管理、整表加密、静态密钥存储方法相比,本发明实现了密钥存储态转变为计算态,从数据加解密密钥角度入手,实现了数据库隐私数据权属分离,解决了密钥管理问题,提供隐私数据字段级加密手段的同时,保证了业务数据的正常访问,大幅提高安全性。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于可信执行环境的数据库安全访问控制方法,其特征在于:该方法基于可信执行环境,实现了三方面功能:1.数据拥有方存储密钥由现有存储态向计算态的转变;2.数据分级加密,隐私数据动态密钥保护,业务数据并行操作;3.关系型数据库权属分离,隐私数据加密操作结合数据拥有方用户口令信息,解决数据持有方集中管理导致数据泄露风险;该方法包括五个阶段,分别为:用户登陆阶段、用户信息更新阶段、存储密钥动态生成阶段、隐私数据操作阶段、业务数据访问阶段;
其中,数据拥有方指传统关系型数据库表中对应记录数据的实际拥有者,数据持有方指传统关系型数据库中数据库表实际持有对象;
其中,用户登录阶段将用户端输入用户信息传输至数据库端,识别合法数据拥有方,从而建立前端与数据库可靠通信;
存储密钥动态生成阶段生成数据拥有方专属的存储密钥,在该阶段方法通过结合个人身份信息与预定义主密钥在可信执行环境中通过某种消息摘要算法动态生成用户存储密钥,该存储密钥将用于后续数据读取以及用户隐私数据的加解密;
用户信息更新阶段由用户端将数据拥有方对应更新前以及待更新的用户信息发送至可信执行环境管理机构,在TEE侧生成旧存储密钥并查找映射表单获取对应数据库表存储密钥用以解密隐私数据,而后基于更新后的用户信息生成新存储密钥用以重新加密隐私数据,实现数据库对应表单的更新加密;
隐私数据操作阶段实现用户端与数据库的隐私数据交互,具体包含密文存储的隐私数据提取解密、明文输入的隐私数据加密写入操作;其中密文存储的隐私数据提取解密操作由用户端程序将期望查看的密文隐私数据与身份认证信息一并发送至可信执行环境管理机构,认证通过后于TEE侧获取对应的存储密钥,解密隐私数据并返回至用户端;明文输入的隐私数据加密写入操作由用户端程序将期望更改或写入的明文隐私数据与身份认证信息一并发送至可信执行环境管理机构,认证通过后于TEE侧获取对应的存储密钥,加密隐私数据并发送至数据库端执行存储;
业务数据访问阶段实现数据库表非隐私数据并行直接操作功能;
其中,仅有存储密钥动态生成阶段根据用户信息与主密钥计算存储密钥参数限制在可信执行环境内部执行,而用户隐私数据提取解密或输入加密阶段对部分隐私数据加密可选择在可信执行环境内执行或在外部开放式执行环境执行;其余操作均在前端以及后端开放性执行环境中实现。
2.如权利要求1所述的一种基于可信执行环境的数据库安全访问控制方法,其特征在于:所述用户登录阶段,具体流程如下:
S11:初始化客户端,并进行注册;
S12:从前端获取用户输入个人信息,包括但不限于用户名、口令、生物特征、令牌;以下操作阶段默认输入用户名UNi、密码PWi;其中UNi、PWi分别表示用户i的用户名和密码;用户端输入用户名,密码,并获取当前时间戳TS1;
S13:用户端获取当前时间戳TS1;
S14:用户端将m1={UNi,PWi,TS1}发送给远端数据库管理***,由可信执行环境管理机构调用接口接收;其中可信执行环境管理机构,具体指:在数据库管理技术中部署的可信执行环境及交互式程序接口,在可信执行环境安全区内部预编写实现某种消息摘要算法以及某种对称加密算法,同时在其内部保存有合法数据拥有方与数据库表存储密钥的对象映射关系表;
S15:可信执行环境管理机构接收到m1后,验证时间戳TS1是否有效,若无效则拒绝建立通信,若有效则检查请求用户名是否在预存储的映射表单中存在合法映射关系记录,若存在则获取数据拥有方所在数据库表存储密钥PCDi以及当前时间戳TS2;其中时间戳有效,具体指:当前时间戳与待验证的时间戳之差小于通信传播的最大时间传输延迟;
S16:可信执行环境管理机构将获取的数据库表存储密钥PCDi通过接口传至远端数据库管理***;
S17:数据库管理***通过接收到的PCDi查找得到对应数据拥有方所在数据库对应表;由于在关系型数据库中,整表可能存储多个数据拥有方的记录,仅将表中该数据拥有方相对应记录以子表形式返回给用户端。
3.如权利要求2所述的一种基于可信执行环境的数据库安全访问控制方法,其特征在于:所述存储密钥动态生成阶段,具体流程为:
S21:远端数据库管理***将m2={UNi,PWi,TS2}发送给可信执行环境管理机构,可信执行环境管理机构接收到m2后,验证时间戳TS2是否有效,若无效则拒绝执行存储密钥生成操作,若有效则进行UNi||PWi操作;其中||表示按位连接;
S22:可信执行环境管理机构通过调用预设函数接口将UNi||PWi传入可信执行环境框架的安全区中;
S23:在安全区使用内部预先编写实现的某种消息摘要算法对用户名、密码以及预设的主密钥进行混合加密,生成数据拥有方专属的存储密钥CPWi,在数据拥有方个人信息不发生改变的情况下,每次动态生成的存储密钥均保持一致;
S24:在用户操作各个阶段,可信执行环境管理机构始终在安全区内保存该数据拥有方专属的存储密钥CPWi。
4.如权利要求3所述的一种基于可信执行环境的数据库安全访问控制方法,其特征在于:所述用户信息更新阶段用以更新用户相关个人特征信息,包括但不限于用户口令、生物特征、令牌,以下实现更新用户口令,具体流程为:
S31:用户端将数据拥有方对应更新前用户名UN1以及对应密码PW1发送至可信执行环境管理机构,在安全区内通过调用消息摘要算法对用户名、密码以及预设的主密钥进行混合加密,生成数据拥有方旧存储密钥CPW1,同时查找映射表单中映射关系记录获取对应数据库表存储密钥PCDi;
S32:数据库管理***通过接收到的PCDi查找得到对应数据拥有方所在数据库表,并将表中该数据拥有方相对应记录以子表形式传送至可信执行环境管理机构;
S33:用户端将数据拥有方更新后密码PW2发送至可信执行环境管理机构,在安全区内通过调用消息摘要算法对用户名、密码以及预设的主密钥进行混合加密,生成数据拥有方新存储密钥CPW2;
S34:在可信执行环境管理机构中,调用脚本获取到数据拥有方对应全部密文存储隐私数据,在安全区中通过旧存储密钥CPW1进行解密,再通过新存储密钥CPW2进行加密,得到更新后的隐私数据密文;
S35:操作完成后,程序将再次调用脚本连接数据库,通过gsql命令将完成隐私数据更新的数据拥有方对应子表记录传输回数据库并由存储过程更新总数据表。
5.如权利要求4所述的一种基于可信执行环境的数据库安全访问控制方法,其特征在于:所述数据拥有方隐私数据操作阶段包括明文输入的隐私数据加密写入、密文存储的隐私数据提取解密阶段,其中明文输入隐私数据加密写入阶段,具体流程为:
S41:用户端平台程序运行脚本连接数据库,在用户存在的数据库表中通过存储程序生成并导出含有用户个人信息数据库表对应子表,保存成文件,存储至程序所在的目录下;
S42:以上工作完成后,数据拥有方可选择查看、加密或解密个人信息;当用户选择隐私数据的写入/修改操作时,数据拥有方在用户端输入添加或更改的隐私数据CT,并获取最新时间戳TS1;
S43:用户端在可靠环境内将m1={CT,TS1}发送给远端数据库管理***,由可信执行环境管理机构调用接口接收;
S44:可信执行环境管理机构在接收到m1后,首先检查时间戳TS1是否有效,若无效则拒绝进一步操作,若有效则根据用户请求在安全区内调用预先编写的对称加密算法将隐私数据CT与存储密钥动态生成阶段保存数据拥有方专属存储密钥CPWi加密,得到对应密文PT;
S45:操作完成后,由可信执行环境管理机构将加密后隐私数据返回给用户端,实现在用户端隐私数据本地写入或更新;
S46:程序将再次调用脚本连接数据库,通过gsql命令将操作后的数据拥有方对应子表记录传输回数据库并由存储过程更新总数据表;
S47:若实际安全访问控制框架允许隐私数据相关操作于外部开放性环境中执行,则该阶段由用户端调用接口请求可信执行环境管理机构发送用户存储密钥CPWi,并在用户端进行相对应对称加密过程,再将密文数据PT传输至远端数据库管理***执行存储。
6.如权利要求5所述的一种基于可信执行环境的数据库安全访问控制方法,其特征在于:所述数据拥有方隐私数据操作阶段包括明文输入的隐私数据加密写入、密文存储的隐私数据提取解密阶段,其中密文存储隐私数据提取解密阶段,具体流程为:
S51:用户端平台程序运行脚本连接数据库,在用户存在的数据库表中通过存储程序生成并导出含有用户个人信息数据库表对应子表,保存成文件,存储至程序所在的目录下;
S52:以上工作完成后,数据拥有方可选择查看、加密或解密个人信息;当用户选择隐私数据的提取解密操作时,数据拥有方在用户端本地存储的数据库子表选定对应位置的密文隐私数据PT,并获取最新时间戳TS1;
S53:用户端在可靠环境内将m1={PT,TS1}发送给远端数据库管理***,由可信执行环境管理机构调用接口接收;
S54:数据库管理***在接收到m1后,首先检查时间戳TS1是否有效,若无效则拒绝进一步操作,若有效则在可信执行环境管理机构安全区内调用预先编写的对称加密算法利用存储密钥动态生成阶段保存的数据拥有方专属存储密钥CPWi对密文隐私数据PT进行解密,得到相对应明文CT,并将CT返回给用户端;
S55:用户端得到对应明文CT后,便进行本地文件对应记录段的更新;
S56:若实际安全访问控制框架允许隐私数据操作于外部开放性环境中执行,则该阶段由用户端调用接口请求可信执行环境管理机构发送用户存储密钥CPWi,并在用户端进行相对应对称解密过程,将得到的对应明文CT直接于本地文件对应记录段进行更新;
S57:当数据持有方希望获得特定数据拥有方隐私数据调取权限时,远端数据库管理***将通过调用程序向特定数据拥有方对应用户端发送请求;
S58:若得到被请求用户端准许授予隐私数据部分权限,用户端将前述S55流程中得到的部分明文在可信通信环境内发送至远端数据库管理***,并交由对应数据持有方进行后续操作。
7.如权利要求6所述的一种基于可信执行环境的数据库安全访问控制方法,其特征在于:所述业务数据访问阶段,具体流程为:
S61:用户端平台程序运行脚本连接数据库,在用户存在的数据库表中通过存储程序生成并导出含有用户个人信息数据库表对应子表,保存成文件,存储至程序所在的目录下;
S62:以上工作完成后,数据拥有方选择业务数据访问操作,可直接在本地存储的数据库子表中查看相应的表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211066304.9A CN115758396B (zh) | 2022-08-31 | 2022-08-31 | 基于可信执行环境的数据库安全访问控制技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211066304.9A CN115758396B (zh) | 2022-08-31 | 2022-08-31 | 基于可信执行环境的数据库安全访问控制技术 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115758396A CN115758396A (zh) | 2023-03-07 |
CN115758396B true CN115758396B (zh) | 2023-05-30 |
Family
ID=85349507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211066304.9A Active CN115758396B (zh) | 2022-08-31 | 2022-08-31 | 基于可信执行环境的数据库安全访问控制技术 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115758396B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117786758B (zh) * | 2024-02-27 | 2024-06-07 | 深圳市洞见智慧科技有限公司 | 基于可信执行环境的密态数据库***和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040045A (zh) * | 2018-07-25 | 2018-12-18 | 广东工业大学 | 一种基于密文策略属性基加密的云存储访问控制方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506659B (zh) * | 2017-07-27 | 2020-04-07 | 西安电子科技大学 | 一种基于sgx的通用数据库的数据保护***及方法 |
CN108418691B (zh) * | 2018-03-08 | 2020-10-27 | 湖南大学 | 基于sgx的动态网络身份认证方法 |
CN109150517B (zh) * | 2018-09-04 | 2021-03-12 | 大唐高鸿信安(浙江)信息科技有限公司 | 基于sgx的密钥安全管理***及方法 |
CN113438068B (zh) * | 2019-05-31 | 2024-01-09 | 创新先进技术有限公司 | 基于区块高度实现动态加密的方法及装置 |
CN110519049A (zh) * | 2019-08-07 | 2019-11-29 | 赤峰学院 | 一种基于可信执行环境的云端数据保护*** |
US11310051B2 (en) * | 2020-01-15 | 2022-04-19 | Advanced New Technologies Co., Ltd. | Blockchain-based data authorization method and apparatus |
CN111008228A (zh) * | 2020-03-09 | 2020-04-14 | 支付宝(杭州)信息技术有限公司 | 区块链中账户隐私信息的查询方法及装置 |
CN112380578A (zh) * | 2020-11-20 | 2021-02-19 | 天翼电子商务有限公司 | 一种基于区块链和可信执行环境的边缘计算框架 |
CN113037477A (zh) * | 2021-03-08 | 2021-06-25 | 北京工业大学 | 一种基于Intel SGX的Kerberos安全增强方法 |
CN113706361B (zh) * | 2021-08-19 | 2022-04-26 | 兰州大学 | 一种基于机密计算的数字图像权属保护云*** |
CN113922957B (zh) * | 2021-10-18 | 2024-01-19 | 杭州加密矩阵科技有限公司 | 一种基于隐私保护计算的虚拟云钱包*** |
CN114697073B (zh) * | 2022-02-22 | 2023-12-22 | 昆明理工大学 | 一种基于区块链的电信运营商数据安全共享方法 |
CN114629639A (zh) * | 2022-03-10 | 2022-06-14 | 阿里云计算有限公司 | 基于可信执行环境的密钥管理方法、装置和电子设备 |
-
2022
- 2022-08-31 CN CN202211066304.9A patent/CN115758396B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040045A (zh) * | 2018-07-25 | 2018-12-18 | 广东工业大学 | 一种基于密文策略属性基加密的云存储访问控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115758396A (zh) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144961B (zh) | 授权文件共享方法及装置 | |
CN111488598B (zh) | 访问控制方法、装置、计算机设备和存储介质 | |
WO2021128733A1 (zh) | Hyperledger Fabric区块链隐私数据存储与访问***及其方法 | |
KR101335133B1 (ko) | 상황 기반 데이터 보호 | |
US8059818B2 (en) | Accessing protected data on network storage from multiple devices | |
WO2016106752A1 (zh) | 一种共享数据的访问控制方法、装置及*** | |
CN110489996B (zh) | 一种数据库数据安全管理方法及*** | |
US20150143111A1 (en) | Methods and devices for securing keys for a nonsecured, distributed environment with applications to virtualization and cloud-computing security and management | |
US20090240956A1 (en) | Transparent encryption using secure encryption device | |
CN104618096B (zh) | 保护密钥授权数据的方法、设备和tpm密钥管理中心 | |
JP2012518329A (ja) | 信頼済みクラウドコンピューティングおよびサービスに関するフレームワーク | |
JP2012530391A (ja) | 信頼されるコンピューティングサービスおよびデーターサービスのための安全なプライベートバックアップストレージおよび処理 | |
WO2005119960A2 (en) | Structure preserving database encryption method and system | |
CN103686716A (zh) | 安卓***机密性完整性增强访问控制*** | |
WO2022148182A1 (zh) | 一种密钥管理方法及相关设备 | |
US20240039709A1 (en) | Method and apparatus for sharing encrypted data, and device and readable medium | |
JP2022542095A (ja) | 強化された安全な暗号化及び復号化システム | |
CN115758396B (zh) | 基于可信执行环境的数据库安全访问控制技术 | |
US20220086000A1 (en) | Cryptographic systems | |
Ma et al. | A secure and efficient data deduplication scheme with dynamic ownership management in cloud computing | |
CN113901507B (zh) | 一种多参与方的资源处理方法及隐私计算*** | |
Voitovych et al. | Multilayer Access for Database Protection | |
JP2011227673A (ja) | ファイル管理システム、ストレージサーバ、クライアント、ファイル管理方法およびプログラム | |
Katre et al. | Trusted third party for data security in cloud environment | |
Thota et al. | Split key management framework for Open Stack Swift object storage cloud |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |