中科丝路新闻资讯

选择年份
  • 全部
  • 2021
  • 2020
  • 2022
  • 2023
  • 2024

经济日报:工业互联网步入快速成长期

2022.05.21

全国产业规模超万亿元,在制造业各环节广泛应用—— 工业互联网步入快速成长期

相关新闻

数字经济时代的数据存储保护方法研究



摘 要


数据作为新型生产要素,是我国数字经济发展战略的重要基石,数据自身的安全是数字经济健康发展的基本保障。《中华人民共和国数据安全法》明确,需采取必要措施确保数据处于有效保护和合法利用的状态,以及具备保障持续安全状态的能力。亟需运用密码技术构建数据安全防护体系,维护数据的完整性、保密性和可用性,保障我国数字经济健康发展。论述了数据存储的方式及面临的安全威胁,以及应用层、驱动 / 内核层、块 / 簇层基于密码的数据保护模式,实现了数据存储的安全保护。


内容目录:


1 数据存储方式及安全威胁


2 应用层数据安全存储方法


2.1 业务层通用保护模式


2.2 数据库透明保护模式


3 驱动 / 内核层数据安全存储方案


4 块 / 簇层数据安全存储方式


5 方案比较


6 结 语


随着数字技术的蓬勃发展和创新应用,数字经济已逐渐成为构建现代化经济体系的主要经济形态。“十四五”规划和 2035 年远景目标建议提出,“迎接数字时代,激活数据要素潜能,推进网络强国建设,加快建设数字经济、数字社会、数字政府,以数字化转型整体驱动生产方式、生活方式和治理方式变革”。据此,2021 年 12 月,国务院发布《“十四五”数字经济发展规划》(以下简称《规划》),《规划》指出“数据要素是数字经济深化发展的核心引擎,是最具时代特征的生产要素,数据的爆发增长、海量集聚蕴藏了巨大的价值,为智能化发展带来了新的机遇,切实用好数据要素,将为经济社会数字化发展带来强劲动力”。在数字化时代,数据已经成为数字化转型的基础性、战略性资源。


数据对数字经济发展至关重要,数据自身的安全也决定着数字经济能否稳定健康发展。2021 年 9 月 1 日施行的《中华人民共和国数据安全法》明确指出,需采取必要措施确保数据处于有效保护和合法利用的状态,以及具备保障持续安全状态的能力 。与《数据安全法》同期施行的《关键信息基础设施安全保护条例》要求,保障关键信息基础设施安全稳定运行,维护数据的完整性、保密性和可用性 。


密码是一种被实践检验过的安全、经济的数据保护手段。通过密码技术可实现数据安全主动防御,使得数据在缺少授权的情况下“拿不走、改不了、看不懂”,增强了数据自身安全保障。2020 年 1 月 1 日,《中华人民共和国密码法》正式颁布实施,密码的应用和发展上升到法律高度 。《“十四五”数字经济发展规划》提出,着力强化数字经济安全体系,促进数据加密等网络安全技术应用。数据安全已成为总体国家安全观的重要组成部分,采用密码技术保障数据安全是数据存储保护的必然趋势。有学者针对特定应用场景开展了数据加密技术研究 ,对数据存储保护具有借鉴意义。本文立足数据存储的安全保护,探索不同数据存储方式下基于密码技术的数据保护模式,给出对应方式下的数据加密保护技术路线,并从不同角度进行了比较和分析,为数据保护方案设计提供技术参考。


1 数据存储方式及安全威胁


数据整体上可分为结构化数据和非结构化数据两大类。结构化数据也称作行数据,由二维表结构来逻辑表达和实现,严格遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理;非结构化数据的数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现,包括所有格式的办公文档、文本、报表、图像和音频 / 视频信息等。数据以二进制的方式进行存储。根据数据存储的逻辑顺序,其存储写入流程如图 1 所示。

图 1 数据存储写入流程


