我正在開發的聊天應用程序需要將聊天記錄存儲在服務器上。什麼是安全存儲這個最好的方法?我不想在表格中存儲純文本聊天記錄。在服務器上安全存儲聊天記錄的最佳方式
我最初的想法是存儲他們基於*用戶密碼加密,但是如果用戶忘記他的密碼,最好的辦法是什麼來處理呢?因爲我不知道密碼是什麼解密,並用新密碼重新加密。
另一種解決方案是用公鑰加密所有內容,並將私鑰存儲在單獨的機器上(並在該服務器的本地內存中),並在需要解密並獲取完整聊天曆史記錄時抓取私鑰。
任何幫助或案例研究都會很棒。
*增加,以避免混亂
我正在開發的聊天應用程序需要將聊天記錄存儲在服務器上。什麼是安全存儲這個最好的方法?我不想在表格中存儲純文本聊天記錄。在服務器上安全存儲聊天記錄的最佳方式
我最初的想法是存儲他們基於*用戶密碼加密,但是如果用戶忘記他的密碼,最好的辦法是什麼來處理呢?因爲我不知道密碼是什麼解密,並用新密碼重新加密。
另一種解決方案是用公鑰加密所有內容,並將私鑰存儲在單獨的機器上(並在該服務器的本地內存中),並在需要解密並獲取完整聊天曆史記錄時抓取私鑰。
任何幫助或案例研究都會很棒。
*增加,以避免混亂
因爲如果DB被盜,要防止這些:
所以如果你有預算,我會使用基於hardware的解決方案。這將提供必要的分離併爲您提供良好的密鑰,這些密鑰不會存儲在文件系統或數據庫中,並且會自行保存。您可以從一張卡開始(將所有內容保存在同一臺物理服務器上),或者根據需要將其擴展到機架安裝盒。
謝謝Josh,雖然我們沒有預算來獲得HSM,但這仍然是一個很好的鏈接。 –
「我最初的想法是根據密碼存儲他們加密」誰的密碼? – BoltClock
我無法想象用戶會樂意給你他們的私鑰給你存儲 - 有點擊敗對象。只要告訴他們,如果他們丟失了私鑰,他們將永久失去對其歷史的訪問。 –
私鑰方案是一個夢幻般的選擇,可以說是最安全的路線。也就是說,冒這個風險的是任何擁有私鑰的人都可以解密它。那就是說,你想要保護誰?數據庫管理員或盜竊?這是一個類似主題的好主意:http://stackoverflow.com/questions/70450/is-it-worth-encrypting-email-addresses-in-the-database – brandonscript