2024 年 Rust 加密生態系統概述

根據一項加密庫漏洞的實證研究,加密庫中 37.2% 的漏洞是內存安全問題,而只有 27.2% 是加密問題。

現在是時候不再使用 C 作爲實現加密庫的實際語言了。

由於 Rust 的高級特性與底層控制,沒有垃圾收集器,可移植性和易於嵌入,Rust 是我們取代當今最常用的加密庫的最佳選擇。OpenSSL, BoringSSL 和 libsodium,它們都是用 C 編寫的。

2024 年,Rust 的加密生態系統相當成熟,比以往任何時候都更令人興奮! 我們現在至少有 2 個庫可以在 fips 認證模式下使用。

廢話不多說,讓我們來看看 Rust 開發人員可以安全地使用加密原語的不同選擇。

aws-lc-rs

雖然 aw-lc-rs 是最新的 crate,但它也是最令人興奮的!

aw-lc-rs 是 AWS 的 libcrypto 的包裝器,libcrypto 是由 AWS 密碼學團隊爲 AWS 及其客戶維護的通用加密庫。它支持大多數平臺 (Linux、Windows、macOS、Android) 和最常見的體系結構(x86-64、aarch64)。

它的目標是提供與 ring 相同的 API(見下文),這是慣用的 Rust 庫並且易於使用。

它不僅提供了 FIPS 140-3 認證模式,還提供了後量子密鑰封裝機制 (KEM) 算法:Kyber512、Kyber768 和 Kyber1024。

ring

ring 專注於通過易於使用的 API,它公開了一組核心加密操作的實現、測試和優化。ring 公開了一個 Rust API,並用 Rust、C 和彙編語言進行混合編寫。

ring 提供了底層原語,可以在高級協議和應用程序中使用。主要維護者以對密碼學和高質量代碼非常認真而聞名。

ring 的唯一問題是缺少一些算法,例如 XChaCha20-Poly1305,並且它還沒有提供任何後量子密碼原語。

boring

boring 是 Cloudflare 對 Google 的 boringssl 的安全包裝。這個 API 太像 c 了,用起來不舒服,所以不推薦它。

dalek-cryptography

dalek-cryptography 是一個 GitHub 組織,重組了多個關於純 rust 橢圓曲線加密的包,如 x25519 和 ed25519。

這些項目被密碼學的組織使用,比如 Signal 和 Diem。

Rust Crypto

Rust Crypto 是一個 GitHub 組織,在純 Rust 中,通過提供一個基本特徵併爲所有不同的算法實現它,重新組合了需要的所有加密原語。

不幸的是,並非所有的 crate 都由專業的第三方審覈。

總結

vwx8Ic

請注意,目前只有 aws-lc-rs 和 ring 可以與 rust 以及大多數 HTTP 客戶端 / 服務器一起使用。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/ubr6Bseu4Un3hJqkO2Un-Q