簡體   English   中英

Mongodb 社區 - 在節點 js 中的 rest 數據加密

[英]Mongodb community - at rest data encryption in node js

我正在尋找一種方法來加密整個數據庫並保持搜索數據的能力,盡管它是加密的。

我在 Mongo 中看到了很多關於 rest 數據加密的問題,但沒有一個答案可以幫助他們完成應用程序的完整流程。 我希望在這里展示我的發現並獲得反饋和更多想法(我還有一些問題)。

加密選項:

1.貓鼬加密 完整的解決方案。 可以用最少的工作為您加密所有數據庫!
2. Procona mongodb - 我沒有機會測試它,我花了好幾個小時試圖安裝並讓它運行,但沒有運氣(這可能只是我自己..)。
3. 在模塊級別創建 get 和 send 方法來加密和解密您的數據。

我對 rest 數據加密的要求是:

  1. 應用層不需要參與加密解密過程。 應該就像我們甚至沒有加密數據(大部分)。
  2. 我們可以對加密數據執行搜索和查找。
  3. 我不知道該怎么做,但希望在加密文本字段中搜索部分單詞和短語。
  4. 當然,除了 Object ID 之外,所有數據都是加密的。

我的做法:
我想嘗試使用 mongoose-encryption 來利用這個驚人插件的所有好處。
我還想將加密字段中 Real 值的 Hash 添加到架構中,以便我可以對加密字段執行查找操作。

問題:我似乎無法找到正確的 mongoose Hook 以在 mongoose-encryptions 隱藏它之前對未加密數據進行調和。 所以我無法生成我的 Hash。

這不起作用:

Users.pre('save', () => { 
  this.hashedName = hash(this.name)
  console.log(":(")
});

同樣如上所述,在加密數據中搜索部分和短語。 使用我的方法,我們可以找到名為“Danielle”的人,但我們無法在 Hash 中搜索名稱以“Dani”開頭的用戶。

請給我您的意見以及我的方法。 我知道這是一個不容易找到解決方案的話題。

如果要加密磁盤上的數據,請加密整個磁盤並加密交換。 如果有人獲得了數據庫的副本(例如,您忘記將身份驗證放在數據庫上,而有人連接到數據庫並轉儲數據),則明文將被公開。

如果您希望數據庫僅存儲加密數據,請使用客戶端加密 這需要在客戶端進行密鑰管理,但這樣做會使轉儲您的數據庫的人無法獲得明文。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM