數(shù)據(jù)安全治理關(guān)鍵技術(shù)之?dāng)?shù)據(jù)庫脫敏技術(shù)詳解
數(shù)據(jù)安全治理之API監(jiān)測系統(tǒng) ,解決API接口安全問題【安華金和】
新一代數(shù)據(jù)庫脫敏技術(shù),為敏感數(shù)據(jù)建立保護(hù)盾!
數(shù)據(jù)庫脫敏系統(tǒng)與金融行業(yè)案例解讀
數(shù)據(jù)安全治理建設(shè)思路的著力點(diǎn)——數(shù)據(jù)安全咨詢服務(wù)【安華金和】
數(shù)據(jù)庫防火墻功能有哪些?-數(shù)據(jù)安全-安華金和
數(shù)據(jù)安全關(guān)鍵技術(shù)之?dāng)?shù)據(jù)庫脫敏技術(shù)詳解【安華金和】
中國數(shù)據(jù)安全治理落地指導(dǎo)書籍《數(shù)據(jù)安全治理白皮書5.0》正式發(fā)布(附下載)
數(shù)據(jù)安全是數(shù)據(jù)庫安全性的核心要素,達(dá)夢數(shù)據(jù)庫(以下簡稱達(dá)夢)從多維度、不同層面對用戶數(shù)據(jù)實(shí)現(xiàn)立體式保護(hù)??v向來看,登錄用戶的賬戶密碼每次使用協(xié)商的密鑰加密傳輸、 對用戶數(shù)據(jù)庫操作的每個(gè)動作進(jìn)行嚴(yán)格的權(quán)限檢查、數(shù)據(jù)落地的完整性校驗(yàn)和完備的TDE加密方案。橫向來看,用戶和用戶之間是會話獨(dú)立的、操作層面實(shí)現(xiàn)REDO、UNDO等恢復(fù)保護(hù)機(jī)制、落地?cái)?shù)據(jù)提供雙寫文件等備份機(jī)制。
鑒于達(dá)夢安全體系的復(fù)雜性,我們對其研究不能做到面面俱到。本文的分析基于達(dá)夢7.6版本,側(cè)重討論其加密體系,并在此基礎(chǔ)上觀察當(dāng)前的加密體系存在的安全性風(fēng)險(xiǎn),給出有效的解決方案。
加密體系
提起數(shù)據(jù)庫加密,大家最先想到的可能就是TDE加密。TDE加密保護(hù)的是用戶數(shù)據(jù),理所當(dāng)然是加密中的重中之重。除此之外,用戶身份認(rèn)證、通訊加密、多級密鑰管理等也不可或缺。
1、密鑰管理
達(dá)夢使用多級密鑰管理方式保證數(shù)據(jù)庫密鑰的安全性。達(dá)夢安裝時(shí)通過RSA生成1024位的公私鑰對,用公鑰加密叫做SVRKEY的服務(wù)器主密鑰,私鑰PRIKEY被單獨(dú)加密存儲在本地文件中。主密鑰再加密叫做DBKEY的二級密鑰。二級密鑰用來加密全庫加密的密鑰、用戶表空間的密鑰、REDO日志的密鑰等。除主密鑰的加密使用RSA算法外,其它密鑰包括PRIKEY都是用AES加密的。
多級密鑰的架構(gòu)
2、身份認(rèn)證及密碼存儲
達(dá)夢使用賬戶密碼的登錄方式進(jìn)行身份認(rèn)證。賬戶密碼的是以密文形式傳輸?shù)?,其加密使用的密鑰是在客戶端和服務(wù)器建立會話時(shí)進(jìn)行協(xié)商的,一次一密。
新建用戶初次設(shè)置登錄密碼時(shí),數(shù)據(jù)庫只存儲加密后的密碼,并且不會保存任何形式的明文密碼。
3、通訊加密
達(dá)夢支持SSL加密通訊,默認(rèn)情況下SSL加密通訊不開啟。關(guān)于SSL不做進(jìn)一步討論,客戶SSL設(shè)置如圖2所示。
達(dá)夢客戶端SSL設(shè)置
表空間TDE安全性
達(dá)夢的表空間可以按創(chuàng)建方式分為兩種,第一種是創(chuàng)建數(shù)據(jù)庫時(shí)系統(tǒng)生成的,我們把這種叫默認(rèn)表空間,另外一種是用戶創(chuàng)建的,叫做用戶表空間。默認(rèn)表空間加密只能使用全庫加密方式,在用戶創(chuàng)建數(shù)據(jù)庫時(shí)指明。使用全庫加密后不再支持單獨(dú)新建的加密表空間,可以認(rèn)為全庫加密是表空間加密的一種特例。默認(rèn)表空間包括日志文件的密鑰存儲在系統(tǒng)文件的控制頁中,用戶表空間的密鑰存儲在控制文件中。
默認(rèn)表空間密鑰及算法
用戶表空間密鑰及算法
達(dá)夢表空間加密支持AES等高安全性算法。既然算法是安全的,唯一需要關(guān)心的就是密鑰的安全性。然而表空間的密鑰是落地存儲的,其安全性只能依賴于加密該表空間密鑰的算法強(qiáng)度及密鑰的安全程度。算法方面,如前所述各級密鑰管理均使用高強(qiáng)度的加密算法,略顯不足的是AES算法使用IV是固定不變的,這在一定程度上弱化了加密強(qiáng)度。另一方面,由于多級密鑰管理的緣故,密鑰安全性形成層層依賴的關(guān)系。根密鑰即加密PRIKEY的密鑰的安全性至關(guān)重,達(dá)夢的根密鑰雖然沒有落地,但其生成方式很容易被獲取。有了根密鑰就能依次解密各級密鑰,最終得到表空間密鑰,順利的解密想要的數(shù)據(jù)。
認(rèn)證及密碼安全性
用戶登錄服務(wù)器時(shí),客戶端首先使用Diffie-Hellman算法產(chǎn)生一對公私鑰,然后發(fā)送自己的公鑰給服務(wù)器,服務(wù)器收到客戶端的會話請求后使用相同的算法生成自己的公私鑰,并且把公鑰發(fā)送給客戶端。雙方會根據(jù)對方的公鑰及自己的私鑰計(jì)算出相同的數(shù)值串作為共享密鑰,客戶端以該密鑰使用對稱加密算法加密登錄賬戶密碼,服務(wù)器收到密文形式的賬戶密碼后再以自己計(jì)算的密鑰解密。
用戶登錄過程的密碼傳輸
從登錄的過程來看,每次會話雙方都會交換公鑰,然后隨機(jī)生成加密密鑰,這樣可以確保登錄賬戶的安全。根據(jù)Diffie-Hellman算法可知,雙方公私鑰的生成依賴于兩個(gè)公共的參數(shù),而這兩個(gè)公共參數(shù)是可以被第三方獲取到的。拿到參數(shù)的第三方可以偽裝成服務(wù)器的角色監(jiān)聽客戶端的會話請求,從而獲取登錄賬戶密碼,然后再以客戶端的角色利用獲取的賬戶信息登錄真正的服務(wù)器,實(shí)現(xiàn)中間人劫持攻擊。這種方式的缺陷是通訊雙方?jīng)]有進(jìn)行的身份認(rèn)證(安華金和提交漏洞CNNVD-201901-1090)。
服務(wù)器在拿到明文的賬戶密碼后,會進(jìn)行比對驗(yàn)證。前面我們提到用戶密碼是以密文形式存儲的,服務(wù)器首先要對收到的密碼做加密處理,生成固定長度的密文串。然后把該密文串和初次設(shè)定的密碼密文進(jìn)行比較。用戶密碼雖然是以密文形式存儲的,但是其生成過程并不安全。
緩解措施
達(dá)夢的加密體系不管是多層密鑰管理還是用戶認(rèn)證登錄,或多或少存在一些問題。而這些問題容易被利用形成潛在攻擊面,給用戶財(cái)產(chǎn)造成巨大的損失。一般來說廠商對漏洞問題的修復(fù)需要一定的周期,就算是廠商能及時(shí)進(jìn)行修復(fù),用戶也會因?yàn)楦鞣N因素考慮是否安裝補(bǔ)丁或者升級到新的版本。
安華金和針對上述問題提出了自己的解決方案。我們的DBCoffer TDE系列產(chǎn)品,除支持AES等國際商密算法外,更是支持安全性高的國密SM1和SM4算法;KMS動態(tài)密鑰生成、隔離機(jī)制,即使在密鑰泄露、加密失效(安華金和提交漏洞CNNVD-201812-1421)情況下也可以有效防護(hù)用戶數(shù)據(jù)的安全;我們產(chǎn)品的權(quán)限管理機(jī)制可以從不同的訪問維度針對性做防控策略,即使用戶密碼被盜的情況下,我們也可以根據(jù)登錄用戶的屬性的變化做到訪問控制。
此外,我們的漏洞掃描產(chǎn)品DBScan,防火墻DBFirewall也針對上述問題添加了相應(yīng)的規(guī)則和特征,能幫助用戶及時(shí)有效發(fā)現(xiàn)和阻斷惡意攻擊。