第14屆中國資料庫技術大會的GaussDB“五高兩易”核心技術,給世界一個更優選擇專場,華為GaussDB首席安全架構師郭亮詳細解讀了GaussDB的高安全之密態等值技術。 ...
本文分享自華為雲社區《 DTCC 2023專家解讀 | GaussDB技術解讀系列:高安全之密態等值》,作者:GaussDB 資料庫。
近日,在第14屆中國資料庫技術大會(DTCC2023)的GaussDB“五高兩易”核心技術,給世界一個更優選擇專場,華為GaussDB首席安全架構師郭亮詳細解讀了GaussDB的高安全之密態等值技術。
以下為演講實錄:
各位嘉賓、各位老師下午好!我是GaussDB首席安全架構師郭亮,今天帶來的分享是GaussDB高安全的關鍵特性,名字叫密態等值,是我們做的一個關於全密態的關鍵能力。
數據成為生產要素,合規要求趨於嚴格
大家應該都有切身的體會,近些年來數據的重要性越來越高,特別是國家已經把數據明確定義為了生產要素。生產要素是什麼?就好像過去的石油,從工業革命時期開始,每一家工業企業幾乎都要用到,是生產過程中必不可少的東西。現在,國家把數據定義為生產要素,意味著數據在各個領域也將要廣泛的使用到。正因為這樣,數據也上升成為了國家的“戰略資源”。基於此,國家近些年發佈了《中華人民共和國數據安全法》、《中華人民共和國個人信息保護法》等一系列法律,對數據安全的保護標準和使用規範越來越明確、越來越嚴格,這是我們切身體會到的一個大的趨勢。
資料庫安全面臨更大的威脅和挑戰
在這種新形勢下,資料庫的安全也面臨很大的威脅。我們做了一個梳理,從裡到外,資料庫的安全問題一共有這幾個方面。首先是數據安全傳輸,從網路層面容易受到攻擊。大概20年前,安全人員在網路上部署一臺嗅探器,就可以獲取到許多的敏感信息。而之後陸續出現相關的標準和技術,經過一段時間的演進逐步成熟,演變成穩定的安全協議或安全架構,被廣泛使用起來。例如HTTPS、TLS等,通過這種安全協議上的消解,我們發現,現在很難通過網路攻擊,直接獲取到敏感的東西。
隨後我們發現,SQL註入,以及網頁跨站等問題開始越來越明顯,數據展示層的攻擊雖然和資料庫不直接相關,而是從資料庫把數據拿出來之後放到業務層,在業務層引入的風險,但這些風險也可以通過資料庫提供的能力進行消減,因此也納入資料庫威脅範圍內。同樣也是隨著技術的發展,一些穩定的安全框架、安全編碼規範形成之後,這部分的風險逐漸消減了。
再之後就是存儲。各類安全規範里經常會提及到存儲安全保護,因為我們知道數據一旦存在磁碟里,有可能永遠都在磁碟里,直到磁碟銷毀的那一天。如果裡面存放了敏感數據,理論上每一天都有被偷走的可能,所以存儲安全非常重要。關於這一點,相關的技術也在逐步成熟,像磁碟加密、透明加密等,而且各家機構企業也都非常重視對於物理硬體的保護,管理手段非常嚴格,所以磁碟被偷走的情況也很少出現。
最近幾年,我們經常看到各種各樣的嚴重安全事件,主要在兩個維度,一個是維護,一個是管理。維護就是後臺操作系統的人員做一些資料庫的維護操作,管理就是DBA通過資料庫標準通道做一些管理操作。這也不一定是內部人員有問題,也有可能是這些內部人員的賬號被泄露,近幾年世界知名的一些大型數據安全事件,大部分是在這兩個方面出了問題,都泄露了很多的數據,這是新形勢下最大的安全威脅。
GaussDB以數據為中心,構築起3+1安全架構
面對這些挑戰,GaussDB構築起了3+1的安全架構。
這個架構的最外層,是基於智能化能力做一些風險、異常行為的感知,先感知有沒有惡意攻擊,阻擋一遍攻擊。中層是訪問控制能力,加上口令、身份認證等,進一步控制用戶訪問風險。裡層是數據加密、脫敏,直接在數據上做文章,因而攻擊者即使將外層全部攻破,拿走的也全部是密文狀態下的數據。
最後在這三層之外是審計,GaussDB做了很多細粒度的審計能力,還有防篡改。我們的審計日誌是改不了的,即使篡改了也能看出來哪裡被改了。所以,即使攻擊者做了很多操作,把資料庫也攻破了,但所有操作是跑不了的。
而我今天分享的就是全密態裡面的等值查詢。
GaussDB全密態等值查詢,實現數據全流程保護
全密態技術的原理很簡單。比如在使用的時候輸入一個SQL語句,加密驅動會找到哪個欄位需要加密,然後用一個密鑰把它自動加密,這樣加密完後整個流程都是密文的,整個資料庫跑的數據、以及跑完之後的結果都是密文數據,不論什麼時候把數據拿走,拿走的也都是密文的,因為在整個資料庫裡面沒有任何解密的過程。我們對查詢回來的密文結果在客戶端再進行解密,將明文數據返回給業務進行處理,從而能夠做到無感知的使用和業務遷移。
我們當前支持密態等值等查詢,很快還會支持密態範圍查詢和模糊查詢,都是基於密碼學的演算法。對於大規模數據,我們還可以基於密文數據進行索引和快速查詢,並且支持JDBC、GO、Libpq等多種客戶端驅動。
客戶端密鑰管理,保障服務可信
對加密來說,密鑰是最關鍵的,所以全密態最主要的是密鑰的分配。我們的全密態密鑰是在客戶端管理,一般屬於業務管理人員負責,業務管理人員拿到密鑰後把數據加密再交給資料庫。邏輯很簡單,我們在驅動層做了一個加密驅動,裡面做了自動加解密和自動解析,能夠自動識別哪個欄位需要哪個密鑰,再自動找到密鑰、自動加密。這樣只要業務不把密鑰許可權分配給到DBA和運維,他們就不能解密這部分數據,但是能夠正常運維,如果有極特殊的情況需要看到明文敏感數據才能做管理運維,也可以把密鑰賦權給相關人員。
全流程加密,資料庫內部全流程零解密
第二層是加密,資料庫里的整個流程是沒有解密過程的,這是GaussDB實現的最主要的能力,包括傳輸、查詢、存儲等操作都有對應的方式,不需要解密再處理。但是,如果不單是在客戶端需要數據導出,假如後端也需要直接導出數據,我們也可以在某些特殊場景下把密鑰授權給下游做臨時解密。這是加密方面的情況介紹。
客戶端輕量化解析,業務層加密透明無感知
另外,如何做到透明無感知?大家應該知道解析器是資料庫里的關鍵組件,我們在客戶端裡面做了一個輕量化解析器,對用戶輸入進去的SQL語句做自動的語法解析,找到哪個欄位需要加密,而對於返回過來的語法也進行對應的解析。做完這個解析,客戶端可以獲取到需要加密的數據以及該數據在原始語句中的位置,然後重新構造一個新的SQL語句,資料庫實際收到的就是加密之後的數據。
經過客戶端的自動語法解析,自動密鑰管理和自動加密後,就可以繼承標準的SQL語法,實現業務的透明無感知。對於業務遷移,也只需要修改一下建表語句,配置數據加密的表和加密欄位即可,在實際增刪改查過程中,所有操作語句都是與明文一樣的。
全密態等值和傳統加密有什麼區別?我做了一個總結。函數加密,是用戶把密鑰給到資料庫,資料庫在執行函數時做一個加密動作,是在資料庫裡加密。透明加密是資料庫自己找一個密鑰,在磁碟落盤時做加密,是磁碟做加密。全密態等值是客戶找到密鑰之後先把數據加密,再交給資料庫,全生命周期都是密文的。
應用案例
自己生產的降落傘自己先跳,GaussDB的全密態能力已經在華為的MetaERP系統商用了。不久前,華為宣佈實現自主創新的MetaERP研發,完成對舊ERP系統的替換,目前已覆蓋了華為公司100%的業務場景和80%的業務量。ERP作為華為企業經營最核心的系統,伴隨著華為20多年的快速發展,支撐了每年數千億產值的業務以及全球170+國家業務高效經營。
我們分析過一個業務,其中有270多個絕密欄位,任何一個環節發生數據泄露都是重大事故。而之前的傳統方案,是強制在應用層加密,加密完成後存到資料庫,用數據的時候,先把數據查詢出來之後做解密再使用,資料庫做不了任何事情,這種方案加密時間長,性能損耗大,密鑰需要自管,所以上了全密態。
剛開始做自己的ERP系統的時候,資料庫的容量、性能,特別是對批量數據的查詢和處理,都是空前挑戰。因為ERP業務實際是不看TPCC等基準測試指標的,他們只看實際業務場景的性能,比如批量插入、批量查詢等,這給我們提供了一個良好的訓練場,我們對批量處理性能等多種場景的實際應用都進行很大的優化,確保MetaERP在全密態下能滿足業務對性能的要求。
另外,ERP應用的時候有一個特點,交易查詢完之後,下游還有一個分析庫處理,我們有一個密鑰授權能力,在業務負責人將密鑰許可權授權下游處理節點後,資料庫就把密文數據解密後托管給下游處理,這樣後臺數據就可以不經過客戶端,不同的應用只需要使用同一個KMS(密鑰管理)就可以操作同一部分數據。另外,只要業務負責人不把密鑰授權給其他任何人,就沒有人能處理這個數據,包括管理和運維人員。
最後是我們獲得的一些成績,GaussDB是國內首個通過國際CC EAL4+認證的資料庫,也是國內首批通過信通院全密態資料庫評測、國內首家通過信通院防篡改資料庫評測的資料庫產品。
今天的分享就到這裡,謝謝大家。