Dot Net自动更新
我觉得.NET缺乏一个简单安全的自动更新库,所以我实现了一些东西并放在这里。在任何人考虑使用该库之前,我都很希望更新过程能够获得同行的审查。
以下是步骤:
- 客户端软件填充公钥和轮询的URI。
- 客户端轮询URI以获取清单文件。
- 下载清单并使用(单独的".signature")签名来检查清单是否有效。
- 从清单中解析出待处理的更新列表(以显示给用户)。
- 下载安装程序文件并再次使用相应的".signature"文件进行验证。(下载的文件将受到ACLs的保护)
- 运行安装程序。
减轻的威胁:
- 清单签名应防止任何恶意下载(“地毯式轰炸”)
- 安装程序签名应防止任何中间人攻击发送恶意安装程序
- 使用ACL保护下载的安装程序应防止任何本地提权攻击。
未减轻的威胁:
- 攻击者始终报告“没有可用更新”的MITM攻击。(可能使客户端保持在易受攻击的版本)