Live data from Hacker News

Rust and Elixir libraries for end-to-end encrypted secure communication

github.com

11–20 of 21 posts

Re: Rust and Elixir libraries for end-to-end encrypted secure communication

#14
post #2

Aw. Thanks for posting this. Hi, I'm Matt, the CEO at Ockam. If anyone has any questions, we are happy to take them on in this thread today.

I have a few questions:

- Are there any benchmarks?

- Examples are focused around TCP inlet to TCP outlet. Any way you can add more complicated examples? I take I can have a TCP inlet and a Worker that would would receive TCP stream wrapped into Routed, then I can unwrap it and work with it kinda as if it was “normal” TCP.

I’m curious about second one because while connecting some clients to legacy is fun, it’s more fun when services connected directly. For example, I want some kind of RPC or database without “external” TCP connection from node to database.

Re: Rust and Elixir libraries for end-to-end encrypted secure communication

#15
post #14
post #2

Aw. Thanks for posting this. Hi, I'm Matt, the CEO at Ockam. If anyone has any questions, we are happy to take them on in this thread today.

I have a few questions: - Are there any benchmarks? - Examples are focused around TCP inlet to TCP outlet. Any way you can add more complicated examples? I take I can have a TCP inlet and a Worker that would would receive TCP stream wrapped into Routed, then I can unwrap it and work with it kinda as if it was “normal” TCP. I’m curious about second one because while connecting some clients to legacy is fun, it’s more…

Thanks for trying out the examples:

1. No benchmarks yet. We'd welcome contributions & research in that area.

2. Here's an example of using the TCP transport without using an Inlet / Outlet. https://github.com/build-trust/ockam/blob/develop/documentat...

Give it a try. Would love to know if that fits what you're going for.

Re: Rust and Elixir libraries for end-to-end encrypted secure communication

#17

If they solved only discovery, handshake and hole-punching problems and made relay optional, it would be more useful. Also, for relay, if they provided store-and-forward and also scatter/gather topologies, it would be more useful.

great feedback!

Re: Rust and Elixir libraries for end-to-end encrypted secure communication

#18

If they solved only discovery, handshake and hole-punching problems and made relay optional, it would be more useful. Also, for relay, if they provided store-and-forward and also scatter/gather topologies, it would be more useful.

Key/Route Discovery, Credential Issuance/Presentation, Secure Channel Handshakes and Message Routing that is decoupled from transport protocols have been our main focus.

We chose to build the more reliable e2ee strategy first - Relays. UDP hole puncturing is in development right now. However there is extensive research that proves it in only successful in making connections in 60 to 80% of real world networks. This is why Signal does relays for example. Relays provide a highly reliable strategy. So we knew we'll want to support both and give devs and option to choose what is right for their application. Or failover from one to the other.

In addition, relays also allow store and forward and integration to other enterprise systems like Kafka. This is how we're able to to move end-to-end encrypted data through Kafka https://github.com/build-trust/ockam/tree/develop/documentat...

Store and forward as a first class feature is in development.

Scatter/Gather is a much harder problem since it involves group key agreement and challenges that come with doing that safely. This is in our long term roadmap, but we've not done any development for this yet.

Re: Rust and Elixir libraries for end-to-end encrypted secure communication

#19
post #15
post #14

Earlier quoted context omitted.

I have a few questions: - Are there any benchmarks? - Examples are focused around TCP inlet to TCP outlet. Any way you can add more complicated examples? I take I can have a TCP inlet and a Worker that would would receive TCP stream wrapped into Routed, then I can unwrap it and work with it kinda as if it was “normal” TCP. I’m curious about second one because while connecting some clients to legacy is fun, it’s more…

Thanks for trying out the examples: 1. No benchmarks yet. We'd welcome contributions & research in that area. 2. Here's an example of using the TCP transport without using an Inlet / Outlet. https://github.com/build-trust/ockam/blob/develop/documentat... Give it a try. Would love to know if that fits what you're going for.

That's close to what I was thinking. I guess a message here could be just a bag of bytes, and then you can plug listener side into `tower` stack.

Can't exactly wrap my head around access control here. In this example, let's assume I'm using a proper policy and not `TrustEveryonePolicy`. What's stopping someone from using this route: route![(TCP, "localhost:3000"), (TCP, "localhost:4000"), "echoer"]; in this example?

I see that Worker has `is_authorized` method and even before that method executed `Mailbox` also uses, so I see how to avoid issue from above. However, middle node would forward any traffic without any questions unless https://docs.rs/ockam/latest/ockam/struct.Context.html#metho... is used? Then I'm curious if middle node will be able to use https://docs.rs/ockam/latest/ockam/access_control/struct.Ide... given that it doesn't know much about the channel?

I'm just working on something that could use this, but right now, we use wireguard + nftables + convoluted routing policies + TLS. I would go far to not use TLS and manage X.509 infrastructure and hopefully avoid double encryption.

Re: Rust and Elixir libraries for end-to-end encrypted secure communication

#20
post #8
post #5

Earlier quoted context omitted.

Good question. It's a nested reference. I named the company Ockam as a tribute to a company that a mentor of mine built and ran in the 70's - 2000's. He named his company after Occam's Razor. The full story: https://www.ockam.io/blog/whats_behind_the_ockam_name

So how did you end up fixing the networked devices issue?

Can you share more about this?
Post reply on HN