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