我是一個桌面應用程序的作者,該應用程序具有可以通過互聯網下載應用程序的新版本的集成更新程序。我想認證下載的文件,以便下載者可以確定新文件是由我創建的,並且未被其他人修改。基於SSL的服務器身份驗證不是一種選擇,因爲這些文件託管在我不十分信任的第三方服務上。在基於定製Qt的更新程序中下載驗證
我已經想好了以下程序:
在我身邊:
- 哈希使用SHA512
- 加密使用RSA私鑰
- 哈希使加密哈希公衆下載以及新版本公告
客戶端上的更新程序ñ執行以下操作:
- 下載文件(杜)
- 使用硬編碼的公共密鑰匹配我的私單
- 比較解密的哈希用的真正的一個解密自新的更新公告哈希下載的文件
假設我最初可以向客戶端發送帶公鑰的未修改版本的更新程序,這個工作流程中是否存在任何缺陷?