Implementation

The secure OLSR proposal is implemented as an olsrd plugin. The implementation includes message signing and timestamp exchange, and it is part of the olsrd source code available for download at http://www.olsr.org.

Implementing functionality that was to work on all incoming and outgoing ``raw'' OLSR traffic, required an extension to the network output functionality in olsrd. Apart from this, the plugin could be implemented without problems due to the modular design of olsrd. An overview of the relations between the plugin and olsrd is illustrated in figure 11.8. The implementation is to be as transparent to the olsrd code as possible. Therefore, all incoming traffic is passed to the plugin which verifies the packet and removes the signature message and updates the size field of the OLSR packet header. For outgoing traffic the opposite goes. All outgoing OLSR traffic is passed to the plugin which adds the signature and updates the packet size.

Figure: A illustration of the design of the secure plugin as related to olsrd.
\includegraphics[width=5.8in]{gfx/secure-plugin.eps}

The key used is read from the file /root/.olsrd/olsrd-key and is 128-bits of size. If no key can be read from the file, the plugin will terminate the olsrd process with a warning message.

Other solutions might be implemented in future versions to handle local key management better or to be able to work in an integrated fashion with some authentication scheme.



Subsections
Andreas 2004-07-29