簡體   English   中英

數據庫數據加密

[英]Encryption of database data

現在我知道這個問題已經被問了很多遍了,關於在哪里加密,加密什么以及使用什么加密。

無論如何,當涉及到數據庫中數據的加密時,我知道我可以將AES_ENCRYPT()與字段名和給定密鑰一起使用,此外,我還可以合並日期和時間,甚至可以將密鑰存儲在單獨的表中。

我以及其他人可能面臨的問題是,似乎有百萬種不同的方法可以使每個人對每個人都有意見。

另外,談到安全性,我知道最好不要嘗試創建自己的安全性措施。

因此,我的問題是:遵循什么良好的標准做法?

我使用AES沒問題,但是有行業標准嗎?

我已經做了一些這樣的事情,因此可以描述一個權衡。 存在一些特定於實現的問題,例如是否存在使短值加密安全的措施(而且我不知道在MySQL上的答案-我知道在PostgreSQL上處理該問題會產生巨大的性能成本) 。

假設數據庫中實現了安全的加密實現(這里的性能與安全性實際上是另一個很大的折衷),那么數據庫中就存在一些基本問題。

  1. 將密文存儲在數據庫中后,就放棄了使用索引來搜索該信息的能力。

  2. 使用aes_encrypt,您可以在查詢字符串中傳遞密鑰。 這意味着,如果記錄了查詢,則記錄鍵。 確保不發生這種情況會使發生問題時的故障排除變得有些困難。

  3. 另一方面,您可以使用適當的子查詢構建更高級的密鑰管理系統,以便可以優雅地處理密鑰交換。

使用應用程序級加密處理密鑰旋轉比在數據庫中更難。 但是日志中的關鍵披露是一個實際問題,需要仔細考慮。 如果我能提供建議,那就是首先關注問題,然后再解決您更傾向於解決的任何一個問題。

暫無
暫無

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

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