News for hackers. Stuff that matters.
Re:Meshbird – Distributed private networking by rickette on Monday February 13, 2017 @05:42PM (#13639515)
Just took a quick look at the crypto implementation. It uses AES-256 in CBC mode but..... without an authentication tag (HMAC).
Re:Meshbird – Distributed private networking by mikeycgto on Monday February 13, 2017 @08:44PM (#13640535)
Also known as "The Cryptographic Doom Principle".

https://moxie.org/blog/the-cryptographic-doom-principle/

Re:Meshbird – Distributed private networking by Cyphase on Tuesday February 14, 2017 @12:33AM (#13641408)
I hadn't come across that post that I can remember; a very nice explanation by Moxie. Thanks.
Re:Meshbird – Distributed private networking by beefsack on Monday February 13, 2017 @09:51PM (#13640790)
There is an official (albeit experimental) NaCl implementation for Go which would probably have both been simpler and stronger to use: https://godoc.org/golang.org/x/crypto/nacl
Re:Meshbird – Distributed private networking by miovoid on Monday February 13, 2017 @10:31PM (#13640934)
We are working on AES-GCM encryption.
Re:Meshbird – Distributed private networking by tptacek on Monday February 13, 2017 @10:56PM (#13641019)
Why did you use CBC? It's actually harder than crypto/cipher.AEAD, and what you're doing now seems insecure.
Re:Meshbird – Distributed private networking by miovoid on Monday February 13, 2017 @11:17PM (#13641100)
Because it is easy to use to separate UDP datagrams.
Re:Meshbird – Distributed private networking by problems on Monday February 13, 2017 @11:25PM (#13641133)
In what way? Are you relying on CBC padding to determine packet size?
Re:Meshbird – Distributed private networking by tptacek on Tuesday February 14, 2017 @10:28AM (#13644103)
I don't think that's the case.
Re:Meshbird – Distributed private networking by Cyphase on Monday February 13, 2017 @04:11PM (#13638810)
Development seems to be.. on hold, at the very least. The last commit was almost 6 months ago (2016-08-23), and the most recently closed issue was closed over 8 months ago (2016-06-06), and before that a year ago (2016-02-22).
Re:Meshbird – Distributed private networking by hueving on Tuesday February 14, 2017 @04:52AM (#13642432)
Or maybe the project is complete. ;)
Re:Meshbird – Distributed private networking by Cyphase on Tuesday February 14, 2017 @12:54PM (#13645498)
Not based on the open issues and roadmap. I realize you were probably joking, but it's a valid point anyway; I considered addressing it in my original comment.
Re:Meshbird – Distributed private networking by Cyphase on Tuesday February 14, 2017 @12:58PM (#13645529)
Looks like there's been some activity since this hit HN.
Re:Meshbird – Distributed private networking by phildougherty on Monday February 13, 2017 @05:17PM (#13639302)
How is this doing discovery of other nodes? Says it is fully decentralized but just doing a `meshbird new` to get a key and then running `MESHBIRD_KEY="key" meshbird join` doesn't explain the discovery mechanism to me. Haven't dug into it much though.
Re:Meshbird – Distributed private networking by miovoid on Monday February 13, 2017 @10:50PM (#13641000)
We are using DHT https://en.wikipedia.org/wiki/Distributed_hash_table.

Each node announce some key in DHT network, that represents hash of shared secret key.

Re:Meshbird – Distributed private networking by justinsaccount on Monday February 13, 2017 @05:21PM (#13639343)

  > Technologies used
  >     DHT
Re:Meshbird – Distributed private networking by phildougherty on Monday February 13, 2017 @05:27PM (#13639395)
Thanks!
Re:Meshbird – Distributed private networking by solidsnack9000 on Monday February 13, 2017 @09:17PM (#13640658)
It sounds like you figured it out from that...but I'm having trouble. Does it do discovery the first time you attempt to connect or something?
Re:Meshbird – Distributed private networking by miovoid on Monday February 13, 2017 @10:20PM (#13640899)
Hey! I'm MeshBird's author. Feel free to ask a questions.
Re:Meshbird – Distributed private networking by chetanahuja on Monday February 13, 2017 @10:23PM (#13640908)
@rickette posted this:

"Just took a quick look at the crypto implementation. It uses AES-256 in CBC mode but..... without an authentication tag (HMAC)."

Any response?

Re:Meshbird – Distributed private networking by miovoid on Monday February 13, 2017 @10:25PM (#13640912)
Good point. We are going to implement AES-GCM encryption based data transfer. Why AES-GCM to solve HMAC missing? Because Go have low-level asm optimisations. This is open way to full utilization of 10G/40G networks.
Re:Meshbird – Distributed private networking by wtbob on Monday February 13, 2017 @11:01PM (#13641037)
Seriously, I'd advise that you implement an HMAC today, and implement GCM tomorrow — using raw CTR mode really is that dangerous. And make sure that you never ever ever reuse IVs, ever.

This sort of thing is incredibly dangerous. Props to you for coming up with a great UX, but crypto is very, very difficult to get right.

Re:Meshbird – Distributed private networking by qrpike on Tuesday February 14, 2017 @07:33AM (#13643057)
Keep up the good work! Much appreciated
Re:Meshbird – Distributed private networking by jbverschoor on Monday February 13, 2017 @04:35PM (#13638999)
Soit's like zerotier?
Re:Meshbird – Distributed private networking by chatmasta on Tuesday February 14, 2017 @06:40AM (#13642812)
It's a bit misleading to say no gateways are required. As far as I can tell it uses STUN/TURN for NAT busting. When NAT busting does not work (in case of corporate firewall for example), communication falls back to the TURN server as a relay.

IIRC according to google a few years ago, something like 10-20% of STUN/TURN traffic needs to be routed over the TURN relay server.

This is a gateway.

Re:Meshbird – Distributed private networking by anticodon on Tuesday February 14, 2017 @03:23AM (#13642101)
I don't fully understand purpose of this project after visiting the website and other links provided in comments. How is it different from regular VPN?

Edit: found explanation on ZeroTier blog: https://www.zerotier.com/blog/?p=833

Re:Meshbird – Distributed private networking by miovoid on Tuesday February 14, 2017 @10:35AM (#13644193)
1. now central server 2. node autodiscovery across Internet

For example, you can easily build Cassandra, MongoDB or PostgreSQL cluster on top of Meshbird networking in different countries.

Re:Meshbird – Distributed private networking by macrael on Monday February 13, 2017 @04:47PM (#13639079)
Does anyone here have any experience with other distributed VPNs?
Re:Meshbird – Distributed private networking by nine_k on Monday February 13, 2017 @09:24PM (#13640683)
ZeroTier: it connects my laptop, my VDS, and my behind-two-NATs home machine pretty efficiently. That is, e.g., when my laptop is connected to the home wi-fi, the zerotier interface seems to exchange packets directly with the home machine.

Presence of an Android client is important for me. Auto-reconfiguation in a new network (laptop on a public wi-fi, phone on mobile networks) is nice.

"Peer-to-peer discovery" is not important for me, that is, I'm OK with my nodes discovering the network via a control center. (You can self-host the control center.)

Re:Meshbird – Distributed private networking by wizeman on Monday February 13, 2017 @08:14PM (#13640407)
cjdns works for me and seems quite secure as a private, distributed VPN. It automatically assigns an unforgeable IPv6 address to each node:

https://github.com/cjdelisle/cjdns

Re:Meshbird – Distributed private networking by Wicher on Monday February 13, 2017 @05:33PM (#13639437)
Tinc (http://www.tinc-vpn.org) works well for me and can do meshing.
Re:Meshbird – Distributed private networking by stevekemp on Tuesday February 14, 2017 @05:58AM (#13642637)
gvpe is similar to tinc, and I wrote up a small piece about using it on Debian here:

https://debian-administration.org/article/695/Joining_dispar...

Re:Meshbird – Distributed private networking by rebase on Monday February 13, 2017 @05:11PM (#13639267)
Check out wireguard: https://www.wireguard.io/
Re:Meshbird – Distributed private networking by api on Monday February 13, 2017 @05:19PM (#13639314)
Wireguard supports roaming but it's not distributed in a p2p global sense.
Re:Meshbird – Distributed private networking by rebase on Monday February 13, 2017 @05:29PM (#13639417)
True. tinc: https://www.tinc-vpn.org/ is another option for distributed VPN

But if you're ok with discovery going through master/server and then connecting directly to peers for traffic, I'd stick with Wireguard.

Re:Meshbird – Distributed private networking by mirimir on Monday February 13, 2017 @05:30PM (#13639421)
PeerVPN – Open-source peer-to-peer VPN

https://news.ycombinator.com/item?id=9025792

Re:Meshbird – Distributed private networking by rcarmo on Monday February 13, 2017 @06:55PM (#13640030)
I used to use n2n:

https://github.com/meyerd/n2n

Haven't found anything else quite like it.

Re:Meshbird – Distributed private networking by gwu78 on Tuesday February 14, 2017 @02:04AM (#13641794)
Why did you stop using it?
Re:Meshbird – Distributed private networking by rcarmo on Tuesday February 14, 2017 @03:19AM (#13642091)
Well, it seems to be stalled, for starters.

Running a VPN between only 4 machines wasn't that useful, and it needs a central server. I quite like Meshbird's idea of using DHT instead. If it ever evolves to improve its crypto and setup, I might take it up instead.

Re:Meshbird – Distributed private networking by gwu78 on Tuesday February 14, 2017 @12:14PM (#13645118)
".. it needs a central server."

There is a PDF by the original author that explains the difference from "VPNs".

A reachable IP address and a TAP device are the only requirements.

For example, two edges can also be supernodes. A third party supernode would only be needed for the initial connection. Once connected, then each can use the supernode run by the other. The third party is no longer needed. No central server.

As for DHT, who runs the DHT bootstrap server?

Do DHT users run their own bootstrap servers?

Do users exercise any control over the DHT? Who does?

Re:Meshbird – Distributed private networking by rcarmo on Tuesday February 14, 2017 @05:40PM (#13647960)
By central server I mean a referral hub, yes. But I just couldn't keep one up reliably (in the sense that I didn't want to, since the mesh had to be fairly dynamic in my case).
Re:Meshbird – Distributed private networking by fulafel on Tuesday February 14, 2017 @12:08AM (#13641302)
The IPsec stack that comes your OS probably supports host-to-host mesh when suitably configured.
Re:Meshbird – Distributed private networking by NetStrikeForce on Tuesday February 14, 2017 @06:36AM (#13642796)
I run Wormhole (hosted "distributed" VPN / Overlay Networking / You name it), which uses SoftEther behind the curtains: https://wormhole.network
Re:Meshbird – Distributed private networking by aiNohY6g on Tuesday February 14, 2017 @12:26AM (#13641379)
Not a VPN and not distributed, but probably worth to mention anyway: Tor hidden service + SSH. Works very well.
Re:Meshbird – Distributed private networking by jlgaddis on Monday February 13, 2017 @10:52PM (#13641006)
I've used DMVPN extensively, but mostly on (Cisco) BFR's.
Re:Meshbird – Distributed private networking by Rhapso on Tuesday February 14, 2017 @04:19PM (#13647285)
Why not just use cjdns?
Re:Meshbird – Distributed private networking by sushisource on Monday February 13, 2017 @06:30PM (#13639870)
The real win here is clearly that abomination of a GoPher
Re:Meshbird – Distributed private networking by eeZah7Ux on Monday February 13, 2017 @05:14PM (#13639281)
"Better encryption" in the roadmap and then "curl ... | sh".

No. Thanks.

Re:Meshbird – Distributed private networking by eridius on Monday February 13, 2017 @05:17PM (#13639297)
"curl ... | sh" is absolutely fine. If you want to complain about something, complain about the fact that the URL being used is an http URL instead of an https one.
Re:Meshbird – Distributed private networking by api on Monday February 13, 2017 @05:59PM (#13639640)
If you want to complain about something, complain about the completely pointless fragmentation of the Linux ecosystem that pretty much mandates "curl|bash" to ship software for "Linux."
Re:Meshbird – Distributed private networking by vacri on Tuesday February 14, 2017 @12:49AM (#13641484)
You say that like advanced packaging tools weren't pioneered by "Linux"...
Re:Meshbird – Distributed private networking by api on Tuesday February 14, 2017 @10:26AM (#13644093)
They were. That's not the problem.

The problem is tools -- plural. Users think "I have Linux, where do I get the Linux version?" You have to provide arcane instructions for how to add a package repository on Every. Single. Linux. Distribution.

Or you can script it and users can run a command. Still painful, but less so for the user.

As far as the distributions themselves go: they are harder to get software into than the Apple App Store. The rules are arcane and the docs either barely exist or are on wikis that have not been updated in over a decade. The whole process is unnecessarily arcane beyond belief.

Re:Meshbird – Distributed private networking by aftbit on Monday February 13, 2017 @05:43PM (#13639518)
"curl | sh" is not in itself any less secure than "npm install" or "go get", but it is often a good indicator of a project that takes usability more seriously than security. IMO, it's also seen as "the new way" to do installs, and implies a lack of respect for the fodgy old way to do things (e.g. with a package manager).
Re:Meshbird – Distributed private networking by eridius on Monday February 13, 2017 @06:13PM (#13639746)
> … is not in itself any less secure … takes usability more seriously than security.

You're contradicting yourself. If it's not any less secure, then how does using it mean you're not taking security securely? And you're also treating usability as if it's not important, when in fact usability is very nearly the most important part. If your software isn't usable, then nobody will use it, and if nobody is using it then it doesn't matter how secure it is.

Re:Meshbird – Distributed private networking by awinder on Monday February 13, 2017 @06:19PM (#13639789)
Many of these scripts actually install through package managers, dockers curl | sh like a year or two ago basically just set up an apt repo and ran some apt commands. I think the hurdle they're gunning for is having X number of distro targets and the explanation cost for a user that just wants to jump in.

At least, that's how I've read it to be.