安全
本页面旨在解释 Tauri 设计和生态系统核心的高级概念和安全特性,这些特性能使你、你的应用程序和你的用户默认情况下更加安全。
它还包括最佳实践的建议、如何向我们报告漏洞以及详细概念解释的参考。
信任边界
信任边界是计算机科学和安全领域使用的术语,描述了程序数据或执行在“信任”级别发生变化的边界,或者具有不同能力的两个主体交换数据或命令的边界。1
Tauri 的安全模型区分了为应用程序核心编写的 Rust 代码和由系统 WebView 理解的任何框架或语言编写的前端代码。
检查和严格定义在边界之间传递的所有数据对于防止信任边界违规非常重要。如果数据在没有访问控制的情况下在这些边界之间传递,攻击者很容易提升和滥用权限。
IPC 层是这两个信任组之间通信的桥梁,并确保边界不被打破。
插件或应用程序核心执行的任何代码都可以完全访问所有可用的系统资源,并且不受限制。
在 WebView 中执行的任何代码只能通过定义良好的 IPC 层访问暴露的系统资源。对核心应用程序命令的访问由应用程序配置中定义的功能配置和限制。各个命令实现还强制执行在功能配置中定义的可选细粒度访问级别。
了解更多关于各个组件和边界执行的信息:
Tauri 允许开发者选择自己的前端堆栈和框架。这意味着我们无法为每个前端堆栈提供硬化指南,但 Tauri 提供了通用功能来控制和限制攻击面。
(不) 打包 WebViews
Tauri 的方法是依赖操作系统 WebView,而不是将 WebView 打包到应用程序二进制文件中。
这有很多原因,但从安全角度来看,最重要的原因是发布安全补丁版本的 WebView 到应用程序最终用户之间所需的平均时间。
我们观察到,WebView 包维护者和操作系统包维护者在平均情况下比将 WebView 直接打包到应用程序中的应用程序开发者更快地修补和发布安全补丁的 WebView 版本。
这种观察有例外,理论上两条路径都可以在类似的时间框架内完成,但这需要每个应用程序更大的基础设施开销。
从 Tauri 应用程序开发者体验的角度来看,打包有其缺点,我们不认为它本质上是不安全的,但当前的设计是一个权衡,显著减少了已知漏洞。
生态系统
Tauri 组织提供和维护的不仅仅是 Tauri 仓库,为了确保我们提供一个合理安全的跨平台应用程序框架,我们需要走一些额外的路。
要了解更多关于我们如何保护开发过程、你可以适应和实施的内容、你的应用程序可能面临的已知威胁以及我们计划在未来改进或硬化的内容,你可以查看以下文档:
协调披露
如果你觉得 Tauri 或其他组织仓库中的任何内容存在安全问题或问题,请不要公开评论你的发现。相反,直接联系我们的安全团队。
首选的披露方式是通过Github 漏洞披露在受影响的仓库上。我们的大多数仓库都启用了此功能,但如果有疑问,请通过Tauri 仓库提交。
或者,你可以通过电子邮件联系我们:security@tauri.app。
虽然我们目前没有用于安全赏金的预算,但在某些情况下,我们会考虑用我们有限的资源奖励协调披露。
脚注
© 2024 Tauri中文网