共计 7374 个字符,预计需要花费 19 分钟才能阅读完成。
摘要:全密态数据库,专门解决密文数据的数据库系统,数据以加密状态存储在数据库服务器中,数据库反对对密文数据的检索与计算。
1、云数据库安全现状及问题
随同着云基础设施的快速增长和成熟,与之对应的云数据库服务也层出不穷。一方面,受害于云服务的便捷性传统企业减速业务上云,通过充分发挥云数据库特有的轻松部署、高牢靠、低成本等劣势升高企业经营老本,减速企业应用翻新;另一方面,以苹果 iCloud 服务为代表的存储服务和云计算服务为挪动消费者带来利用便捷性,利用云侧的数据库服务存储海量消费者的集体数据。
云数据库俨然已成为数据库业务将来重要的增长点,绝大多数的传统数据库服务厂商正在减速提供更优质的云数据库服务。但无论是传统的线下数据库服务,还是日益增长的云数据库服务,数据库的外围工作都是帮忙用户存储和治理数据,在简单多样的环境下,保证数据不失落、隐衷不泄露、数据不被篡改以及服务不中断。这就要求数据库具备多层次的平安防御机制,用来抵制来自外部和内部的歹意攻击行为。
事实上,通过数据库的长期倒退,曾经构建了体系化的平安能力,比方通过数据库防火墙的入侵进攻以及基于 AI 的攻打辨认及智能进攻,做到“攻不破”;通过在数据库服务端实现强认证机制,达到攻击者“进不来”;通过欠缺的权限治理模型、对象访问控制及校验机制做到歹意用户“拿不走”;通过数据加密存储机制或数据动态脱敏及动静脱敏机制实现对要害数据的爱护,确保数据在被非法窃取后攻击者“看不懂”;通过多正本备份,交融区块链思维实现类账本零碎能力,做到“改不了”;通过零碎外部细粒度审计机制,记录用户操作行为,达到攻击行为“赖不掉”。
除了传统数据库厂商自身在晋升本人的能力外,许多专业化的评估测试机构也在帮忙数据库厂商开掘产品缺点,减速欠缺数据库安全能力的构建,并出具专业化评估报告,作为第三方背书让用户“信得过”。这些成熟的平安技术手段,构建了数据库纵深进攻的平安体系,保障数据库在利用中的平安。一个残缺的进攻架构如图 1 所示。
图 1:传统数据库多层级平安进攻架构
尽管数据库安全性能越做越强,但这些平安技术手段都是针对传统数据库所面临的威逼构建的。作为面向开放市场的云数据库服务,其所面临的危险相较于传统数据库更加多样化,更加复杂化,无论是应用程序破绽、系统配置谬误,还是歹意管理员都可能对数据安全与隐衷爱护造成微小危险。
云数据库,其部署网络由“公有环境”向“凋谢环境”转变,零碎运维治理角色被拆分为业务管理员和运维管理员。业务管理员领有业务管理的权限,属于企业业务方,而运维管理员属于云服务提供商。数据库运维管理员尽管被定义成零碎运维治理,其理论仍旧享有对数据的齐全应用权限,通过运维管理权限或提权来拜访数据甚至篡改数据;再者因为开放式的环境和网络边界的模糊化,用户数据在整个业务流程中被更充沛的裸露给攻击者,无论是传输、存储、运维还是运行态,都有可能蒙受来自攻击者的攻打。因而对于云数据库场景,如何解决第三方可信问题,如何更加牢靠的爱护数据安全相比传统数据库面临着更大挑战,其中数据安全、隐衷不泄露是整个云数据库面临的首要平安挑战。
以后云数据库数据安全隐衷爱护是针对数据所处阶段来制订保护措施的,如在数据传输阶段应用平安传输协定 SSL/TLS,在数据长久化存储阶段应用通明存储加密,在返回后果阶段应用 RLS(Row Level Security)或者数据脱敏策略。这些传统技术手段能够解决单点危险,但不成体系,且对处于运行或者运维状态下的数据则短少无效的爱护。面对越来越简单的云环境,咱们须要一种可能彻底解决数据全生命周期隐衷爱护的系统性解决方案。事实上,近年来学术界以及工业界陆续提出了许多翻新思路:数据来到客户端时,在用户侧对数据进行加密,且不影响服务端的检索与计算,从而实现敏感数据爱护,此时即使数据库管理员也无奈接触到用户侧的密钥,进而无奈获取明文数据。这一思路被称为全密态数据库解决方案,或全加密数据库解决方案。
2、全密态数据库与数据全生命周期爱护
全密态数据库,顾名思义与大家所了解的流数据库、图数据库一样,就是专门解决密文数据的数据库系统。数据以加密状态存储在数据库服务器中,数据库反对对密文数据的检索与计算,而与查问工作相干的词法解析、语法解析、执行打算生成、事务 ACID、数据存储都继承原有数据库能力。
在全密态数据库机制下,一个用户体验良好的业务数据流图如下图 1 所示。假设数据列 c1 已以密文状态寄存在数据库服务端,用户发动查问工作指令。用户发动的查问工作无需进行特殊化革新,对于查问中波及的与敏感数据 c1 相关联的参数,在客户端依照与数据雷同的加密策略 (加密算法,加密密钥等) 实现加密,如图 1 中关联参数“123”被加密成“0xfe31da05”。参数加密实现后整个查问工作被变更成一个加密的查问工作并通过平安传输通道发到数据库服务端,由数据库服务端实现基于密文的查问检索。检索失去的后果依然为密文,并最终返回客户端进行解密。
图 2:全密态数据库外围业务数据流
依据该业务数据流能够看出,全密态数据库的核心思想是:用户本人持有数据加解密密钥且数据加解密过程仅在客户侧实现,数据以密文状态存在于数据库服务侧的整个生命周期过程中,并在数据库服务端实现查问运算。
因为整个业务数据流在数据处理过程中都是以密文状态存在,通过全密态数据库,能够实现:(1)爱护数据在云上全生命周期的隐衷平安,无论数据处于何种状态,攻击者都无奈从数据库服务端获取无效信息;(2)帮忙云服务提供商获取第三方信赖,无论是企业服务场景下的业务管理员、运维管理员,还是消费者云业务下的利用开发者,用户通过将密钥把握在本人手上,使得高权限用户无奈获取数据无效信息;(3)使能合作伙伴,通过全密态数据库能够让合作伙伴借助全密态能力更好的恪守个人隐私爱护方面的法律法规。
3、全密态数据库外围思路与挑战
正如全密态数据库定义所形容的那样,全密态数据库的外围工作是爱护数据全生命周期平安并实现基于密文数据的检索计算。在加密算法足够平安的状况下,内部攻击者及外部管理员均无奈获取无效的数据信息。
对于用户来说,从已有数据库服务切换成全密态数据库或者间接将利用部署于全密态数据库,须要解决三个次要的问题:(1)如何保障密态计算机制的安全性,全密态数据库从原理上能够无效保障数据安全,但这要求密文数据检索及运算的算法在机理和工程上要达到该原理要求;(2)如何进行业务的无缝迁徙或者轻量化迁徙,全密态数据库最显著的特色是数据存储信息的变更,那与加密数据相干的各类参数都要同步进行变更,否则会因为计算数据状态的不对等导致查问错乱;(3)如何防止服务切换所带来的性能损耗,实质上须要将加密算法实现和工程实现所产生的性能回退管制在一个正当的范畴内,防止因为不合理的数据加解密和数据存储收缩带来性能急速降落。只有解决这三个关键问题,能力真正的推动全密态数据库落地。
目前,全密态数据库在学术界和工业界均有钻研和尝试,次要聚焦于两种解决方案:(1)密码学解决方案,或称为纯软解决方案,通过设计满足密文查问属性的密码学算法来保障查问的正确性,如已知常见的 OPE(Order Preserving Encryption)算法,数据加密后仍保留程序属性;(2)硬件计划,通过可信执行环境 (TEE, Trusted Execution Environment) 来解决 REE(Rich Execution Environment,REE 与 TEE 绝对应)环境中的密文数据运算,图 3 展现了 ARM 架构下的 TEE 与 REE 的对应关系。无论是密码学解决方案还是现有的硬件计划都有他们各自的优缺点。
图 3:REE 与 TEE 逻辑关系图
密码学计划的外围思路是整个运算过程都是在密文状态,通过基于数学实践的算法来间接对密文数据进行检索与计算。该计划须要解决在用户不感知的条件下,实现密文数据的平安、高效检索与计算,以后的次要挑战在两个方面:一方面学术界以后次要的密码学算法,大部分都是基于性能实现及平安能力的思考,对于内外存储、网络吞吐、计算耗费等性能指标都会有不同的劣化,甚至有些性能齐全脱离了理论场景,因而如何能在数据密文状态下实现检索和计算,并且满足性能要求,是密码学计划的最大挑战;另一方面,通常一种数学算法只能解决局部业务场景,如何将多种密码学算法交融,以实现数据库查问和计算的次要性能,也是密码学计划的一大挑战。
硬件计划的外围思路是将寄存于 REE 侧的加密数据传递给 TEE 侧,并在 TEE 侧实现数据解密和计算工作(见图 3),依赖 TEE 的“隔离性”或“对 REE 侧利用的不可见性”实现数据计算过程的平安爱护。一方面,受限于 TEE 空间的大小(如 SGX v1 仅提供 128MB 可用空间、基于 ARM TrustZone 计划个别也仅提供几十 MB 空间),难以解决大量数据和简单操作,这就要求 TEE 内仅关注要害敏感数据的查问操作,升高攻击面;另一方面因为 REE 与 TEE 运行切换和数据交互带来额定的开销,因而须要解决整个运算过程中的 REE 与 TEE 的计算资源分配与高效调度问题,也是硬件计划面临的一大挑战。
4、GaussDB(openGauss)全密态数据库解决方案
4.1 开创性自适应架构打造首款反对软模式密态计算
全密态数据库中的软件计划和硬件计划目前均已获得了很多停顿,特地的,工业界已开始在逐渐采纳硬件计划。借助诸如 Intel SGX 等平安硬件的 TEE 空间,对数据计算空间进行物理或逻辑隔离,实现数据对 REE 的“不可见”。
但硬件计划目前存在两个较大的缺点:首先因为数据在 TEE 外部均为明文存在,因而数据的安全性齐全依赖于硬件自身的安全性。目前针对硬件的攻击方式如侧信道攻打等越来越多,然而个别硬件设施更新迭代周期较长,一旦呈现破绽无奈及时更新修补,将间接导致用户数据长时间裸露在危险之下。其次用户在应用该个性时,密钥须要来到客户端环境发送给 TEE 应用,而该传输过程的平安间接依赖于硬件设施厂商的证书签名,歹意的硬件设施厂商人员齐全有能力攻打并窃取用户的数据及密钥,因而硬件计划,也须要用户在应用过程中,继续信赖硬件设施厂商。
全密态数据库的软件计划目前在学术界倒退较快,通过一系列数学算法在密文空间间接对密文进行查问运算,保障数据隐衷不泄露。软件计划能够不依赖于硬件能力,也不须要在服务侧获取密钥对数据进行解密,但以后也存在着在第三章节提到的微小挑战。
图 4:GaussDB 全密态数据库架构
在华为全连贯大会上,华为正式公布基于 GaussDB 的全密态数据库解决方案,该计划联合软件模式与硬件模式各自的优缺点,推出交融策略,实现硬件模式和软件模式的自在切换,该计划反对全场景利用,包含私有云、混合云以及终端智慧业务,更为重要的是对终端用户通明无感知。
在硬件模式下,GaussDB 首先反对多硬件平台能力,如 Intel CPU 的 SGX 能力,以及业内独创的华为自主研发鲲鹏 ARM TrustZone 能力。其次 GaussDB 实现了最小粒度的隔离级别,使得攻击面最小化,并且通过一系列的密钥平安保障机制,如多层密钥管理体系、可信传输通道、会话级密钥管理机制等,实现了硬件环境中的数据及密钥平安,从而升高因硬件安全问题而导致的用户数据及密钥泄露危险。
因为硬件模式依赖于硬件及其生产厂商的平安和信用,且用户在理论应用过程中须要依赖个性硬件环境,GaussDB 还开创性的反对了软件模式的密态查问能力,通过对多种密码学算法的深度性能优化,构建出不同的密态查问引擎,以实现不同的检索和计算性能,实现数据等值查问、范畴查问、保序查问、表达式计算等个性。特地的,通过引入确定性加密机制,实现了数据的增删改查、表字段关联、等值检索等基本操作;基于 GS-OPE 算法的密文索引技术,实现了数据密态保序查问、表达式大小比拟等惯例操作;通过 Range-Identify 算法,实现数据密态范畴查问。
GaussDB 全密态数据库解决方案创新性的解决了多个技术难点,实现了对用户无感知、数据加密无泄漏等外围竞争力。
4.2 全自动加密驱动实现用户数据库操作无感知
要实现在客户端进行加解密,无疑须要在客户端进行大量保护治理,包含数据密钥治理,敏感数据加密,解析和批改 SQL 语句等。如果仅仅提供数据加密工具,由用户来对数据进行显式加密,一方面会减少用户的开发成本,另一方面用户也容易因数据加密不到位而造成数据泄露。
GaussDB 将这一系列的简单操作,全副封装在客户端加密驱动中,实现了齐全自动化的敏感信息加密替换,同时在数据库中存储了所有加密相干的元信息,使得数据库能够很好的辨认和解决对应的加密数据。如图 5 所示,因为 SQL 语句中与敏感信息相干的参数也被加密解决,使得发送至数据库服务侧的查问工作 (图中 ciphertext query) 也不会泄露用户查问用意,缩小客户端的简单平安治理及操作难度,实现用户利用开发无感知。另外,GaussDB 提供一系列的配置接口,满足用户对加密字段、加密算法、密钥平安存储等不同场景的须要。GaussDB 全密态数据库的透明性使得用户在工作迁徙时将取得极大的便捷性。
图 5:全自动客户端加密驱动
4.3 利用算子级隔离显著升高平安危险
当密文查问进入数据库内核之后,就须要依赖现有的查询处理模块来实现数据运算。对数据库这种高度简单的零碎,在硬件模式下,如何将敏感数据的检索、计算等外围性能解耦隔离,放在平安环境中独立运行,从而最小化敏感数据计算面临的平安危险,始终是 GaussDB 的一个重大难题。
图 6:支流硬件隔离计划
以后业界次要有三种 TEE 隔离计算计划:数据库级隔离、模块级隔离、算子级隔离。这三种计划从攻击面和工程实现维度来看,有显著的差别。
数据库级隔离,是在 TEE 中残缺的建设一个非凡的数据库引擎,将敏感数据的查问申请间接发送给该数据库进行全副的解析和执行解决。该计划的架构比拟清晰,实现简略,安全性和可靠性间接依赖于 TEE 中数据库的能力。然而,因为 TEE 中数据库引擎的代码规模较大,因而数据库实例须要耗费更多的 TEE 侧资源,且一旦因为潜在代码缺点导致在执行过程呈现严重错误,将导致呈现 TEE 环境解体等严重后果。
模块级隔离,是将 SQL 执行器放到 TEE 中,实现对语句的执行过程进行爱护。执行器是数据库查问语句的查问工作执行模块,与数据库级隔离相比,这种形式减小了 TEE 中的代码规模,其安全性次要依赖于执行模块的平安能力。但该形式下仍有大量与敏感数据计算无关的操作将在 TEE 中运行,而这些操作都可能接触到明文数据,故而容易引入谬误或者无心泄露敏感数据,留下平安攻打隐患。
算子级隔离。算子是秘密数据计算的最小、最外围性能单元,如数据排序算子、表达式计算等。通过将密文算子放在 TEE 中执行,能够针对性的对敏感数据进行重点保护,排除非敏感数据操作带来的潜在危险,具备最小规模的代码实现。然而其难度和挑战并存:首先,数据库的复杂性决定了将敏感数据的繁多算子执行过程进行解耦存在较大的挑战性,传统的 pipeline 执行流程意味着单个算子执行过程的连续性,针对算子执行过程中的外围计算流程进行解耦就须要进行定向梳理;其次单个查问语句通常波及多个算子运算,整个查问运算流程须要依据算子运算需要屡次切换到 TEE 侧环境,对性能造成影响。
为了谋求极致的平安,GaussDB 抉择了算子级隔离策略。为了解决算子级隔离的两大问题,GaussDB 全密态数据库通过精心设计,胜利实现了最小粒度的敏感数据检索和计算模块。同时,从多个层面对 REE 与 TEE 之间的 world switch 的性能和数据传输方式进行深度优化,将性能影响降到最低。从而在显著减小平安危险的同时,也无力地保障了数据库系统的高效运行。
4.4 高强度密钥体系保障密钥平安
整个全密态数据库解决方案中除数据自身具备敏感性质外,最为敏感的信息就是数据加解密密钥,一旦密钥泄露,将给用户数据带来重大危险。特地是在硬件模式下,密钥需来到用户侧,传输到云侧可信硬件环境中,其平安爱护至关重要。GaussDB 通过实现三层密钥体系,让各层密钥各司其职,真正做到密钥高强度的平安爱护。
图 7:GaussDB 高强度密钥体系
第一层为数据密钥,做到了字段级别,即针对不同的字段将采纳不同的密钥,同时对雷同字段不同数据采纳不同的盐值,以实现不同字段之间的加密隔离,即便某一列数据的加密密钥被泄露,也不会影响到其余数据安全,晋升整体数据的安全性。
第二层为用户密钥,对不同用户将应用不同的密钥,以实现用户之间的加密隔离,而且用户密钥永远不会来到用户可信环境;使得包含管理员在内的其余用户,即使窃取了数据的拜访权限,也无奈解密最终数据。
第三层为设施密钥,即对不同的密钥存储设备或工具,应用不同的密钥进行爱护,实现设施间的加密隔离,大大增加了攻打用户密钥存储设备或工具破解密钥的难度。
不仅如此,因为在硬件模式下,须要将字段级密钥传输给硬件 TEE 环境应用。GaussDB 在该场景下进行了更高强度的保护措施:首先,通过 ECCDH 协定平安协商和 TEE 内置证书签名校验,构建用户侧与 TEE 环境之间的可信通道,保障密钥平安可信的加密传输,避免中间人攻打;其次,密钥不会以任何模式来到 TEE 环境,只在会话期间存在,完结立即开释,最小化数据密钥生命周期,避免因代码破绽或异常情况引起的密钥泄露。
5、全密态数据库的将来
全密态数据库技术理念抛开了传统的多点技术单点解决数据危险的问题,通过系统化思维建设了一套可能笼罩数据全生命周期的平安爱护机制。这套机制使得用户在无感知的状况下就解决了数据的平安隐衷爱护,对于攻击者和管理者来说都无奈获取无效信息。全密态数据库是数据库安全隐衷爱护的高级进攻伎俩,但全密态数据库在以后仍存在肯定的局限性,仍须要冲破算法安全性和性能损耗等相干问题。
全密态数据库在理论利用中倡议仅针对敏感数据进行应用,通过借助于数据库自身提供的多方位数据保护机制,为不同等级的数据提供不同层级的平安机制,从而构建全方位的数据安全爱护机制。将来 GaussDB 会将该能力逐渐开源到 openGauss,与社区独特推动和欠缺全密态数据库解决方案,一起打造数据库安全生态。
点击关注,第一工夫理解华为云陈腐技术~