安全实现自动更新
自动更新:一个看似简单的功能
ExpressVPN 新闻5 分钟2023年11月15日
撰写者
Andre Lo 专业工程师
能上twitter的加速器在 Facebook 分享在 Twitter 分享在 Whatsapp 分享在 Telegram 分享通过电子邮件分享
我们最近为 Windows、Mac 和 Linux 应用推出了自动更新功能,为用户提供与 iOS 和 Android 用户通过应用商店自动更新的相同便利。
这意味着在主要平台上使用我们所有应用的用户,能够在最新版本发布时,自动获取 ExpressVPN,而无需下载和安装。获取最新的安全增强功能、新特性和性能改进始终至关重要。
自动更新对于那些身处互联网限制国家的用户特别有用,因为他们可能并不总能方便地访问 ExpressVPN 网站以手动更新应用。有了这个新功能,当新版本可用时,应用会自动进行更新,确保所有用户始终保持数字连接和保护。
在这里,我们概述了在设计这个功能时的考虑因素,以及为了安全实现这一功能而做出的一些关键工程决策。
自动更新的安全挑战
对于大多数用户来说,自动更新可能看起来并不是一个重要功能;人们已经习惯了手机应用的自动更新。事实上,启用自动更新一般被视为良好的安全实践。但另一方面,几乎所有客户都使用应用最新版本对应用开发者而言是有益的,因为他们不必花费精力和资源来确保对仍在使用旧版本的用户的兼容性。
然而,当自动更新出错时,在安全方面可能会产生灾难性后果。
要使应用能够自动更新,需要发生两件事情。首先,应用需要知道有更新。这意味着软件开发者在有更新时广播消息,在我们这里是每周进行一次。一旦应用知道有更新,第二部分就是将其传递给应用。这是可能发生糟糕事情的地方。
当应用提供自动更新时,如果这个功能没有安全保障,它可能成为恶意行为者发起供应链攻击的入口,恶意软件通过这个方式传递给用户。我们已经看到几家主要科技公司,如PC 制造商,在开发或分发过程中,曾发布过受到恶意代码感染的软件和硬件。
当软件被安装时,我们需要验证其完整性,以确保没有被篡改。例如,某人可能篡改了一个文件,向安装程序中添加后门,这样在更新安装到应用后,攻击者可以通过后门接管计算机。攻击者可能还会用另一个安装程序替换原来的安装程序。因此,另一个需要验证的方面是软件的真实性它确实来自我们。
当我们为用户安装某个东西时,用户将他们的信任托付给我们。这类似于让某人进入你的房子在里面做事情;你隐含地相信那个人没有恶意。我们设计了防止污染我们代码的流程,这些程序经过普华永道瑞士审计师的独立审查。而我们的自动更新实施确保了我们代码的真实性和完整性,以安全方式交付给我们的桌面应用用户。
实施自动更新的关键考虑
这是一个经典的工程问题:你是自己构建某样东西,还是从第三方购买能力?公司包括我们在可能的情况下倾向于使用经过良好审查的第三方解决方案,以提高效率。
但在自动更新的情况下,第三方服务被赋予了很多在用户计算机上的权力。我们也意识到,由于此类服务的复杂性,它们具有很多我们不需要的功能,许多事情都可能出错。我们内部的安全审核发现了这些第三方可能被用来破坏我们试图实现的安全保障的途径。
针对我们 Mac 和 Linux 应用的自动更新,我们选择使用本地操作系统机制。因此,我们是从一个安全性极高的来源购买能力操作系统供应商,而不是其他第三方。这意味着操作系统知道如何检查软件是否来自我们,我们只需向它们出示正确的签名和凭证以执行更新。
每个平台的本地机制都经过测试和验证,证明了它们的安全性。此外,保持接近本地体验对于那些已经习惯于各个平台的用户来说更加直观。在 macOS 上,我们的安装程序使用标准的 pkg 格式。这个 pkg 文件由 Apple 签名,并通过 macOS 的 Gatekeeper 技术进行验证。在 Linux 上,我们通过特定于发行版的包管理器APT 和 YUM提供更新,而不是编写自定义脚本。这些包管理器都安全且为 Linux 用户所熟悉。
在开发过程中,我们还为 Windows、Mac 和 Linux 的自动更新创建了广泛的威胁模型,这是一个结构化的方式,用于确保所有可能的安全威胁都被发现并减轻。这导致在三个平台上的自动更新之间做出了一些共同的设计决策,无论该功能如何实现:
更新包是 经过密码学签名 的,以确保真实性和完整性。这意味着使用公钥算法以数字签名的方式签署数据,并由他人验证签名。更新包 保存在受限的磁盘目录中 ,以防止可能导致“检查时间到使用时间”TOCTOU错误的篡改。这是指软件最后一次检查和开始使用之间的时间差,在此期间有人可能篡改了它。更新过程包括 版本检查 ,以防止降级攻击,这可能导致软件降级到旧的、可能不太安全的版本。我们很自豪地说,我们在符合这些要求的所有三个 ExpressVPN 桌面应用中实现了自动更新,确保安全的同时,也使用户体验更加简便。
精简您的体验
在安全实施的情况下,自动更新确保我们的用户获得最新版本的应用,无需他们做任何事情。要在 Mac、Windows 或 Linux 上享受自动更新,您可能需要手动更新您的应用一次,以防您的版本较旧但这将是最后一次。
这不仅仅是自动更新。了解更多关于我们应用的最新新功能,包括ExpressVPN 密钥,我们的密码管理器。
用最好的 VPN 保护您的隐私获取ExpressVPN
30 天退款保证
享受更安全的在线体验,获得强有力的隐私保护获取ExpressVPN
什么是 VPN?
标签应用程序开发博客Andre Lo 专业工程师
Andre Lo 是 ExpressVPN 的软件工程经理。他自 2018 年以来一直在公司工作,并参与了多个跨平台项目,致力于 ExpressVPN 的客户应用程序。现在他领导着一个工程师团队,专注于 Lightway 协议和核心 VPN 技术。Andre 还是加拿大安大略省的执业专业工程师。
觉得这篇文章不错?为这篇文章点赞,或分享您的看法!
28
0