Protocol-Design
用於解密本地文件的一次性令牌
我正在努力實現以下目標:
加密文件儲存在使用者文件系統中。使用者使用我的客戶端對伺服器進行身份驗證。一旦他成功通過身份驗證,他就會獲得一個令牌來解密文件。
我要確保的事情:使用者不應該能夠記憶體令牌以供以後使用。就像一次性令牌一樣,讓他在未來的某個時間不再能夠解密文件。
客戶端和伺服器確實只存在於我的腦海中,所以任何可能的東西都可以應用於它。我正在尋找算法/協議來滿足我的要求。
我認為這是不可能的,至少在沒有可靠DRM所需的那種侵入性機制的情況下是不可能的。
基本上,如果使用者獲得了一個可以讓他們解密文件的密鑰,那麼有什麼辦法可以阻止他們只解密所有文件並保留解密的版本?
如果您只允許通過您控制的程序訪問文件,這可能會起作用的唯一方法,該程序將以難以複製的方式將它們呈現給使用者(例如將影片直接渲染到螢幕上)。然後你需要阻止使用者修改程序或在調試器下執行它,或者找到某種方法來複製數據(例如通過“模擬孔”)。
說起來容易做起來難——一旦你做了(盡你所能),你可能會發現它仍然不會阻止聰明和堅定的使用者複製數據,但它會惹惱普通使用者使用者,因為所有的限制讓他們覺得自己在穿緊身衣工作。
實際上,您可以為此使用 HSM,其中儲存了非對稱 (RSA) 私鑰。至少在某些 HSM 中,可以設置最大使用次數。您可以在智能卡中編寫類似的使用場景。然後,HSM 和智能卡實現了解決問題所必需的可信執行環境。
因此存在這樣的令牌,但它們是實際的硬體令牌,其中一定程度的信任嵌入在密碼系統本身中。您可以將這樣的系統視為 HSM / 智能卡的硬體令牌 + 供應鏈充當受信任的第三方的系統。