编写自动更新客户端时,我必须担心哪些安全问题?

时间:2011-01-24 01:08:15

标签: security auto-update

我正在写一个自动更新客户端。这是一个非常简单的应用程序:
  1)检查中央服务器以查看某个应用程序是否存在更新   2)如果存在更新版本,则从服务器下载安装程序   3)运行安装程序

除了服务器方面的问题(比如有人攻击我们的网站并在那里放置'更新'的恶意应用程序),在实施此问题时我必须考虑哪些客户端安全问题?

我目前的想法是:
1)校验和。在.xml文件中包含校验和,并针对下载的文件进行检查。 (加密前后?)
2)加密文件。使用某个私钥加密文件,并让该程序使用公钥对其进行解密。

这两者中的任何一个是否必要且充足?还有什么我需要考虑的吗?

请注意,对于CLIENT-SIDE的问题,这只是 。我几乎无法控制服务器本身。

3 个答案:

答案 0 :(得分:2)

如果您通过https检索所有信息并检查有效证书,那么您可以确定数据来自您的服务器。

答案 1 :(得分:1)

如果我可以破坏提供补丁的服务器,并且校验和在同一台服务器上,那么我可能会破坏校验和。

如果您不使用SSL来传递文件,则加密补丁非常有用。

执行程序的用户通常无权写入安装目录(出于安全原因;这适用于桌面应用程序以及Web服务器上的PHP脚本)。在确定如何安装补丁时,您必须考虑到这一点。

答案 2 :(得分:1)

校验和仅与下载它们的站点一样强。 如果您使用非对称签名,以便自动更新客户端具有公钥,那么您可以改为签署您的更新,如果有人攻击您的网站,只要他们没有获得私钥就没关系