The-DevX-Initiative / RCIG_Coordination_Repo

A Coordination repo for all things Rust Cryptography oriented
https://cryptography.rs
260 stars 33 forks source link

Awesome Rust Cryptography: Should Double Ratchet algorithms be added to the Transport Encryption Libraries section #92

Open potto216 opened 1 month ago

potto216 commented 1 month ago

Should Double Ratchet algorithms and other secure message exchange algorithms be added to the Transport Encryption Libraries section? Besides the Signal Rust code for the Double Ratchet algorithms the two most active crates I've found are:

  1. double-ratchet-signal v0.1.3
  2. double-ratchet-rs v0.4.6 Neither appear to have been audited.

Thanks, Paul

tarcieri commented 1 month ago

I'd think of them more like E2EE messaging libraries. We don't have a section for that but there are many things we could potentially put under there if we did.

potto216 commented 1 month ago

I also think messaging libraries would be a valuable section, especially for investigating solutions for low data rate wireless messaging systems where post quantum algorithms' larger data requirements may require a suite of options.

What would the next step be? Work with others on defining the section?

tarcieri commented 3 weeks ago

If you want to add a messaging section, it might be helpful to enumerate other mature messaging-related libraries, like OpenMLS

potto216 commented 3 weeks ago

Okay great, I'll work on that this week and submit a PR with edits to https://github.com/The-DevX-Initiative/RCIG_Coordination_Repo/blob/main/Awesome_Rust_Cryptography.md unless there is a different procedure.

potto216 commented 3 weeks ago

@tarcieri what are your thoughts on the following?

Secure Messaging Protocols

This section is for secure messaging protocols that share the common properties of transferring messages in a framework with end-to-end encryption (E2EE) perfect forward secrecy, and post-compromise security. The algorithms I would include (assuming I can find the Rust implementations) are:

I would not include connectionless VPN protocols like [WireGuard] (https://www.wireguard.com/protocol/) or underlying protocols like Noise.

I'm not sure about secure protocol pairs like the Constrained Application Protocol CoAP using Datagram Transport Layer Security [DTLS] (https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security) for end-to-end security. It is message like with its RESTFul interface but CoAP requires an underlying protocol to be secure.

tarcieri commented 3 weeks ago

This resource is a list of Rust crates/libraries that implement protocols, not just a generic overview of protocols.

So it should be e.g. OpenMLS and mls-rs, not just information about MLS as a protocol

potto216 commented 6 days ago

Thanks. Below is what I propose adding the Awesome Rust page. The entries are tied to active crates. MLS is included even though it is already listed under the Transport Encryption Libraries.

Secure Messaging Protocols

This section is for secure messaging protocols that transfer messages with end-to-end encryption (E2EE) and may use perfect forward secrecy and post-compromise security.

tarcieri commented 6 days ago

@potto216 sure, looks good. Maybe mention mls-rs too?

potto216 commented 5 days ago

@tarcieri -- updated. What is the next step if there are no other edits I should make?

Secure Messaging Protocols

This section is for secure messaging protocols that transfer messages with end-to-end encryption (E2EE) and may use perfect forward secrecy and post-compromise security.

tarcieri commented 3 days ago

Looks good. Can you open a PR to modify Awesome_Rust_Cryptography.md?