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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...