Implementing IPsec
暂无分享,去创建一个
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.
[1] Daniel McDonald. A Simple IP Security API Extension to BSD Sockets , 1997 .
[2] David P. Anderson,et al. A Protocol for Secure Communication in Large Distributed Systems , 1987 .
[3] Michael J. Oehler,et al. HMAC-MD5 IP Authentication with Replay Prevention , 1997, RFC.