我正在存儲一些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. ASP.net敏感信息存儲
- 3. 存儲敏感信息
- 4. 爲什麼網站會在cookies上放置敏感信息?
- 5. 在web.config中保存敏感信息(用戶名和密碼)?
- 6. 如何存儲這些敏感信息?
- 7. 我應該在Heroku上存儲敏感文件?
- 8. 從github隱藏我的敏感信息(例如密碼)
- 9. jhipster application-prod.yml在github上存儲敏感信息
- 10. 如果表中存在MySQL信息,我該如何更新表?
- 11. GIT/Heroku敏感信息
- 12. 流星:process.env.MAIL_URL敏感信息
- 13. $ _SERVER信息是否敏感?
- 14. 在onsenUI/Angular中保護敏感信息
- 15. 我應該在數據庫或cookie中存儲非敏感信息以減少加載時間嗎?
- 16. 使用彈簧的加密敏感信息
- 17. WSO2 MDM加密.json配置文件中的敏感信息
- 18. 在我的應用程序中存儲敏感的API密鑰
- 19. 如何在SQL Server 2008中存儲敏感信息?
- 20. 我應該在哪裏存儲敏感變量?
- 21. 如何在沒有用戶輸入密碼的情況下在C#中加密和解密敏感信息
- 22. 我應該使用什麼元信息?
- 23. 如何將敏感信息存儲在.Net/WPF應用程序中?
- 24. 在keepass數據庫中存儲敏感信息c#
- 25. 將敏感信息存儲在Drupal模塊中的位置?
- 26. 在源代碼中存儲敏感信息的最佳實踐
- 27. 在Android應用程序中如何存儲敏感的全局信息,如API密鑰?
- 28. PHP:我應該在哪裏存儲信息和警告信息
- 29. 如果把數據庫中的敏感信息
- 30. 什麼類型的信息應該保存在一個Cookie(PHP)