GaussDB技術解讀系列:高安全之密態等值

来源:https://www.cnblogs.com/huaweiyun/archive/2023/08/28/17662740.html
-Advertisement-
Play Games

第14屆中國資料庫技術大會的GaussDB“五高兩易”核心技術,給世界一個更優選擇專場,華為GaussDB首席安全架構師郭亮詳細解讀了GaussDB的高安全之密態等值技術。 ...


本文分享自華為雲社區《 DTCC 2023專家解讀 | GaussDB技術解讀系列:高安全之密態等值》,作者:GaussDB 資料庫。

近日,在第14屆中國資料庫技術大會(DTCC2023)的GaussDB“五高兩易”核心技術,給世界一個更優選擇專場,華為GaussDB首席安全架構師郭亮詳細解讀了GaussDB的高安全之密態等值技術。

cke_132.jpeg

以下為演講實錄:

各位嘉賓、各位老師下午好!我是GaussDB首席安全架構師郭亮,今天帶來的分享是GaussDB高安全的關鍵特性,名字叫密態等值,是我們做的一個關於全密態的關鍵能力。

數據成為生產要素,合規要求趨於嚴格

大家應該都有切身的體會,近些年來數據的重要性越來越高,特別是國家已經把數據明確定義為了生產要素。生產要素是什麼?就好像過去的石油,從工業革命時期開始,每一家工業企業幾乎都要用到,是生產過程中必不可少的東西。現在,國家把數據定義為生產要素,意味著數據在各個領域也將要廣泛的使用到。正因為這樣,數據也上升成為了國家的“戰略資源”。基於此,國家近些年發佈了《中華人民共和國數據安全法》、《中華人民共和國個人信息保護法》等一系列法律,對數據安全的保護標準和使用規範越來越明確、越來越嚴格,這是我們切身體會到的一個大的趨勢。

資料庫安全面臨更大的威脅和挑戰

在這種新形勢下,資料庫的安全也面臨很大的威脅。我們做了一個梳理,從裡到外,資料庫的安全問題一共有這幾個方面。首先是數據安全傳輸,從網路層面容易受到攻擊。大概20年前,安全人員在網路上部署一臺嗅探器,就可以獲取到許多的敏感信息。而之後陸續出現相關的標準和技術,經過一段時間的演進逐步成熟,演變成穩定的安全協議或安全架構,被廣泛使用起來。例如HTTPS、TLS等,通過這種安全協議上的消解,我們發現,現在很難通過網路攻擊,直接獲取到敏感的東西。

隨後我們發現,SQL註入,以及網頁跨站等問題開始越來越明顯,數據展示層的攻擊雖然和資料庫不直接相關,而是從資料庫把數據拿出來之後放到業務層,在業務層引入的風險,但這些風險也可以通過資料庫提供的能力進行消減,因此也納入資料庫威脅範圍內。同樣也是隨著技術的發展,一些穩定的安全框架、安全編碼規範形成之後,這部分的風險逐漸消減了。

再之後就是存儲。各類安全規範里經常會提及到存儲安全保護,因為我們知道數據一旦存在磁碟里,有可能永遠都在磁碟里,直到磁碟銷毀的那一天。如果裡面存放了敏感數據,理論上每一天都有被偷走的可能,所以存儲安全非常重要。關於這一點,相關的技術也在逐步成熟,像磁碟加密、透明加密等,而且各家機構企業也都非常重視對於物理硬體的保護,管理手段非常嚴格,所以磁碟被偷走的情況也很少出現。

最近幾年,我們經常看到各種各樣的嚴重安全事件,主要在兩個維度,一個是維護,一個是管理。維護就是後臺操作系統的人員做一些資料庫的維護操作,管理就是DBA通過資料庫標準通道做一些管理操作。這也不一定是內部人員有問題,也有可能是這些內部人員的賬號被泄露,近幾年世界知名的一些大型數據安全事件,大部分是在這兩個方面出了問題,都泄露了很多的數據,這是新形勢下最大的安全威脅。

GaussDB以數據為中心,構築起3+1安全架構

面對這些挑戰,GaussDB構築起了3+1的安全架構。

cke_133.png

