Capacitor-更新器 code-更新器现在支持端到端加密。Code签名确保更新在用户设备上运行时没有被篡改,并提供了额外的保护,高于Capacitor-更新器的标准web级安全性
Capacitor-更新器的默认安全性
Capgo的安全模型默认与web托管提供商类似。Capgo存储更新 __CAPGO_KEEP_0__使用加密存储 并使用现代加密算法通过HTTPS传输它们。同样,开发人员从计算机发布更新时始终使用HTTPS。

Capgo的默认安全设置在SSL Labs的HTTPS测试中得分A+(https://www.ssllabs.com, 2022年11月)
像最好的网络主机一样,Capgo使用HTTPS来保护服务器与终端用户设备之间的网络连接的隐私和完整性。这是一种出色的安全级别,适用于web和使用Capgo的Ionic应用。
云基础设施供应链
Capgo和大多数网络主机都有一个共同点:它们都运行在云基础设施的底层,通常来自AWS、GCP或其他流行的云提供商。这些云提供商和Capgo或其他网络主机运营的硬件和软件是云供应链的一部分。
云供应链和其安全模型适用于大量的网站和应用。每个使用云提供商的web开发人员都信任该提供商,并期望上传的文件是运行或服务的文件,而没有被篡改。云提供商也在努力保持其基础设施的安全。
显然,硬件和软件的漏洞会被发现。云提供商会按时修复漏洞,预防恶意软件(例如 Google的SLSA,并且在实践中,云基础设施已经证明可以满足大多数网站和应用程序的安全需求。然而,一些Ionic应用程序将受损的云基础设施包含在其威胁模型中。对于这些Capacitor具有最高安全要求的JS应用程序,我们在Capgo和code上构建了端到端code签名。 Capgo更新标准协议.
端到端code签名使用Capgo
Capgo’s end-to-end code signing uses public-key cryptography to ensure end users’ devices run only unmodified, original updates from the Capacitor app developer.
“端到端”意味着此安全性覆盖从开发者发布更新到终端用户设备接收并运行更新的整个流程。“Code签名”是使用密码学和一个秘密的私钥来“签名”code,并且后来使用一个可信的公钥来验证签名。
以下是一个简单的*schema来解释它是如何工作的:

- 复杂在实践中,密码学很难
定义:
- AES: 高级加密标准,一个对称加密算法,一个密钥用于加密和解密。
- RSA: Rivest–Shamir–Adleman,一个非对称加密算法,使用两个密钥:一个公钥和一个私钥。
- 密文:加密数据。
- 会话密钥:用于加密和解密数据的 AES 密钥。
- 校验和:用于文件的哈希值。
- 签名:使用开发者私钥加密的校验和。它可以使用开发者公钥进行验证。
我们使用 AES 算法加密更新。每次上传时都会生成一个随机 AES 密钥,然后使用开发者私钥加密 AES 密钥和校验和(后者称为“签名”)。在应用程序中使用开发者公钥解密 AES 密钥和签名(将其还原为校验和)。之后,解密的 AES 密钥用于解密更新;解密更新的校验和计算,并与解密的签名进行比较。
我们使用两种不同的加密算法,因为 RSA 不适合用于加密大量数据。 AES 用于加密更新,而 RSA 用于加密 AES 密钥和校验和。
因此,即使是 Capgo 也无法读取您的捆绑包内容。这是一个被许多企业客户使用的强大安全模型。
更新加密 V2 2024-08-27:
- 我们将存储在应用程序中的密钥类型更改为此。这个更改是为了防止从私钥(之前用于解密)推断出公钥(之前用于加密)。现在,应用程序存储的公钥(现在用于解密)。
- 我们将校验和从 CRC32 算法更改为 SHA256 算法。我们还开始 签署捆绑包当加密 V2 配置时,更新必须具有有效的签名。这是由插件严格强制执行的。
- 我们现在强制执行有效签名,配置加密 V2。 这些 3 个更改是在社区成员进行安全分析之后完成的。它们旨在在更新期间防止加密攻击。
如果您使用加密 V1,迁移到 V2 以利用新安全功能。遵循 迁移指南.
通过端到端 code 签名,Capgo 变成一个“无信任”云基础设施。如果其中一个 Capgo 的云提供商或甚至 Capgo 自己修改了 code 签名的更新,终端用户的设备将拒绝该更新并运行设备上已经存在的、可信的更新。
虽然 web 级别的 HTTPS 对于许多应用来说已经足够了,但一些大公司发现端到端 code 签名提供的额外安全层很有吸引力。这些公司中的一些开发了发行高值、永久交易的财务应用。其他公司的 CISOs 将受损的云基础设施纳入了他们的威胁模型中。我们在 Capgo 中为这些用例构建了端到端 code 签名,并感兴趣地听取来自更高安全需求的公司的反馈。
企业客户入门
对于那些对安全非常关心的大公司或项目,我们希望使 code 签名的设置和维护变得容易。为此,我们现在提供以下功能:
- 快速证书设置和配置
- 对 code 进行支持,使用 Capgo 和开发版本同时签名开发服务器
- 每次更新都进行 code 签名
Capgo code 签名对所有客户都可用。要开始使用,请遵循 设置指南.
致谢
感谢 ionic本文基于 重写的文章 继续阅读 E2E 加密的 __CAPGO_KEEP_0__ 更新器
Keep going from E2E Encryption for Capacitor Updater via Code Signing
__CAPGO_KEEP_1__ E2E Encryption for Capacitor Updater via Code Signing 通过 __CAPGO_KEEP_1__ 签名实现 __CAPGO_KEEP_0__ 更新器的端到端加密 规划安全性和合规性,连接它 加密 加密的实现细节 合规性 Capgo Security Scanner Capgo 安全扫描器 Capgo 安全扫描器的产品工作流程 Capgo 安全 Capgo 安全的产品工作流程 Capgo 信任中心