Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

babled: using hmac in decentralized environments? #678

Open
PolynomialDivision opened this issue Jun 10, 2021 · 7 comments
Open

babled: using hmac in decentralized environments? #678

PolynomialDivision opened this issue Jun 10, 2021 · 7 comments

Comments

@PolynomialDivision
Copy link
Member

PolynomialDivision commented Jun 10, 2021

I'm very interested in MAC authentication for the Babel routing protocol. However, I'm unsure if I can apply some of the parts to a decentralized network like freifunk, where everyone can participate. The basic idea is that I want to exclude unknown members through mac authentication? How do your share a secret key between neighbors (can I automatize the process?)? Any idea how we can use it?

@aparcar @kerneis @jech @SvenRoederer @pmelange @spolack @Akira25

@jech
Copy link

jech commented Jun 11, 2021

I've replied here:

https://www.mail-archive.com/babel-users@alioth-lists.debian.net/msg00797.html

(Feel free to reply to the list without being subscribed, I'll whitelist your address.)

@PolynomialDivision
Copy link
Member Author

Thanks a lot! I subscribed to the mailing-list today. I need some time to respond.

@SvenRoederer
Copy link
Contributor

a decentralized network like freifunk, where everyone can participate. The basic idea is that I want to exclude unknown members through mac authentication?

I just started a side-discussion at https://lists.freifunk.net/pipermail/wlantalk-freifunk.net/2021-June/001344.html on your general idea of excluding "unknown members" on the open decentralized Freifunk network. This intention seems to be conflicting with the spirit of Freifunk.
But let's focus in this issue on the technical side.

@jech
Copy link

jech commented Jun 12, 2021

@SvenRoederer wrote:

abgesehen vom technischen Aspekt einer solchen Implementierung stellt sich mir die Frage nach der Vereinbarkeit mit den Freifunk-prinzipien.

Right. Babel-MAC is an authentication mechanism. Out of the box, it can be used to implement static keying, but with suitable authentication and key distribution services, it could be used to implement a fairly wide range of policies.

It is possible that you guys are happy with your current unauthentified routing domain. If so, great. If not, then we can think together about (1) what security properties would enhance your network, (2) what security policies could be used to guarantee these properties, and (3) how best to implement the policies.

@PolynomialDivision
Copy link
Member Author

PolynomialDivision commented Jun 13, 2021

It is possible that you guys are happy with your current unauthentified routing domain. If so, great. If not, then we can think together about (1) what security properties would enhance your network, (2) what security policies could be used to guarantee these properties, and (3) how best to implement the policies.

That is exactly what I hoped for that we could work together to make mesh networking better. In particular, we are rolling out babeld over some parts of freifunk berlin. So far babeld is working very well! I'm not that happy that a potential attacker could attack our network.

However, I invested much of my free time currently becoming OLSR maintainer and fixing some important compiling and OpenWrt-specific things. OLSR codebase is huge and I would say it is not that easy because of all platforms that they support. Currently, I struggle with making a new release because of all the java bindings and android support. I do not receive feedback from the community if I can drop these platforms.

I would like to invest more of my time working on some more future proven project. That is why I would be happy to team up with you.

I have many open questions:

  • What metrics are good for monitoring purposes? (I will soon write some collectd plugin)
  • Can we distribute(flood) hostnames, or use a DHT, or DNS based approach
  • Layer-3 Roaming [0], [1]
  • Wireless-Mesh-Extensions
  • Plugins
  • Whatever...

I currently invest my free time in this project, so please forgive me that I need some time to answer on your mailing list. ;) I want to have a look at how b.m.x. is doing their crypto stuff and that my e-mail might consider more useful information.

Thanks for your very good maintenance, documentation and help. I really enjoy developing for babeld and using it.

@jech
Copy link

jech commented Jun 13, 2021 via email

@marek22k
Copy link
Contributor

marek22k commented Jul 21, 2023

HMAC is not yet implemented in UCI either, is it?
https://github.com/openwrt/routing/blob/master/babeld/files/babeld.init
https://alioth-lists.debian.net/pipermail/babel-users/2021-June/003827.html

Would a configuration like the following work?

config general
    option default_key "mydefaultkey"

config interface
    option ifname "eth1"
    option key "myotherkey"

config key
    option name "mydefaultkey"
    option type "hmac-sha256"
    option value "fe3c..."

config key
    option name "myotherkey"
    option type "hmac-sha256"
    option value "fe3c..."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants