
Meshbird – Distributed private networking - wjh_
https://github.com/meshbird/meshbird
======
rickette
Just took a quick look at the crypto implementation. It uses AES-256 in CBC
mode but..... without an authentication tag (HMAC).

~~~
mikeycgto
Also known as "The Cryptographic Doom Principle".

[https://moxie.org/blog/the-cryptographic-doom-
principle/](https://moxie.org/blog/the-cryptographic-doom-principle/)

~~~
Cyphase
I hadn't come across that post that I can remember; a very nice explanation by
Moxie. Thanks.

------
Cyphase
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).

~~~
hueving
Or maybe the project is complete. ;)

~~~
Cyphase
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.

------
phildougherty
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.

~~~
justinsaccount

      > Technologies used
      >     DHT

~~~
phildougherty
Thanks!

~~~
solidsnack9000
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?

------
miovoid
Hey! I'm MeshBird's author. Feel free to ask a questions.

~~~
chetanahuja
@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?

~~~
miovoid
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.

~~~
wtbob
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.

------
jbverschoor
Soit's like zerotier?

------
chatmasta
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.

------
anticodon
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](https://www.zerotier.com/blog/?p=833)

~~~
miovoid
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.

------
macrael
Does anyone here have any experience with other distributed VPNs?

~~~
Wicher
Tinc ([http://www.tinc-vpn.org](http://www.tinc-vpn.org)) works well for me
and can do meshing.

~~~
stevekemp
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...](https://debian-
administration.org/article/695/Joining_disparate_hosts_into_a_VPN_with_gvpe)

------
Rhapso
Why not just use cjdns?

------
sushisource
The real win here is clearly that abomination of a GoPher

------
eeZah7Ux
"Better encryption" in the roadmap and then "curl ... | sh".

No. Thanks.

~~~
eridius
"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.

~~~
aftbit
"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).

~~~
eridius
> _… 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.

