[Babel-users] MAC auth. for Babel in babeld
Antonin Décimo
antonin.decimo at gmail.com
Thu Aug 20 11:35:31 BST 2020
Dear all,
I’ve rolled up my sleeves and finished my implementation of the MAC
authentication protocol in babeld.
It can be found on the branch "hmac" in
https://github.com/MisterDA/babeld.git
Or on the opened pull-request in the main repository at
https://github.com/jech/babeld/pull/52
There is one bug that I’m aware of: sometimes the local configuration
interface will respond "bad", letting the user think that there was an
error during the parsing or the processing of the configuration, but
everything happened correctly.
There is one feature that I have not implemented (yet): expiring
per-neighbour state (section 4.4) using the Hello history or a timer
based on the last accepted packet.
The code has not undergone review. No interoperability testing has
been done.
I’m also looking for feedback on the user interface. Here follows the
manual page describing the new configuration options (underscores
indicate user defined values).
In particular, do you think that implementing keysets and allowing an
unbounded number of keys is too much for babeld?
Key rotation is done through the local configuration interface.
MAC authentication for the Babel routing protocol
This protocol provides basic security properties for the Babel
routing protocol. The scope of this protocol is strictly
limited: it only provides authentication (we assume that
routing information is not confidential), it only supports
symmetric keying, and it only allows for the use of a small
number of symmetric keys on every link.
Keys and keysets are reference-counted. They are discarded as
soon as they are no longer referenced.
Interface configuration
mac {true|false}
Enable MAC security on this interface.
mac-verify {true|false}
Check packet signatures, reject unsigned or
incorrectly signed packets. The default is true.
add-keyset _keyset-name_
Add the keyset _keyset-name_ to the set of keysets
of this interface.
rm-keyset _keyset-name_
Remove the keyset _keyset-name_ from the set of
keysets of this interface.
Global options
key name _name_ algorithm {hmac-sha256|blake2s} value
_value_ use {sign|verify|both}
Configure a key for use with the mac interface
option. The algorithm is either hmac-sha256 or
blake2s. The value is a hexadecimal string (up to 64
bytes for hmac-sha256 or up to 32 bytes for
blake2s). The use specifies whether the key is used
to sign packets, verify packets, or both (signing
and verifying packets).
keyset _name_
Create an empty keyset.
keyset-add-key _keyset-name_ _key-name_
Add the key _key-name_ to the keyset _keyset-name_.
keyset-rm-key _keyset-name_ _key-name_
Remove the key _key-name_ from the keyset
_keyset-name_.
Thanks!
-- Antonin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/babel-users/attachments/20200820/60411981/attachment.html>
More information about the Babel-users
mailing list