Check out the new USENIX Web site. next up previous
Next: Addressing Denial of Service Up: Implementation Details Previous: Portability Considerations

Debugging Support

Being a security critical application, it is vital isakmpd be as bug-free as possible. All software contains bugs, and all development creates new ones. Recognizing that, we have chosen to make debugging a more pleasant task than it usually is. Normally isakmpd detaches from the controlling terminal and logs only exceptional conditions to the syslog facility. However, in order to be able to run under a normal debugger, it is possible to run in the foreground, sending logging messages to stderr instead. As we have already mentioned, the logging module has a fine-grained control mechanism making it easy to chose detailed information on certain topics. In order to ease problem pinpointing, almost every intermediary computation can be logged.

The build environment also contains instructions on how to build isakmpd with two different memory allocation debugging tools: ElectricFence, for finding buffer overflows and use after deallocation, and Boehm's garbage collector to find memory leaks. We periodically run with these tools to test for such problems.


  
Figure 4: A Pentium 200MHz running two instances of isakmpd negotiating over the loopback interface (an exchange between two distinct machines may actually finish faster as some computations can be carried out in parallel).
\begin{figure*}
\begin{center}
\begin{tabular}
{\vert l\vert r\vert}
\hline
Exch...
 ...k mode, 3DES, SHA, no PFS & 0.35 \ \hline\end{tabular}\end{center}\end{figure*}


next up previous
Next: Addressing Denial of Service Up: Implementation Details Previous: Portability Considerations
Angelos D. Keromytis
4/20/2000