這個架構的最外層,是基於智能化能力做一些風險、異常行為的感知,先感知有沒有惡意攻擊,阻擋一遍攻擊。中層是訪問控制能力,加上口令、身份認證等,進一步控制用戶訪問風險。裡層是數據加密、脫敏,直接在數據上做文章,因而攻擊者即使將外層全部攻破,拿走的也全部是密文狀態下的數據。

最後在這三層之外是審計,GaussDB做了很多細粒度的審計能力,還有防篡改。我們的審計日誌是改不了的,即使篡改了也能看出來哪裡被改了。所以,即使攻擊者做了很多操作,把資料庫也攻破了,但所有操作是跑不了的。

而我今天分享的就是全密態裡面的等值查詢。

GaussDB全密態等值查詢,實現數據全流程保護

全密態技術的原理很簡單。比如在使用的時候輸入一個SQL語句,加密驅動會找到哪個欄位需要加密,然後用一個密鑰把它自動加密,這樣加密完後整個流程都是密文的,整個資料庫跑的數據、以及跑完之後的結果都是密文數據,不論什麼時候把數據拿走,拿走的也都是密文的,因為在整個資料庫裡面沒有任何解密的過程。我們對查詢回來的密文結果在客戶端再進行解密,將明文數據返回給業務進行處理,從而能夠做到無感知的使用和業務遷移。

我們當前支持密態等值等查詢,很快還會支持密態範圍查詢和模糊查詢,都是基於密碼學的演算法。對於大規模數據,我們還可以基於密文數據進行索引和快速查詢,並且支持JDBC、GO、Libpq等多種客戶端驅動。

客戶端密鑰管理,保障服務可信

對加密來說,密鑰是最關鍵的,所以全密態最主要的是密鑰的分配。我們的全密態密鑰是在客戶端管理,一般屬於業務管理人員負責,業務管理人員拿到密鑰後把數據加密再交給資料庫。邏輯很簡單,我們在驅動層做了一個加密驅動,裡面做了自動加解密和自動解析,能夠自動識別哪個欄位需要哪個密鑰,再自動找到密鑰、自動加密。這樣只要業務不把密鑰許可權分配給到DBA和運維,他們就不能解密這部分數據,但是能夠正常運維,如果有極特殊的情況需要看到明文敏感數據才能做管理運維,也可以把密鑰賦權給相關人員。

cke_134.png

全流程加密,資料庫內部全流程零解密

第二層是加密,資料庫里的整個流程是沒有解密過程的,這是GaussDB實現的最主要的能力,包括傳輸、查詢、存儲等操作都有對應的方式,不需要解密再處理。但是,如果不單是在客戶端需要數據導出,假如後端也需要直接導出數據,我們也可以在某些特殊場景下把密鑰授權給下游做臨時解密。這是加密方面的情況介紹。

cke_135.png

客戶端輕量化解析,業務層加密透明無感知

另外,如何做到透明無感知?大家應該知道解析器是資料庫里的關鍵組件,我們在客戶端裡面做了一個輕量化解析器,對用戶輸入進去的SQL語句做自動的語法解析,找到哪個欄位需要加密,而對於返回過來的語法也進行對應的解析。做完這個解析,客戶端可以獲取到需要加密的數據以及該數據在原始語句中的位置,然後重新構造一個新的SQL語句,資料庫實際收到的就是加密之後的數據。

cke_136.png

經過客戶端的自動語法解析,自動密鑰管理和自動加密後,就可以繼承標準的SQL語法,實現業務的透明無感知。對於業務遷移,也只需要修改一下建表語句,配置數據加密的表和加密欄位即可,在實際增刪改查過程中,所有操作語句都是與明文一樣的。

全密態等值和傳統加密有什麼區別?我做了一個總結。函數加密,是用戶把密鑰給到資料庫,資料庫在執行函數時做一個加密動作,是在資料庫裡加密。透明加密是資料庫自己找一個密鑰,在磁碟落盤時做加密,是磁碟做加密。全密態等值是客戶找到密鑰之後先把數據加密,再交給資料庫,全生命周期都是密文的。

cke_137.png

應用案例

自己生產的降落傘自己先跳,GaussDB的全密態能力已經在華為的MetaERP系統商用了。不久前,華為宣佈實現自主創新的MetaERP研發,完成對舊ERP系統的替換,目前已覆蓋了華為公司100%的業務場景和80%的業務量。ERP作為華為企業經營最核心的系統,伴隨著華為20多年的快速發展,支撐了每年數千億產值的業務以及全球170+國家業務高效經營。

