2016-05-29 72 views
3

This article就加密MariaDB數據庫表提供了廣泛的討論。另一個優秀的資源是this one。他們沒有提到的一件事就是在哪裏定義表級加密配置。我是否認爲這應該通過MariaDB/MySQL表加密

  • 放置相關指令,例如, plugin-load-add=file_key_management_plugin.so/etc/mysql/my.cnf系統
  • 創建加密密鑰
  • 重新啓動MariaDB的服務器,最後,
  • 發佈對每個表中的ALTER TABLE ENCRYPTED=YES ENCRYPTION_KEY_ID=NN;要加密

即使這是正確的有一個這裏提到的問題讓我想起 - 如果攻擊者同時訪問加密的密鑰文件,這種加密將如何保護受損數據?可能的解決方案是將加密密鑰存儲在只能從指定IP地址訪問的NFS共享文件夾中嗎?

回答

5

This article應回答有關在MariaDB中設置此問題的大部分問題。與配置加密有關的答案本質上是「你說得對」,但你也應該考慮加密日誌文件(文章描述如何)。

對於後者,如果爲了竊取數據而對服務器進行物理刪除,那麼使用具有有限訪問權限的NFS卷應該提供良好的保護,但對於某人在系統正常運行時可以訪問系統的情況,它似乎是一個不太穩固的解決方案。有了對服務器的訪問權限,NFS卷和文件可能很容易獲得。 使用TPM(如果您的硬件允許)存儲密鑰可能是更好的解決方案 - 它旨在幫助解決此類問題。

這是一個將加密密鑰鏈接到登錄用戶的選項嗎?考慮使用第二個數據庫(或服務器)進行用戶身份驗證,並使用用戶登錄密碼對加密密鑰進行加密並將其存儲在那裏。在成功登錄時 - 當提供正確的密碼時 - 您可以解密加密密鑰,然後「解鎖」第一個(加密的)數據庫。這將加密密鑰「存儲在用戶的頭腦中」,可能是您擁有的最安全的選項。

+0

謝謝!將加密密鑰存儲在「用戶頭部」的想法很簡單! – DroidOS

+1

只需注意:用戶可以忘記密碼... – swa66