DTCC 2023專家解讀 | GaussDB技術解讀系列:高安全之密態(tài)等值
8月16日,在第14屆中國數(shù)據(jù)庫技術大會(DTCC2023)的GaussDB“五高兩易”核心技術,給世界一個更優(yōu)選擇專場,華為GaussDB首席安全架構師郭亮詳細解讀了GaussDB的高安全之密態(tài)等值技術。

以下為演講實錄:
數(shù)據(jù)成為生產要素,合規(guī)要求趨于嚴格
大家應該都有切身的體會,近些年數(shù)據(jù)的重要性越來越高,特別是國家已經把數(shù)據(jù)明確定義為了生產要素。生產要素是什么?就好像過去的石油,從工業(yè)革命時期開始,每一家工業(yè)企業(yè)幾乎都要用到,是生產過程中必不可少的東西?,F(xiàn)在,國家把數(shù)據(jù)定義為生產要素,意味著數(shù)據(jù)在各個領域也將要廣泛地使用到。正因為這樣,數(shù)據(jù)也上升成為了國家的“戰(zhàn)略資源”?;诖?,國家近些年發(fā)布了《中華人民共和國數(shù)據(jù)安全法》、《中華人民共和國個人信息保護法》等一系列法律,對數(shù)據(jù)安全的保護標準和使用規(guī)范越來越明確、越來越嚴格,這是我們切身體會到的一個大的趨勢。
數(shù)據(jù)庫安全面臨更大的威脅和挑戰(zhàn)
在這種新形勢下,數(shù)據(jù)庫的安全也面臨很大的威脅。我們做了一個梳理,從里到外,數(shù)據(jù)庫的安全問題一共有以下幾個方面:
首先,數(shù)據(jù)安全傳輸從網絡層面容易受到攻擊。大概20年前,安全人員在網絡上部署一臺嗅探器,就可以獲取到許多的敏感信息。而之后陸續(xù)出現(xiàn)相關的標準和技術,經過一段時間的演進逐步成熟,演變成穩(wěn)定的安全協(xié)議或安全架構,被廣泛使用起來。例如HTTPS、TLS等,通過這種安全協(xié)議上的消解,我們發(fā)現(xiàn),現(xiàn)在很難通過網絡攻擊,直接獲取到敏感的東西。
隨后我們發(fā)現(xiàn),SQL注入,以及網頁跨站等問題開始越來越明顯,數(shù)據(jù)展示層的攻擊雖然和數(shù)據(jù)庫不直接相關,而是從數(shù)據(jù)庫把數(shù)據(jù)拿出來之后放到業(yè)務層,在業(yè)務層引入的風險,但這些風險也可以通過數(shù)據(jù)庫提供的能力進行消減,因此也納入數(shù)據(jù)庫威脅范圍內。同樣也是隨著技術的發(fā)展,一些穩(wěn)定的安全框架、安全編碼規(guī)范形成之后,這部分的風險逐漸消減了。
其次是存儲。各類安全規(guī)范里經常會提及到存儲安全保護,因為我們知道數(shù)據(jù)一旦存在磁盤里,有可能永遠都在磁盤里,直到磁盤銷毀的那一天。如果里面存放了敏感數(shù)據(jù),理論上每一天都有被偷走的可能,所以存儲安全非常的重要。關于這一點,相關的技術也在逐步成熟,像磁盤加密、透明加密等,而且各家機構企業(yè)也都非常重視對于物理硬件的保護,管理手段非常嚴格,所以磁盤被偷走的情況也很少出現(xiàn)。
最近幾年,我們經??吹礁鞣N各樣的嚴重安全事件,主要在兩個維度,一個是維護,一個是管理。維護就是后臺操作系統(tǒng)的人員做一些數(shù)據(jù)庫的維護操作,管理就是DBA通過數(shù)據(jù)庫標準通道做一些管理操作。這也不一定是內部人員有問題,也有可能是這些內部人員的賬號被泄露,近幾年世界知名的一些大型數(shù)據(jù)安全事件,大部分是在這兩個方面出了問題,都泄露了很多的數(shù)據(jù),這是新形勢下最大的安全威脅。
GaussDB以數(shù)據(jù)為中心?構筑起3+1安全架構
面對這些挑戰(zhàn),GaussDB構筑起了3+1的安全架構。

這個架構的最外層,是基于智能化能力做一些風險、異常行為的感知,先感知有沒有惡意攻擊,阻擋一遍攻擊。中層是訪問控制能力,加上口令、身份認證等,進一步控制用戶訪問風險。里層是數(shù)據(jù)加密、脫敏,直接在數(shù)據(jù)上做文章,因而攻擊者即使將外層全部攻破,拿走的也全部是密文狀態(tài)下的數(shù)據(jù)。
最后在這三層之外是審計,GaussDB做了很多細粒度的審計能力,還有防篡改。我們的審計日志是改不了的,即使篡改了,也能看出來哪里被改了。所以,即使攻擊者做了很多操作,把數(shù)據(jù)庫也攻破了,但所有操作是跑不了的。
而我今天分享的就是全密態(tài)里面的等值查詢。
GaussDB全密態(tài)等值查詢?實現(xiàn)數(shù)據(jù)全流程保護
全密態(tài)技術的原理很簡單。比如在使用的時候輸入一個SQL語句,加密驅動會找到哪個字段需要加密,然后用一個密鑰把它自動加密,這樣加密完后整個流程都是密文的,整個數(shù)據(jù)庫跑的數(shù)據(jù)、以及跑完之后的結果都是密文數(shù)據(jù),不論什么時候把數(shù)據(jù)拿走,拿走的也都是密文的,因為在整個數(shù)據(jù)庫里面沒有任何解密的過程。我們對查詢回來的密文結果在客戶端再進行解密,將明文數(shù)據(jù)返回給業(yè)務進行處理,從而能夠做到無感知的使用和業(yè)務遷移。
我們當前支持密態(tài)等值等查詢,很快還會支持密態(tài)范圍查詢和模糊查詢,都是基于密碼學的算法。對于大規(guī)模數(shù)據(jù),我們還可以基于密文數(shù)據(jù)進行索引和快速查詢,并且支持JDBC、GO、Libpq等多種客戶端驅動。
客戶端密鑰管理,保障服務可信
對加密來說,密鑰是最關鍵的,所以全密態(tài)最主要的是密鑰的分配。我們的全密態(tài)密鑰是在客戶端管理,一般屬于業(yè)務管理人員負責,業(yè)務管理人員拿到密鑰后把數(shù)據(jù)加密再交給數(shù)據(jù)庫。邏輯很簡單,我們在驅動層做了一個加密驅動,里面做了自動加解密和自動解析,能夠自動識別哪個字段需要哪個密鑰,再自動找到密鑰、自動加密。這樣只要業(yè)務不把密鑰權限分配給DBA和運維,他們就不能解密這部分數(shù)據(jù),但是能夠正常運維,如果有極特殊的情況需要看到明文敏感數(shù)據(jù)才能做管理運維,也可以把密鑰賦權給相關人員。

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

