如何在丟失私鑰后恢復(fù)端到端的加密數(shù)據(jù)?
我正在創(chuàng)建一個(gè)帶有聊天功能的移動(dòng)應(yīng)用程序。因?yàn)槲蚁氪_保它的安全,所以我會(huì)對(duì)消息和數(shù)據(jù)進(jìn)行加密。我正在考慮使用端到端加密,但我有一些問(wèn)題。每個(gè)用戶(hù)都有私
解答動(dòng)態(tài)
您找到了另一個(gè)平衡安全性和可用性的例子。如果您想要真正的E2E加密,最終用戶(hù)需要負(fù)責(zé)他們的密鑰和可能的消息備份。如果你不這樣做,你會(huì)陷入一個(gè)灰色地帶,所有東西都是E2E加密的,但有些功能允許恢復(fù)郵件。換言之,即使流量被加密,該軟件仍然可以訪問(wèn)舊的消息-這在某種程度上挫敗了E2E的觀點(diǎn)。例如,WhatsApp選擇實(shí)現(xiàn)一種功能,用戶(hù)可以要求重新發(fā)送所有傳遞(接收)的消息,而發(fā)送者卻不知道這一點(diǎn)。如果用戶(hù)真的更換了智能手機(jī),他們會(huì)自動(dòng)恢復(fù)所有的舊信息。偉大的。。。但這意味著應(yīng)用程序包含了系統(tǒng)請(qǐng)求將所有內(nèi)容發(fā)送到惡意地址所需的所有內(nèi)容。Glp…
說(shuō)你是靠你自己。前提是您知道任何恢復(fù)選項(xiàng)都會(huì)降低總體安全性,這對(duì)您來(lái)說(shuō)很好。如果你想說(shuō)實(shí)話,你也應(yīng)該提醒你的客戶(hù)。。。不用太擔(dān)心,他們中的大多數(shù)人都堅(jiān)持要對(duì)所有發(fā)送或接收的郵件進(jìn)行強(qiáng)E2E加密。但對(duì)他們中的大多數(shù)人來(lái)說(shuō),能夠恢復(fù)他們的消息遠(yuǎn)比知道攻擊者可以輕松訪問(wèn)它們重要得多。。。如果說(shuō)了E2E加密和強(qiáng)加密這兩個(gè)神奇的詞,他們會(huì)很高興的。
如果用戶(hù)更換設(shè)備,重新安裝應(yīng)用程序,存儲(chǔ)在客戶(hù)端的私鑰將丟失。我知道我可以為將來(lái)的消息創(chuàng)建新的密鑰對(duì),但是如何恢復(fù)舊的密鑰對(duì)呢?
為什么要恢復(fù)舊的?生成新密鑰并分發(fā)。私鑰不應(yīng)該離開(kāi)生成它的設(shè)備。如果需要消息歷史記錄,請(qǐng)將其本地存儲(chǔ)在用戶(hù)設(shè)備上,而不是服務(wù)器上,并為用戶(hù)提供備份選項(xiàng)。這大概就是Signal所做的。
我想把私鑰存儲(chǔ)在服務(wù)器上,但它根本就不安全。我以為在用用戶(hù)密碼加密私鑰之后再存儲(chǔ)私鑰是安全的,因?yàn)槲也恢烙脩?hù)密碼,但是如果用戶(hù)丟失了密碼并用“丟失我的密碼電子郵件”重新創(chuàng)建,也會(huì)失敗。
不要為用戶(hù)存儲(chǔ)密鑰。句號(hào)。這使得E2E有點(diǎn)毫無(wú)意義。
另一個(gè)問(wèn)題是,如果發(fā)生法律問(wèn)題,我不能把聊天日志交給,因?yàn)槲覜](méi)有解密的消息,或者我不知道如何解密,因?yàn)槲覜](méi)有私鑰。
你不能交出任何你沒(méi)有的東西。如果信息是E2E,而你不儲(chǔ)存它們,你就沒(méi)有什么可以給的了。這就是E2E的重點(diǎn)—提供商沒(méi)有消息,也不能向任何人透露消息。
我建議您查看其他平臺(tái)(如Matrix和Keybase)的實(shí)現(xiàn)也是。儲(chǔ)存服務(wù)器上的私鑰完全打破了使用e2ee的界限,因?yàn)榉⻊?wù)器現(xiàn)在基本上可以查看所有的聊天記錄。
我建議使用的是一種紙鑰匙/種子短語(yǔ)(檢查BI 9),它可以打印/寫(xiě)在紙上,甚至可以記憶,并且清楚地表明,丟失這個(gè)鑰匙會(huì)導(dǎo)致無(wú)法訪問(wèn)舊的聊天記錄。您可以選擇允許用戶(hù)對(duì)密鑰進(jìn)行云備份(我強(qiáng)烈反對(duì)),以滿(mǎn)足那些不希望使用e2ee的用戶(hù)的需要。如果是這樣的話,我會(huì)鼓勵(lì)通知其他用戶(hù)。我還建議檢查矩陣.org的多設(shè)備交叉簽名的實(shí)現(xiàn),關(guān)于如何允許多設(shè)備支持的指南。
我還建議閱讀密鑰庫(kù).io的博客文章[1][2][3][4][5]介紹了他們的系統(tǒng)是如何工作的。就我個(gè)人而言,我并不認(rèn)為重新發(fā)明輪子有什么意義,矩陣.org的實(shí)現(xiàn)完全符合您的要求,你也可以用你自己的功能/網(wǎng)絡(luò)應(yīng)用程序(想想矩陣.org
大多數(shù)好的選擇已經(jīng)包含在前面的答案中。還有一個(gè)值得一提的選項(xiàng):允許用戶(hù)導(dǎo)出私鑰,并將其存儲(chǔ)在他們認(rèn)為安全的地方,也許是在他們的密碼管理器中。這種方法有幾個(gè)缺點(diǎn),但也有一些優(yōu)點(diǎn):它實(shí)現(xiàn)了可恢復(fù)性,而不會(huì)完全失去e2ee的作用,因?yàn)槟姆⻊?wù)器永遠(yuǎn)無(wú)法訪問(wèn)私有服務(wù)器鑰匙。開(kāi)另一方面,它確實(shí)將私鑰的安全給了用戶(hù),甚至比以前更多,并使他們面臨網(wǎng)絡(luò)釣魚(yú)攻擊,有人可能會(huì)試圖誘使他們將私鑰發(fā)送給對(duì)手。你必須考慮到你期望的用戶(hù)群中有什么樣的專(zhuān)業(yè)水平。如果你的目標(biāo)是這個(gè)社區(qū)的人,這種方法可能是好的,但是如果你的目標(biāo)是我們祖母的,我可能不會(huì)建議你這樣做
- End
免責(zé)聲明:
本頁(yè)內(nèi)容僅代表作者本人意見(jiàn),若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無(wú)關(guān)。本頁(yè)內(nèi)容僅供參考,請(qǐng)您根據(jù)自身實(shí)際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項(xiàng),請(qǐng)咨詢(xún)專(zhuān)業(yè)人士處理。