Implementing IPsec

Keromytis, Angelos D.; Ioannidis, John; Smith, Jonathan M.

The IP security protocols are sufficiently mature to benefit from multiple independent implementations and worldwide deployment. Towards that goal, we implemented the protocols for the BSD/OS, Linux, OpenBSD and NetBSD. While some differences in the implementations exist due to the differences in the underlying operating system structures, the design philosophy is common. A radix tree, namely the one used by the BSD code for routing purposes, is used to implement the policy engine; a transform table switch is used to make addition of security transformations an easy process; a lightweight kernel-user communication mechanism is used to pass key material and other configuration information from user space to kernel space, and to report asynchronous events such as requests for new keys from the kernel space to a user-level keying daemon; and two distinct ways of intercepting outgoing packets and applying the IPsec transformations to them are employed. The techniques used in our implementations are explained, differences in approaches are analysed, and hints are given to potential future implementers of new transforms.



Also Published In

GLOBECOM 97: IEEE Global Telecommunications Conference: conference record, Phoenix, Arizona, 3-8 November 1997
Institute of Electrical and Electronics Engineers

More About This Work

Academic Units
Computer Science
Published Here
July 12, 2012