客戶端輕量化解析?業(yè)務層加密透明無感
另外,如何做到透明無感知?解析器是數(shù)據(jù)庫里的關鍵組件,我們在客戶端里面做了一個輕量化解析器,對用戶輸入進去的SQL語句做自動的語法解析,找到哪個字段需要加密,而對于返回過來的語法也進行對應的解析。做完這個解析,客戶端可以獲取到需要加密的數(shù)據(jù)以及該數(shù)據(jù)在原始語句中的位置,然后重新構造一個新的SQL語句,數(shù)據(jù)庫實際收到的就是加密之后的數(shù)據(jù)。

經過客戶端的自動語法解析,自動密鑰管理和自動加密后,就可以繼承標準的SQL語法,實現(xiàn)業(yè)務的透明無感知。對于業(yè)務遷移,也只需要修改一下建表語句,配置數(shù)據(jù)加密的表和加密字段即可,在實際增刪改查過程中,所有操作語句都是與明文一樣的。
全密態(tài)等值和傳統(tǒng)加密有什么區(qū)別?我做了一個總結。
函數(shù)加密:是用戶把密鑰給到數(shù)據(jù)庫,數(shù)據(jù)庫在執(zhí)行函數(shù)時做一個加密動作,是在數(shù)據(jù)庫里加密。
透明加密:數(shù)據(jù)庫自己找一個密鑰,在磁盤落盤時做加密,是磁盤做加密。
全密態(tài):全密態(tài)等值是客戶找到密鑰之后先把數(shù)據(jù)加密,再交給數(shù)據(jù)庫,全生命周期都是密文的。

應用案例
自己生產的降落傘自己先跳,GaussDB的全密態(tài)能力已經在華為的MetaERP系統(tǒng)商用了。不久前,華為宣布實現(xiàn)自主創(chuàng)新的MetaERP研發(fā),完成對舊ERP系統(tǒng)的替換,目前已覆蓋了華為公司100%的業(yè)務場景和80%的業(yè)務量。ERP作為華為企業(yè)經營最核心的系統(tǒng),伴隨著華為20多年的快速發(fā)展,支撐了每年數(shù)千億產值的業(yè)務以及全球170+國家業(yè)務高效經營。
我們分析過一個業(yè)務,其中有270多個絕密字段,任何一個環(huán)節(jié)發(fā)生數(shù)據(jù)泄露都是重大事故。而之前的傳統(tǒng)方案,是強制在應用層加密,加密完成后存到數(shù)據(jù)庫,用數(shù)據(jù)的時候,先把數(shù)據(jù)查詢出來之后做解密再使用,數(shù)據(jù)庫做不了任何事情,這種方案加密時間長,性能損耗大,密鑰需要自管,所以上了全密態(tài)。
剛開始做自己的ERP系統(tǒng)的時候,數(shù)據(jù)庫的容量、性能,特別是對批量數(shù)據(jù)的查詢和處理,都是空前挑戰(zhàn)。因為ERP業(yè)務實際是不看TPCC等基準測試指標的,他們只看實際業(yè)務場景的性能,比如批量插入、批量查詢等,這給我們提供了一個良好的訓練場,我們對批量處理性能等多種場景的實際應用都進行很大的優(yōu)化,確保MetaERP在全密態(tài)下能滿足業(yè)務對性能的要求。
另外,ERP應用的時候有一個特點,交易查詢完之后,下游還有一個分析庫處理,我們有一個密鑰授權能力,在業(yè)務負責人將密鑰權限授權下游處理節(jié)點后?,數(shù)據(jù)庫就把密文數(shù)據(jù)解密后托管給下游處理,這樣后臺數(shù)據(jù)就可以不經過客戶端,不同的應用只需要使用同一個KMS(密鑰管理)就可以操作同一部分數(shù)據(jù)。另外,只要業(yè)務負責人不把密鑰授權給其他任何人,就沒有人能處理這個數(shù)據(jù),包括管理和運維人員。

最后是我們獲得的一些成績,GaussDB是國內首個通過國際CC EAL4+認證的數(shù)據(jù)庫,也是國內首批通過信通院全密態(tài)數(shù)據(jù)庫評測、國內首家通過信通院防篡改數(shù)據(jù)庫評測的數(shù)據(jù)庫產品。
今天的分享就到這里,謝謝大家。