Chromium将允许使用第三方Rust库以提高安全性和防护

Chromium项目引入Rust工具链以提高安全性和开发速度

Chromium项目计划在其构建系统中添加Rust工具链,旨在通过集成第三方Rust库来提升安全性、安全性和开发速度。这一举措源于Rust语言在系统软件领域的卓越表现,尤其是在浏览器开发中的应用。

Rust与Chromium的契合

Rust最初由Mozilla开发,专门用于编写浏览器,因此Chromium项目采用Rust技术显得非常合适。Rust通过其内存安全特性,证明了在提供高性能的同时也能确保代码的安全性。

Rust对Chromium安全规则的贡献

Chromium安全团队成员Dana Jansens解释说,Rust能够以更简单、更安全的方式满足Chromium的“两项规则”(Rule of Two)。该规则规定了如何安全地解析、评估或处理来自互联网的不可信输入。规则指出,以下三个条件中只能同时满足两个:不可信输入、不安全的语言使用和高执行权限。

例如,C/C++程序由于本质上不安全,只能在低权限进程(如沙盒)中处理不可信输入。而如果C/C++代码仅用于处理可信输入,则不需要沙盒。

Rust引入的益处

通过引入Rust,Chromium团队期望获得以下好处:

  1. 使用比IPC(进程间通信)更简单的机制。
  2. 减少语言层面的复杂性。
  3. 减少需要编写和审查的代码量。
  4. 降低代码的缺陷密度。

这些改进将有助于提升Chromium的整体安全性、安全性和开发速度。

仅限于第三方库的集成

目前,Chromium项目仅考虑集成Rust库,而非广泛采用Rust作为开发语言。团队将仅支持第三方库,这些库作为独立组件编写,不涉及Chromium的具体实现细节,因此具有更简单、专注于单一任务的API。

Rust库集成的条件

Rust库在以下情况下才会被考虑集成:

  1. Rust实现在速度、内存和缺陷方面表现最佳。
  2. 允许将任务移至更高权限进程,以减少IPC或C++内存安全缓解的成本。
  3. 与其他替代方案相比,在缺陷风险方面具有优势。

Rust与C++的互操作性限制

Chromium团队采取逐步推进的策略,限制Rust与C++的互操作性,仅允许从C++调用Rust代码。这一限制旨在避免安全Rust代码可能陷入不安全的C++代码中,同时也避免C++开发者需要理解Rust规则以避免违规。

尽管未来不排除完全互操作的可能性,但实现这一目标需要大量投资和互操作工具的进化,以确保一切顺利运行。目前,Chromium团队的目标是通过Rust生态系统的丰富资源,在不承担巨大代价的前提下提升项目质量。

阅读 28
0 条评论