数据经过应用层产生,可根据应用的需要进行数据内容格式的自行定义,方便后续满足特定的应用需求。例如,采用红黑树等数据结构,方便数据检索的数据库存储格式;可以自行 封 装 为 可 扩 展 标 记 语 言(Extensible Markup Language,XML)、JavaScript 对象简谱(JavaScriptObject  Notation,JSON)等便于应用层解析的数据结构等。


数 据 内 容 经 应 用 层 定 义 后, 由 操 作 系 统下发至驱动 / 内核层。对操作系统来讲,数据的存储不仅是数据内容本身,还需要一个在操作系统中访问的路径。文件内容及访问路径的存储往往与操作系统的分区方式紧密关联,如Windows 下通过新技术文件系统(New Technology File System,NTFS) 分 区 方 式 进 行 存 放,Linux下基于第二代扩展文件系统(Second Extended Filesystem,Ext2)分区方式进行存放等。


数据信息(包括数据内容、访问路径及其他属性信息)最终以块 / 簇的方式存储在物理设备中。


按照图 1 的数据存储写入流程,可以通过技术手段在应用层、驱动 / 内核层、块 / 簇层实现业务接管,威胁数据安全。在原有的业务流程中增加对数据进行密码处理的操作流程,可实现数据存储的安全保护。本文论述了应用层、驱动 /内核层、块 / 簇层下基于密码的数据保护模式。


2 应用层数据安全存储方法


2.1 业务层通用保护模式


在业务层面实现数据安全防护是目前最为常用的一种技术路线,适用于结构化数据和非结构化数据。密钥存储在专用的密码模块中(如密码卡、密码机等),对于数据机密性保护,在数据存储前通过密码模块提供的接口将数据送入密码模块进行加密操作,转换成密文数据后再对数据进行存储;使用数据时则将上述密文数据通过接口送入密码模块进行解密,得到解密后的原文信息,加解密流程如图 2 所示。对于数据完整性校验,在数据存储前通过密码模块提供的接口将数据送入密码模块转换成完整性校验值后进行存储;使用数据时则将原文信息通过接口送入密码模块进行完整性校验值计算,并比较前后完整性校验值是否一致,完整性校验计算流程如图 3 所示。

图 3 完整性校验计算流程


上述功能的实现,需要业务系统集成密码模块的接口。在业务代码层面进行安全功能集成,可以结合场景需求将数据安全保护的颗粒度细化到每个比特,以实现数据完整性、机密性或同时实现完整机密保护,但是带来的代价是业务系统需要在代码级对密码模块进行集成、测试及发布。


2.2 数据库透明保护模式


数据库作为结构化数据的存储计算工具,已经发展多年。现有的数据库对数据的安全保护往往聚焦于如何透明地实现数据的加解密能力。近几年,随着商用密码安全性评估(以下简称“密评”)的推进,信息系统中重要数据存储的机密性和完整性保护如何满足密评要求成为一大挑战,尤其是由于某些原因无法进行代码改造实现密码保护,使得实现数据库透明密码保护成为各商用密码厂商致力解决的一个问题。截至目前,基于数据库实现数据透明密码保护的路线主要有以下几种。


(1)透明数据加密。透明数据加密(Trans parent Data Encryption,TDE)是数据库厂商作为开发方向最终用户提供的一套自带的数据安全保护方案,能够透明地实现列或者表空间的加解密。在技术上,依托动态库替换等手段能够将待加密数据引流到自定义的业务流程中,再通过自有代码实现商用密码算法应用,如调用密码模块实现加解密,采用新的算法模式同步解决完整性问题等。


其 优 点 是 对 应 用 透 明, 管 理 简 便, 无 需应用设置,加解密后性能损耗较少,具备多层密钥体系且能够以密钥管理互操作协议(Key Management Interoperability Protocol,KMIP) 对接外部密钥管理系统,保障密钥安全。缺点也相当突出:功能与数据库版本紧密关联,低版本数据库无法使用此功能;对数据库存储索引方式有特定要求;不支持商用密码算法;不具备数据完整性保护能力等。


这种方式虽然在技术层面实现了对商用密码算法的支持和功能扩展,但是动态库替换等方式存在不稳定风险,可能造成数据丢失,甚至引起知识产权纠纷。


(2)用户自定义函数 + 触发器。用户自定义函数(User Defined Function,UDF)是数据库面向用户提供二次开发,进行功能扩展的接口;触发器(Trigger)针对字段进行数据库操作时实现自定义流程处理。通过将两者有机结合,能够透明地实现数据库字段级的密码防护。在具体实现上,通过 UDF 的方式封装自定义接口函数,在接口中与密码模块进行连接调用,实现数据加解密、完整性保护等功能;将开发后的UDF 模块导入到数据库中,使数据库具备上述密码功能接口;根据业务场景需要,针对需要进行密码保护的字段在其触发器中进行流程改造,按需调用上述密码功能接口,实现数据在存储 / 读取时的安全防护,最终透明地实现数据的加解密和完整性保护功能。


上述实现方式能够将商用密码算法进行封装,并依托合规的密码模块完成密钥的安全管理,满足合规、正确及有效的密码保护。但是受限于触发器机制,其性能损耗较大,仅适用于对数据存储读取效率要求不高的场景。另外,UDF 的安装需要数据库服务器操作系统的存储权限,云计算环境下的数据库多以实例的方式面向租户提供服务,不具备 UDF 安装的条件,使得上述方案在云计算场景下应用较难。


(3)数据库驱动。数据库驱动(Database Driver)通常是指面向业务系统与数据库建立连接、进行输入输出的标准化组件,数据库驱动连接如图 4 所示。


图片

图 4 数据库驱动连接


数据库驱动往往与开发语言紧密相关,每个数据库针对每种开发语言都会提供单独的一套对应的驱动文件,如面向 Java 开发语言的 Java 数据库 连 接(Java Database Connectivity,JDBC)( 涵盖 Oracle、MySQL 等);面向 C/C++ 的 Oracle 调用接口(Oracle Call Interface,OCI)、Oracle C++调用接口(Oracle C++ Call Interface,OCCI)等。


数据库驱动是衔接业务系统与数据库之间通信的必经之路,通过在这个层面上进行业务流程接管,将需要进行保护的字段数据引导至自定义流程,完成数据的密码安全性处理后,再送回原有业务流程,即可透明地实现安全防护。在实际工程应用中,多以替换数据库驱动文件的方式实现密码保护功能升级。


数据库驱动层能够非常方便地拿到传输的业务数据,识别出进行通信的表、字段、数据库操作的行为(增、删、改、查),可以结合拟定的密码策略针对上述数据进行字段级的安全性防护,几乎是“零改造”即可实现密码功能升级。其优势为代码零改造,升级成本低,安全颗粒度小,技术路线较为成熟稳定等。缺点是其与开发语言紧密结合,小众的开发语言、数据库或一些不开源的数据库驱动连接方式,无法通过上述方式来实现密码功能的升级。另外,现有的技术路线多采用替换文件的方式实现功能升级,实施过程中需要业务系统重新加载被替换后的文件并发布应用,无法做到“热切换升级”。上述实现方式是基于数据库驱动层面实现密码功能升级,对于执行存储过程的一些场景缺乏有效的技术干预手段,还需要进一步完善。


(4)数据库网关。数据库网关(DataBase GateWay)以反向代理的方式串联在业务服务器与数据库服务器之间,通过接管网络通信,并解析内部数据库通信协议,透明地实现特定字段信息的安全防护,数据库网关架构如图 5 所示。


图 5 数据库网关架构


由于数据库网关是基于网络层来完成业务流程的接管,通过控制流量转发的方式,即可实现业务系统“零改造”“不停机”,将数据库访问信息转发至数据库网关。数据库网关根据监听到的业务系统与数据库服务器通信报文分析业务行为、业务数据,并根据拟定的数据保护策略,将符合策略保护的数据在网关中先行进行密码处理,按照数据传输流向封装成对应格式的报文进行传递。


数据库网关将网络接管能力、数据库通信分析能力及密码安全应用能力进行了整合,在技术层面上能够真正做到零改造(无需替换文件、无需重启服务)实现密码保护。但是,其流程中多了报文解析、组装,从实现原理上分析,性能较数据库驱动实现方式弱。另外,数据库通信协议的多样性、不同版本之间的差异性、数据库通信协议的保密性等问题,都是数据库网关应用的重点和难点。


3 驱动 / 内核层数据安全存储方案


数据在应用层面写入或读取,都会通过文件驱动或操作系统内核向块 / 簇层面完成交互。技术路线上,也可以在驱动 / 内核层面进行业务流程接管,最终实现数据存储或者读取时的透明密码操作。


通过对文件驱动或操作系统内核进行流程干预,当发现当前文件符合保护策略时,即进入密码保护处理流程。在驱动 / 内核层面,能够获取待操作文件存储路径、文件内容、访问进程等具体信息,可依托白名单等机制来实现是否进行自动加解密、完整性校验或文件的重定向等操作,待操作完成后即可按照原有业务流程进行处理。通常都会在应用中设定安全区、安全访问白名单,对存放在该区域内的文件自动进行机密性和完整性操作,只有在白名单内的进程进行访问时,方可自动进行解密或完成完整性校验,保障非授权访问的安全。


本节密码透明安全防护的技术路线以文件为最小单位,适用于数据库文件和其他常规文件,保护的执行效率较高,适用于大量非结构化数据统一进行安全存储的应用场景。由于该技术路线中防护对象的最小单位为文件,因此无法实现数据库字段级安全防护需求。


4 块 / 簇层数据安全存储方式


块 / 簇存储保护与驱动 / 内核保护原理基本一致,只是执行的层面是在更底层,处理的对象不再是文件数据,而是块 / 簇数据。


数据最终以块 / 簇数据的方式进行存储,当进行数据写入时,通常采用符合块 / 簇保护模式的密码算法快速实现数据加密处理,既保证安全性和计算效率,也要考虑数据随机读取的实际需求。当数据读取时,可以采用同样的加密模式进行解密,还原出原文信息。


数据的完整性计算往往会改变原有数据的大小。在块 / 簇存储模式下都是以固定字节大小的单位来实现存储,数据长度的变化很可能会引起跨块 / 簇存储,因此,在存储设备中实现块 /簇层完整性校验值存储的挑战较大,故现有的块存储安全手段多以加密主,同时兼顾完整性防护的较少。


相比于驱动 / 内核存储,块 / 簇存储的颗粒度更大,效率更高,其运行在存储的更底层,对 FC SAN、IP SAN 等新型网络存储也完全兼容,但是与驱动 / 内核存储一样,由于颗粒度更大,无法实现更加精细化的策略控制,适用于海量大数据加密存储。


5 方案比较


上文依次对应用层、驱动 / 内核层以及块 /簇层的数据存储保护的技术路线进行了说明,从技术原理等角度初步说明了各种模式下的数据保护方式。针对几种不同的数据存储保护方式,本文从不同角度进行了比较,结果如表 1 所示。


表 1 不同模式下数据安全存储方案比较


通过上表可以看出,若需对数据进行颗粒度较小的保护,不适合选择文件和磁盘加密模式;若需零改造实现数据的国密算法保护,采用数据库进行处理时,数据库网关模式是较好的方式;若基于文件进行处理,则文件加密方式是较好的实现方式;若需支持高性能大数据量的加解密服务,文件和磁盘加密则是较好的选择;若综合考虑集成改造成本、运算效率、保护颗粒度等因素,针对数据库来讲,数据库驱动模式则是较优的选择,而对于文件来讲,则推荐采用文件保护模式。


6 结 语


数据已经发展成为新型生产要素,也是数字经济的重要支撑,其安全性将大大影响数字经济的健康发展,密码技术是保障数据安全行之有效、经济实用的手段。本文结合现阶段数据类型以及数据的存储逻辑,逐层从技术原理、优缺点等方面阐述了主流数据存储保护的技术路线和效果,为系统运营者选择适合自己的数据保护手段提供参考。



转载来源:网络前沿观察