Skip to content

Latest commit

 

History

History
224 lines (125 loc) · 4.63 KB

security.rst

File metadata and controls

224 lines (125 loc) · 4.63 KB

Security

+-------------+------------------------------+
| rustls      | quinn                        |
|    +-------------+     +---------+---------+
|    | webpki      |     |         | tokio   |
+----+-------------+-----+         +---------+
|         ring           | futures           |
+------------------------+-------------------+
Repo:https://github.com/briansmith/ring

ring 是密碼學相關操作的 library, 由 Rust、C、assembly 寫成, 大部分的 C、assembly 是從 BoringSSL 來的, 而 BoringSSL 則是從 OpenSSL 來的, ring 有定期從 BoringSSL 上游拉回更動。

Site:https://dalek.rs/
Repo:https://github.com/dalek-cryptography/
  • Curve25519
  • Ed25519
  • x25519 Elliptic Curve Diffie-Hellman key exchange
  • Ristretto
  • Bulletproofs
Repo:https://github.com/sodiumoxide/sodiumoxide
Repo:https://github.com/RustCrypto/hashes
Repo:https://github.com/ctz/rustls

基於 ring 和 libwebpki 去實做 TLS library, 專案程式碼都是 Rust code。

參考:

Repo:https://github.com/sfackler/rust-native-tls

對系統 TLS library 做包裝, 根據編譯的平台做選擇。

支援:

  • OSX: Secure Transport
  • Windows: SChannel
  • Other: OpenSSL
site:https://mesalink.io/
repo:https://github.com/mesalock-linux/mesalink

基於 ring 和 rustls

Repo:https://github.com/briansmith/webpki

基於 ring 去實做 WebPKI X.509 Certificate Validation, 專案程式碼都是 Rust code。

Repo:https://github.com/est31/rcgen

小工具, 簡單快速地產生憑證。

Layer:Transport
Site:https://quicwg.org/
Wikipedia:https://en.wikipedia.org/wiki/QUIC
實做:https://github.com/quicwg/base-drafts/wiki/Implementations
HTTP/3 explained:https://daniel.haxx.se/http3-explained/
  • QUIC = UDP + TLS + congestion control + loss recovery
    • 讓 UDP 也有 TCP 的可靠性,同時擁有比 TCP 低的 latency
  • HTTP/3 = HTTP over QUIC

參考:

Repo:https://github.com/djc/quinn

Quinn 是基於 Rust futures 和 tokio 的 QUIC 實做。

futures + tokio + ring + webpki

Repo:https://github.com/cloudflare/quiche

參考:

Repo:https://github.com/mozilla/neqo

Signatory 提供了數位簽章的 API, 並且支援多種 backend 支援, 可以依照偏好選擇實做版本。

支援:

  • ECDSA
  • Ed25519
repo:https://github.com/breard-r/libreauth
  • Rust Crypto
    • block cipher algorithms
    • stream cipher algorithms
    • digital signature algorithms
    • cryptographic hash functions