我正在為一個新專案製定計劃,並尋找一種方法來允許用戶上傳他們的文件並對其進行加密,並且只能由他們訪問,但同時我也需要他們的聯絡人來存取這些文件。
多解釋一下:
- 用戶透過網路應用程式將檔案上傳到我的伺服器上。
- 我(伺服器)不應該存取文件的內容。
- 如果使用者決定與他們共享文件,則使用者的聯絡人應該能夠存取這些文件。
這樣的事情有可能嗎?
答案1
簡短的回答:公鑰加密意味著:是的,你可以做到這一點。這很難,因為密鑰管理很難,而不是因為問題在數學上很難。
長答案:……不適合這裡。
中短答案:
如果每個聯絡人都有一個您不知道但他們知道的私鑰,以及一個您知道的公鑰,並且您可以使軟體(包括 JavaScript)在用戶的電腦上運行,那麼您可以使資料在在使用者的電腦上進行加密,以便在其他使用者的電腦上執行的類似程式及其各自的私鑰可以存取它,但這樣您在不更改使用者電腦上運行的軟體的情況下就無法存取它。
需要考慮的一些事情:
- 從密碼學角度來說,這是一個已解決的問題。不要自己解決。
- 大多數用戶都想要可用性。
- 您仍然需要對元資料做出正確的決定。