Opentopia Directory Encyclopedia Tools

Internet key exchange

Encyclopedia : I : IN : INT : Internet key exchange


Internet key exchange (IKE) is the protocol used to set up a Security Association in the IPsec protocol suite.

Overview

IKE is defined in RFC 2409 and uses a Diffie-Hellman key exchange to set up a shared session secret, from which cryptographic keys are derived. Public key techniques or, alternatively, a Pre-shared key (aka preshared secret), is used to mutually authenticate the communicating parties.

IKE incorporates parts of the proposed Oakley protocol.

Architecture

Most IPsec implementations consist of an IKE daemon that runs in user space and an IPsec stack in the kernel that processes the actual IP packets.

User space daemons have easy access to mass storage which contains configuration information such as the IPSec endpoint addresses, keys and certificates as required. Kernel modules on the other hand can process packets efficiently and with minimum overhead - which is important for performance reasons.

The IKE protocol uses UDP packets, usually on port 500 and generally requires 4-6 packets with 2-3 turn-around times to create an SA on both sides. The negotiated key material - say an AES key and endpoint information (which IP endpoints and ports we are protecting) as well as what type of IPsec tunnel has been created - is then given to the IPsec stack. It in turn intercepts the relevant IP packets if and where appropriate and performs encryption/decryption as required. Implementations vary on how the interception of the packets is done. Some use virtual devices, others take a slice out of the firewall - it varies.

Interoperability matters

IKE has a lot of configuration options. There is no general facility for automatic negotiation of a well known, reasonably safe default case that everybody implements. That is, both sides of an IKE must pretty much exactly agree on which kind of SA they want to create - option by option - or things will just not work. Usually the debug output is difficult for the un-initiated to interpret, if there is any at all.

The IKE specifications (there are a lot of RFCs involved) are open to a not insignificant degree of interpretation - bordering on design faults (Dead-Peer-Detection being a point in case). This gives rise to different IKE implementations not being able to create (agree upon) an SA at all for many combinations of options - however correctly configured they might appear at either end.

Confusion ensues as nobody can tell whether they are looking at an implementation, configuration or bad-debug-interpretation problem, or a combination thereof. This problem has given rise to commercial organizations that provide interoperability testing services for IPsec. Really, it is for IKE testing, because the rest of IPsec is straightforward by comparison. IPsec interoperability problems are almost certainly also a major if not the major reason why SSL-VPN's are becoming popular.

Implementations

There are a number of Open Source implementations of IPsec with associated IKE capabilities. On Linux the FreeSwan and now Openswan and strongSwan implementations provide an IKE daemon called pluto which can configure (give SA's) to the KLIPS or NETKEY kernel based IPsec stacks. NETKEY being the Linux 2.6 kernels native IPsec implementation. BSD also has an IPsec implementation and IKE daemon, and most importantly a cryptographic framework (OpenBSD Cryptographic Framework - OCF) which makes supporting cryptographic accelerators much easier. OCF has recently been ported to Linux.

A significant number of network equipment vendors have created their own IKE daemons (and IPsec implementations) - or license a stack from one another.

IKEv2

IKEv2 is an attempt to address a number of issues within the IKE protocol.

See also: Key-agreement protocol

External links

RFC 2409
Internet Key Exchange

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.

Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: