數字經濟時代的數據存儲保護方法研究
摘 要
數據作為新型生產要素,是我國數字經濟發展戰略的重要基石,數據自身的安全是數字經濟健康發展的基本保障。《中華人民共和國數據安全法》明確,需采取必要措施確保數據處于有效保護和合法利用的狀態,以及具備保障持續安全狀態的能力。亟需運用密碼技術構建數據安全防護體系,維護數據的完整性、保密性和可用性,保障我國數字經濟健康發展。論述了數據存儲的方式及面臨的安全威脅,以及應用層、驅動 / 內核層、塊 / 簇層基于密碼的數據保護模式,實現了數據存儲的安全保護。
內容目錄:
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 結 語
數據已經發展成為新型生產要素,也是數字經濟的重要支撐,其安全性將大大影響數字經濟的健康發展,密碼技術是保障數據安全行之有效、經濟實用的手段。本文結合現階段數據類型以及數據的存儲邏輯,逐層從技術原理、優缺點等方面闡述了主流數據存儲保護的技術路線和效果,為系統運營者選擇適合自己的數據保護手段提供參考。













