News for hackers. Stuff that matters.
Re:eBPF will help solve service mesh by getting rid of sidecars by codetrotter on Thursday December 09, 2021 @10:35AM (#29498509)
> Identity-based Security: Relying on network identifiers to achieve security is no longer sufficient, both the sending and receiving services must be able to authenticate each other based on identities instead of a network identifier.

Kinda semi-offtopic but I am curious to know if anyone has used identity part of a WireGuard setup for this purpose.

So say you have a bunch of machines all connected in a WireGuard VPN. And then instead of your application knowing host names or IP addresses as the primary identifier of other nodes, your application refers to other nodes by their WireGuard public key?

I use WireGuard but haven’t tried anything like that. Don’t know if it would be possible or sensible. Just thinking and wondering.

Re:eBPF will help solve service mesh by getting rid of sidecars by tptacek on Thursday December 09, 2021 @10:46AM (#29498685)
We're a global platform that runs an intra-fleet WireGuard mesh, so we have authenticated addressing between nodes; we layer a couple dozen lines of BPF C on top of that to extend the authentication model to customer address prefixes. So, effectively, we're using WireGuard as an identity. In fact: we do so explicitly for peering connections to other services.

So yeah, it's a model that can work. It's straightforward for us because we have a lot of granular control over what can get addressed where. It might be trickier if your network model is chaotic.

Re:eBPF will help solve service mesh by getting rid of sidecars by madjam002 on Thursday December 09, 2021 @10:45AM (#29498661)
I too am interested in this.

I long for the day where Kubernetes services, virtual machines, dedicated servers and developer machines can all securely talk to eachother in some kind of service mesh, where security and firewalls can be implemented with "tags".

Tailscale seems to be pretty much this, but while it seems great for the dev/user facing side of things (developer machine connectivity), it doesn't seem like it's suited for the service to service communication side? It would be nice to have one unified connectivity solution with identity based security rather than e.g Consul Connect for services, Tailscale / Wireguard for dev machine connectivity, etc.

Re:eBPF will help solve service mesh by getting rid of sidecars by starfallg on Thursday December 09, 2021 @01:00PM (#29500715)
>I long for the day where Kubernetes services, virtual machines, dedicated servers and developer machines can all securely talk to eachother in some kind of service mesh, where security and firewalls can be implemented with "tags".

That's exactly what Scalable Group Tags (SGTs) are -

https://tools.ietf.org/id/draft-smith-kandula-sxp-07.html

Cisco implements this as a part of TrustSec

Re:eBPF will help solve service mesh by getting rid of sidecars by tgraf on Thursday December 09, 2021 @12:09PM (#29500015)
One of the methods that Cilium (which implements this eBPF-based service mesh idea) uses to implementation authentication between workloads is Wireguard. It does exactly what you describe above.

In addition it can also be used to enforce based on service specific keys/certificates as well.

Re:eBPF will help solve service mesh by getting rid of sidecars by allset_ on Thursday December 09, 2021 @12:39PM (#29500433)
Isn't the Wireguard implementation in Cilium between nodes only, not workloads (pods)?
Re:eBPF will help solve service mesh by getting rid of sidecars by tgraf on Thursday December 09, 2021 @12:57PM (#29500674)
It can do both. It can authenticate and encrypt all traffic between nodes which then also encrypts all traffic between the pods running on those pods. This is great because it also covers pod to node and all control plane traffic. The encryption can also use specific keys for different services to authenticate and encrypt pod to pod individually.
Re:eBPF will help solve service mesh by getting rid of sidecars by q3k on Thursday December 09, 2021 @10:38AM (#29498551)
You'd be adding a whole new layer of what would effectively be dynamic routing. It's doable, but it's not a trivial amount of effort. Especially if you want everything to be transparent and automagic.

There's earlier projects like CJDNS which provide pubkey-addressed networking, but they're limited in usability as they route based on a DHT.

Re:eBPF will help solve service mesh by getting rid of sidecars by gz5 on Thursday December 09, 2021 @10:11PM (#29506004)
Ziti (Apache) provides bootstrapped* identity based security (and programmable, least privilege overlays).

Disclosure: founder of company which sells SaaS on top of Ziti FOSS.

* https://ziti.dev/blog/bootstrapping-trust-part-5-bootstrappi...