点网自动更新
我觉得 .net 缺少一个简单的安全自动更新库,所以我实现了一些东西并把它放在这里。在有人考虑使用该库之前,我热衷于更新过程以获得一些同行评审。
以下是步骤:
- 客户端软件填充有公钥和 URI 以进行轮询。
- 客户端轮询清单文件的 URI。
- 下载清单并使用签名(在单独的“.signature”中)来检查清单是否有效。
- 从清单中解析出待处理更新的列表(以显示给用户)。
- 下载安装程序文件,并再次使用相应的“.signature”文件进行验证。(下载的文件将受 ACL 保护)
- 安装程序正在运行。
缓解威胁:
- 清单签名应防止任何恶意下载(“地毯式轰炸”)
- 安装程序签名应防止任何 MITM 攻击发送恶意安装程序
- 使用 ACL 保护下载的安装程序应该可以防止任何本地升级攻击。
未缓解的威胁:
- 攻击者总是报告“没有可用更新”的MITM攻击。(可以让客户端处于易受攻击的版本)