代码之家  ›  专栏  ›  技术社区  ›  Adam Davis

自动更新-什么是“充分”安全性?

  •  5
  • Adam Davis  · 技术社区  · 17 年前

    C# , Java )这涵盖了如何实现自动更新。一开始似乎很容易提供自动更新,而且似乎没有理由不为大多数软件提供自动更新。

    但是,似乎没有一个涵盖自动更新的安全方面。

    • 它们有多安全?

    一台公司计算机受到感染,欺骗DNS(只有一小部分成功),并使其他公司计算机相信通用应用程序的更新服务器在别处,他们下载“新”应用程序并受到感染。

    作为一名开发人员,有哪些可能的攻击,我应该采取哪些步骤来保护我的客户免受滥用?

    4 回复  |  直到 9 年前
        1
  •  6
  •   Zoredache    17 年前

    通过正确使用加密技术,您的更新可以非常安全。使用SSL保护分发更新的站点。使用GPG/PGP或其他方式对所有更新进行签名,让您的客户在应用更新之前验证签名。采取措施确保服务器和密钥保持高度安全。

    充足的

        2
  •  2
  •   driis    17 年前

    最明显的攻击是攻击者通过其“邪恶”更新服务器提供更改的二进制文件。因此,您应该确保可以使用数字签名验证下载的数据是否来自您。

    为了确保安全性,显然应该避免分发签名的密钥。因此,您可以实现 RSA message signing

        3
  •  1
  •   frankodwyer    17 年前

    通过SSL连接到更新服务器就足够了,前提是如果您的客户端获得无效证书,并且您的服务器需要协商合理级别的连接安全性(客户端也支持这一点),则客户端将拒绝连接。

    然而,实际上,您所做的任何事情至少都会像您的用户第一次安装软件的路线一样安全。如果您的用户最初通过纯http下载安装程序,那么现在开始保护更新上的内容就太晚了。

    这在某种程度上也是正确的,即使他们通过https或数字签名获得您的初始软件,因为大多数用户很容易被说服在他们看到的几乎任何安全警告上单击OK。

        4
  •  1
  •   Milhous    17 年前

    似乎没有理由不为大多数软件提供自动更新。

    1. 用户可能不想冒险破坏依赖旧功能的生产系统
    推荐文章