《Rust Magazine》 2022 第一季发布
Rust Magazine 2022 第一季发布
发刊通告
2022年 《Rust Magazine》 将重新定位为:Rust 生态观察者
。
《Rust Magazine》将按季度发布,分类记录 Rust 生态中的一举一动。Rust 用户可以在这里找到不错的学习资源、项目实践的灵感、有趣的开源项目,并且可以及时了解 Rust 官方动态、社区事件等。
Rust 生态第一季回顾
- Rust 语言团队 2024 Roadmap 已经发布;
- WebAssembly 发展初露苗头;
- Rust 生态中终端应用不断涌现出优秀应用;
- Rust 跨平台开发尤其在 GUI 领域已凸显出了它的优势;
- Rust 在区块链领域的应用也非常值得关注;
- Rust 安全依然不容忽视,Rust 中内存安全和线程安全漏洞依然多于其他漏洞;
- Rust 在生物信息科技领域也有好几个开源应用,比想象中要多,主要集中在基因测序方向上;
- 有人开始用 Rust 来重写经典软件了,比如 Fornjot 要创建下一代 Code-CAD ;
- 在学术领域,研究 Rust 和 WebAssembly 的论文越来越多了。
详情:Rust Magazine 2022 第一季发布: https://mp.weixin.qq.com/s/T0pzrbymw6lEGS6PoEnZuQ
Rust 2024 路线图
Rust Lang Roadmap for 2024
核心目标
Rust 2024
的目标:扩大赋能的规模。
通过设计和实现Rust这个有大量高质量库和工具集支撑的强大语言,以及维护和建设一个强大而有力的社区,吸引更多乃至大规模用户学习和使用Rust,从而让每个人都能够构建可靠高效易扩展的软件。
三个主题
- 扁平化学习曲线:向新用户和新用例扩展 让新老用户都能更方便地使用Rust,让解决困难问题变得更容易。
- 帮助Rust的用户互相帮助:扩大生态系统的规模 赋予库的作者权力,以便他们能够反过来赋予他们的用户权力。
- 帮助Rust项目扩大规模:扩大项目规模 开发流程以适应越来越多的用户的需求和用例;评估并完成我们已经开始的项目。
https://blog.rust-lang.org/inside-rust/2022/04/04/lang-roadmap-2024.html
Rust 安全参考 | Rust 编译到 WebAssembly 可能出现侧信道攻击
Rust 安全参考 | Rust 编译到 WebAssembly 可能出现侧信道攻击
背景
一篇来自 Trail of Bits 安全公司博客的文章,介绍了 Rust 利用 LLVM 编译到 WebAssembly 时可能出现新的侧信道攻击风险。
许多工程师选择 Rust 作为他们实现加密协议的首选语言,因为它具有强大的安全保证。尽管 Rust 使安全的密码工程更容易,但仍有一些挑战需要注意。其中之一是需要保留恒定时间(constant-time)属性,这确保无论输入如何,代码都将始终花费相同的时间来运行。这些属性在防止时序攻击(timing attack)方面很重要,但它们可能会受到编译器优化的影响。
解决方案
如何阻止编译器优化破坏代码的恒定时间呢?有几种方案:
- 使用
-C opt-level=0
关闭所有优化。这种方案基本不可行,因为我们需要编译器的优化; - 使用来自 subtle crate 的构造来尝试阻止 LLVM 优化恒定时间代码路径的尝试;
- 语言内置私密类型来支持。之前有一个 Rust RFC 引入了 secret types,但这已被推迟,等待 LLVM 支持。
总结
通过插入优化屏障来对抗 LLVM 并不是提供恒定时间保证的好方法。正在努力在语言层面解决这个问题。私密类型 RFC和CT-Wasm 项目分别为 Rust 和 Wasm 引入了私密类型,是这种努力的两个很好的例子。缺少的是一种将机密类型和相应语义导入 LLVM 的方法。这很可能是 Rust 实现向前发展的先决条件。(Rust RFC 目前被推迟,等待 LLVM 的相应 RFC。)如果没有 LLVM 支持,很难看出依赖 LLVM 的高级语言如何提供任何绝对恒定时间的保证。在那之前,我们都在和编译器后端玩捉迷藏。
https://mp.weixin.qq.com/s/8ahnHTCsGADV5N6cL5jQqQ
Coppers:测量能源消耗的Rust测试框架
Coppers: Rust test harness that measures energy consumption
Coppers是一种Rust测试工具,借助 Intel RAPL,可以测量Rust程序在不同版本之间的功耗变化。
项目地址:https://github.com/ThijsRay/coppers