[Olsr-dev] "Secure" Mesh networks

John Barrett (spam-protected)
Tue Feb 9 08:46:44 CET 2010

But WEP or WPA or whatever can work is in the hardware, doesn't cost us 
any cpu time to use it. And I just checked, WPA-None/TKIP will work on 
ad-hoc networks.

What I'm thinking of is a TLS style handshake, which can either be 
piggybacked on the olsrd broadcasts, or handled through another port 
with a tcp/ip hookup (the more I think about it, the more I like the 
idea of putting it on a seperate port as TCP/IP) -- the TLS handshake 
lets both sides verify the peer certificate against the CA, and then 
provides a secure channel for the responder to pass a key value to the 
initiator that will be used to validate all messages generated by the 
responder over the normal olsrd broadcast channel. This eliminates the 
shared key -- every node generates its own randomly at startup, and 
insures that all peers of a given node know the key to validate traffic 
generated by that node.

The only drawback is that there will be two TLS connections required -- 
one for A to get a key from B, and one for B to get a key from A, but 
that only happens once during the initial hookup when 2 node become 
aware of each other, everything after that can be handled with light 
weight crypto (possible what the plugin uses now, but I have some other 
ideas that I want to think out a little more).

There is another side effect, it will block out all asymmetric links.

OK to summarize:
1. WPA to secure the ether short of the shared key getting compromised
2. TLS handshake to verify the node certificate and exchange unique 
verification keys before allowing a node to send ANY traffic.
3. signing of olsrd updates to insure that the data came from a verified 
node (with perhaps a more robust signing mechanism than is in the 
current code)

That should stop the vast majority of attacks...

Henning Rogge wrote:
> On Tue February 9 2010 01:16:14 John Barrett wrote:
>> OK -- just looked over that code -- and its getting close :)
>> I think I have everything in place to flash a couple of routers -- I'll
>> make sure I get the secure module in the build and see if it still works
>> as is, then probably base my work off that code :)
> Just a warning about the "secure" plugin. The only thing it does it to use a 
> shared secret to calculate a hash value and put it into each packet (plus a 
> timestamp against replay attacks). You can get more security by just 
> encrypting your Layer 2 with a symmetric key (not WEP because it's broken).
> I think that WPA supplicant should support some static shared key for WPA(2) 
> in linux, but I'm not sure.
> Henning Rogge

More information about the Olsr-dev mailing list