自动更新:这样安全吗?

Luk*_*ane 13 .net c# vb.net security auto-update

点网自动更新

我觉得.net缺少一个简单的安全自动更新库,所以我已经实现了一些东西并把它放在这里.在任何人考虑使用该库之前,我都热衷于更新过程以获得一些同行评审.

以下是步骤:

  • 客户端软件填充有公钥和URI以进行轮询.
  • 客户端轮询清单文件的URI.
  • 下载清单并使用签名(在单独的".signature"中)来检查清单是否有效.
  • 从清单中解析待处理更新列表(向用户显示).
  • 下载安装程序文件,并再次使用相应的".signature"文件进行验证.(下载的文件将受ACL保护)
  • 安装程序已运行.

减轻威胁:

  • 清单签名应该可以防止任何恶意下载(" 地毯式轰炸 ")
  • 安装程序签名应防止任何MITM攻击发送恶意安装程序
  • 使用ACL保护下载的安装程序应该可以防止任何本地升级攻击.

未减轻的威胁:

  • 一个MITM攻击下,攻击者总是报告"没有可用的更新".(可能使客户端处于易受攻击的版本)

参考文献:


我错过了什么?


Jes*_*ert 8

Dan Kaminsky对更新程序有一套很好的指导方针:

要成功,您的更新包必须是:

  • 签.
  • 由你签名.
  • 您使用正确的EKU(扩展密钥用法)签名
  • 从未发现的签名中签名
  • 是同一个产品
  • 成为新版本

根据您在此问题中的描述,您似乎拥有前3个.