我們分析過一個業務,其中有270多個絕密欄位,任何一個環節發生數據泄露都是重大事故。而之前的傳統方案,是強制在應用層加密,加密完成後存到資料庫,用數據的時候,先把數據查詢出來之後做解密再使用,資料庫做不了任何事情,這種方案加密時間長,性能損耗大,密鑰需要自管,所以上了全密態。

剛開始做自己的ERP系統的時候,資料庫的容量、性能,特別是對批量數據的查詢和處理,都是空前挑戰。因為ERP業務實際是不看TPCC等基準測試指標的,他們只看實際業務場景的性能,比如批量插入、批量查詢等,這給我們提供了一個良好的訓練場,我們對批量處理性能等多種場景的實際應用都進行很大的優化,確保MetaERP在全密態下能滿足業務對性能的要求。

另外,ERP應用的時候有一個特點,交易查詢完之後,下游還有一個分析庫處理,我們有一個密鑰授權能力,在業務負責人將密鑰許可權授權下游處理節點後,資料庫就把密文數據解密後托管給下游處理,這樣後臺數據就可以不經過客戶端,不同的應用只需要使用同一個KMS(密鑰管理)就可以操作同一部分數據。另外,只要業務負責人不把密鑰授權給其他任何人,就沒有人能處理這個數據,包括管理和運維人員。

cke_138.png

最後是我們獲得的一些成績,GaussDB是國內首個通過國際CC EAL4+認證的資料庫,也是國內首批通過信通院全密態資料庫評測、國內首家通過信通院防篡改資料庫評測的資料庫產品。

今天的分享就到這裡,謝謝大家。

 

點擊關註,第一時間瞭解華為雲新鮮技術~

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • > 利用for迴圈語句, # 方案一 ##### > 定義1到10的變數,for語句引用該變數 ### 單行代碼 `list="1 2 3 4 5 6 7 8 9 10"; for i in $list; do echo $i; done` ### 多行代碼 for……do……done ``` li ...
  • # 鍵盤敲入 A 字母時,操作系統期間發生了什麼? 關於[8.1 鍵盤敲入 A 字母時,操作系統期間發生了什麼?](https://xiaolincoding.com/os/7_device/device.html)的總結,前面都介紹了,但是在最後總結操作系統發生了什麼的時候,我覺得有點不詳細,於是 ...
  • # Git和Gitlab使用 ## 前言 **版本控制概念**:記錄開發文件的時間機器 **分類**:1.本地版本控制系統、2.集中化的版本控制系統CVS、Subversion(SVN)、3.分散式版本控制系統GIT **產品**:github、git、gitlab ## Gitlab部署 **1. ...
  • 很多運維同學都遇到過“磁碟告警”,遇到這種情況就需要去清理磁碟。 這時候,很多同學通過各種途徑、手段、命令找到了占用磁碟比較大的文件,然後大手一揮, sudo rm -rvf xxxxx.log 以為這樣任務就完成了,誰知道,一查詢磁碟使用量還是居高不下,完全沒有釋放。 這是因為在Linux中,如果 ...
  • 進程是正在運行的程式的實例,它可以包含一個或多個線程。我們瞭解了進程的執行方式,包括早期單核處理器上的順序執行以及引入多任務概念實現的偽並行。我們還探討了進程的狀態模型。進程可以處於就緒、運行、阻塞和結束等不同的狀態。就緒狀態表示進程已經準備好運行,但還沒有被調度執行。運行狀態表示進程正在執行。阻塞... ...
  • ![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230825164340432-1938857156.png) # 1. 連接 ## 1.1. 笛卡兒積 ### 1.1.1. 交叉連接(cross join) ### 1.1 ...
  • ![file](https://img2023.cnblogs.com/other/2685289/202308/2685289-20230828190238753-1379880889.png) 視頻貢獻者 | 王維饒 視頻製作者 | 聶同學 編輯整理 | Debra Chen > Apache ...
  • ![file](https://img2023.cnblogs.com/other/3195851/202308/3195851-20230828185450336-2138333694.png) > 時隔兩個月, Apache SeaTunnel 終於迎來大版本更新。此次發佈的 2.3.3 版本在 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...