2012-01-10 98 views
26

我正在設計一個使用MongoDB安全存儲私人信息的Web應用程序。我想加密整個數據庫,但看起來不受支持。我可以採用哪些路線來加密我的數據庫?MongoDB數據庫加密

+0

您可以加密您插入的數據(這會使查詢變得凌亂)和/或您可以加密存儲數據庫的文件系統和/或可以加密套接字連接。什麼是威脅模型? – symcbean 2012-01-10 13:05:15

+1

我想製作一個基於雲的個人管理器來管理密碼和其他私人數據。我想更進一步,而不僅僅是加密進入數據庫的數據 - 我不想知道用戶提交的數據類型。 我傾向於將數據庫放在加密的捲上,但是當卷被掛載時仍然存在安全風險。 – devnill 2012-01-10 21:56:17

回答

10

MongoDB 3.2(在November 2015發佈)的創始人提供了一個加密的存儲引擎。在插入或加密整個驅動器之前,不需要使用第三方API來加密數據。你可以找到更多的細節here

它與WiredTiger存儲引擎一起使用,WiredTiger存儲引擎自3.0版以來一直作爲默認MMAPv1存儲引擎的替代產品。如果您的數據庫仍在使用MMAPv1,請參閱this guide以獲取將數據庫從MMAPv1轉換爲WiredTiger的步驟。

+18

值得一提的是,此功能僅在MongoDB Enterprise版本中提供。 – 2016-06-14 23:54:30

10

偉大的問題!隨着大數據量的不斷增加,保護靜止數據比以往任何時候都更加重要!

MongoDB不直接支持這一點,但Gazzang的加密&密鑰管理平臺對MongoDB的專門定製的(雖然它與其他NOSQL數據庫系統的工作原理也是如此)。這是一個商業解決方案,建立在Linux的開源加密文件系統之上,它以一種安全性最大化的方式對底層文件系統執行加密,對性能影響最小。

對於可定製的訪問控制列表,您的未加密的MongoDB數據只能由您選擇的用戶或進程訪問。看看這個Big Data Security whitepaper或訪問www.securingbigdata.com欲知更多信息。

完全披露:我受Gazzang僱傭。

+0

您的解決方案適合個人嗎?即不開發任何東西來銷售或分發?我目前使用sqlcipher加密我的個人sqlite dbs,想法是我可以安全地將加密的數據庫存儲在DropBox之類的東西中。基本上它是「我相信客戶端和服務器進程,所以我可以在它們之間傳遞密鑰,但不能從存儲中讀取」模型,因此沒有任何未加密的內容會觸及存儲介質。 – Michael 2013-01-03 05:20:48

+0

@benjamincarter關於白皮書的第一個鏈接不再可用。 – 2014-05-29 18:47:56

1

我會建議您使用LUKS加密您的數據量。與基於文件系統的加密相比,設置和管理相當簡單。它也可以移植到各種不同的Linux中,並且可以靈活地讓您更改密碼。如果你需要一個解決方案開箱Scalegrid.io encryption support在MongoDB的羣集創建嚮導提供此功能

免責聲明:我Scalegrid.io

+0

你用Mongo測試了LUKS嗎? – 2016-06-29 17:10:26

+0

是的。 LUKS在mongo上運行得很好 - 你有特別的關注嗎? – Dharshan 2016-06-30 18:22:51

+0

我想在嘗試進一步冒險之前從已經完成此操作的人那裏獲得知情意見。謝謝 – 2016-06-30 21:56:26