我正在存儲一些PII(個人身份信息)的應用程序,例如出生日期以及名稱和其他一些字段。我想在MySQL上使用CBC使用AES_ENCRYPT加密數據,但是有一位管理員需要查看信息,但是如果我加密用戶的信息,管理員將無法看到。我是否應該使用用戶名對PII進行加密,並讓管理員無法使用用戶名查看和加密用戶名,或者我應該保留未加密的用戶名,但使用用戶名加密其他所有內容,並留下一些安全風險,但允許管理員看到信息。我該怎麼辦?如果存在敏感信息,我應該在MySQL上加密什麼?
0
A
回答
1
一般來說,使用像AES這樣的對稱加密在DBMS中靜態加密數據既不必要也不足以保護它免受攻擊。
爲什麼?
首先,像這樣的系統中的薄弱環節通常是Web服務器,而不是MySQL服務器機器。但是,Web服務器必須包含加密和解密數據的必要密鑰。如果攻擊者使用您的Web服務器,他會擁有您的密鑰和您的算法來生成密鑰,因此他會獲取您的敏感數據。他還有一個非常強大的方法來確定你認爲哪些數據是敏感的。
攻擊者能夠直接破壞MySQL服務器的可能性要小得多;在涉及PII的情況下,這些機器通常位於防火牆之後。
另一件事:您的管理員。他需要擁有密鑰,而管理員對攻擊者來說是多汁的目標。 (我不是說他是黑帽子,只是他的白帽子上有一個很大的紅色目標。)
另一件事:它可能會給你一種虛假的安全感。 (注意密碼沒有加密:它們是散列的,很容易比較密碼和哈希密碼,並說「匹配」或「不匹配」。但是,更難取得散列密碼並恢復原始密碼因此,口令被「加密」的說法與此情況無關。)
我認真地建議你花費你的時間和金錢而不是在你的建議中加密你的PII。相反,花你的資源來確保你的網站是安全的,並確保你的MySQL服務器安全地在強大的防火牆之後,並且在公共互聯網中不可見。請參閱OWASP Top Ten漏洞。花時間在你的網站上處理它們。使用滲透測試工具,如打嗝掃描或zap掃描來嘗試打入。
保護您的網站就像是關於兩個傢伙和熊的老玩笑。
熊:咆哮。喬:我希望我能超越熊。邁克:我只是不得不超越你。
在網絡安全中,你不想成爲喬。
相關問題
- 1. 敏感信息應該存儲在哪裏?
- 2. 存儲敏感信息
- 3. 我應該在Heroku上存儲敏感文件?
- 4. 從github隱藏我的敏感信息(例如密碼)
- 5. jhipster application-prod.yml在github上存儲敏感信息
- 6. $ _SERVER信息是否敏感?
- 7. 流星:process.env.MAIL_URL敏感信息
- 8. 在onsenUI/Angular中保護敏感信息
- 9. WSO2 MDM加密.json配置文件中的敏感信息
- 10. 如何在SQL Server 2008中存儲敏感信息?
- 11. 在我的應用程序中存儲敏感的API密鑰
- 12. 我應該在哪裏存儲敏感變量?
- 13. 我應該使用什麼元信息?
- 14. 在keepass數據庫中存儲敏感信息c#
- 15. 將敏感信息存儲在Drupal模塊中的位置?
- 16. 在源代碼中存儲敏感信息的最佳實踐
- 17. PHP:我應該在哪裏存儲信息和警告信息
- 18. 如果把數據庫中的敏感信息
- 19. 什麼類型的信息應該保存在一個Cookie(PHP)
- 20. 在存儲到會話前加密特定(敏感)屬性
- 21. 在SQL Server 2008中加密和存儲敏感數據
- 22. 如何存儲命令行工具的敏感信息?
- 23. 指定摩卡測試敏感信息
- 24. 屏蔽節點中的敏感信息
- 25. 保護PhoneGap中的敏感信息?
- 26. 的Maven pom.xml的敏感信息和VCS
- 27. MVC3 - 把敏感信息的ViewBag
- 28. 發送針對AD的敏感信息
- 29. 如果網頁不存在,我應該返回什麼標題?
- 30. 我應該在iOS Android應用上使用什麼加密方法:AES128或3DES