IPsec Basics
IPsec Overview
IPsec is a suite of related protocols for cryptographically securing communications at the IP Packet Layer. IPsec also provides methods for the manual and automatic negotiation of security associations (SAs) and key distribution, all the attributes for which are gathered in a domain of interpretation (DOI). The IPsec DOI is a document containing definitions for all the security parameters required for the successful negotiation of a VPN tunnel—essentially, all the attributes required for SA and IKE negotiations. See RFC 2407 and RFC 2408 for more information.
To use IPsec security services, you create SAs between hosts. An SA is a simplex connection that allows two hosts to communicate with each other securely by means of IPsec. There are two types of SAs: manual and dynamic.
IPsec supports two modes of security (transport mode and tunnel mode).
Security Associations
A security association (SA) is a unidirectional agreement between the VPN participants regarding the methods and parameters to use in securing a communication channel. Full bidirectional communication requires at least two SAs, one for each direction. Through the SA, an IPsec tunnel can provide the following security functions:
Privacy (through encryption)
Content integrity (through data authentication)
Sender authentication and—if using certificates—nonrepudiation (through data origin authentication)
The security functions you employ depend on your needs. If you need only to authenticate the IP packet source and content integrity, you can authenticate the packet without applying any encryption. On the other hand, if you are concerned only with preserving privacy, you can encrypt the packet without applying any authentication mechanisms. Optionally, you can both encrypt and authenticate the packet. Most network security designers choose to encrypt, authenticate, and replay-protect their VPN traffic.
An IPsec tunnel consists of a pair of unidirectional SAs—one SA for each direction of the tunnel—that specify the security parameter index (SPI), destination IP address, and security protocol (Authentication Header [AH] or Encapsulating Security Payload [ESP] employed. An SA groups together the following components for securing communications:
Security algorithms and keys.
Protocol mode, either transport or tunnel. Junos OS devices always use tunnel mode. (See Packet Processing in Tunnel Mode.)
Key-management method, either manual key or AutoKey IKE.
SA lifetime.
For inbound traffic, Junos OS looks up the SA by using the following triplet:
Destination IP address.
Security protocol, either AH or ESP.
Security parameter index (SPI) value.
For outbound VPN traffic, the policy invokes the SA associated with the VPN tunnel.
IPsec Key Management
The distribution and management of keys are critical to using VPNs successfully. Junos OS supports IPsec technology for creating VPN tunnels with three kinds of key creation mechanisms:
Manual key
AutoKey IKE with a preshared key or a certificate
You can choose your key creation mechanism—also called authentication method—during Phase 1 and Phase 2 proposal configuration. See Internet Key Exchange.
This topic includes the following sections:
Manual Key
With manual keys, administrators at both ends of a tunnel configure all the security parameters. This is a viable technique for small, static networks where the distribution, maintenance, and tracking of keys are not difficult. However, safely distributing manual-key configurations across great distances poses security issues. Aside from passing the keys face-to-face, you cannot be completely sure that the keys have not been compromised while in transit. Also, whenever you want to change the key, you are faced with the same security issues as when you initially distributed it.
AutoKey IKE
When you need to create and manage numerous tunnels, you need a method that does not require you to configure every element manually. IPsec supports the automated generation and negotiation of keys and security associations using the Internet Key Exchange (IKE) protocol. Junos OS refers to such automated tunnel negotiation as AutoKey IKE and supports AutoKey IKE with preshared keys and AutoKey IKE with certificates.
AutoKey IKE with preshared keys—Using AutoKey IKE with preshared keys to authenticate the participants in an IKE session, each side must configure and securely exchange the preshared key in advance. In this regard, the issue of secure key distribution is the same as that with manual keys. However, once distributed, an autokey, unlike a manual key, can automatically change its keys at predetermined intervals using the IKE protocol. Frequently changing keys greatly improves security, and automatically doing so greatly reduces key-management responsibilities. However, changing keys increases traffic overhead; therefore, changing keys too often can reduce data transmission efficiency.
A preshared key is a key for both encryption and decryption, which both participants must have before initiating communication.
AutoKey IKE with certificates—When using certificates to authenticate the participants during an AutoKey IKE negotiation, each side generates a public-private key pair and acquires a certificate. As long as the issuing certificate authority (CA) is trusted by both sides, the participants can retrieve the peer’s public key and verify the peer's signature. There is no need to keep track of the keys and SAs; IKE does it automatically.
Diffie-Hellman Exchange
A Diffie-Hellman (DH) exchange allows participants to produce a shared secret value. The strength of the technique is that it allows participants to create the secret value over an unsecured medium without passing the secret value through the wire. The size of the prime modulus used in each group's calculation differs as shown in the below table. Diffie Hellman (DH) exchange operations can be performed either in software or in hardware. The following Table 1 lists different Diffie Hellman (DH) groups and specifies whether the operation performed for that group is in the hardware or in software.
Diffie-Hellman (DH) Group |
Prime Module Size |
---|---|
DH Group 1 |
768-bit |
DH Group 2 |
102-bit |
DH Group 5 |
1536-bit |
DH Group 14 |
2048-bit |
DH Group 15 |
3072-bit |
DH Group 16 |
4096-bit |
DH Group 19 |
256-bit elliptic curve |
DH Group 20 |
384-bit elliptic curve |
DH Group 21 |
521-bit elliptic curve |
DH Group 24 |
2048-bit with 256-bit prime order subgroup |
Starting in Junos OS Release 19.1R1, SRX Series Firewalls (except SRX300, SRX320, SRX340, SRX345, SRX380, SRX550HM Series Firewalls) support DH groups 15, 16, and 21.
Starting in Junos OS Release 20.3R1, vSRX Virtual Firewall (vSRX 3.0) instances with junos-ike package installed support DH groups 15, 16, and 21.
We do not recommend the use of DH groups 1, 2, and 5.
Because the modulus for each DH group is a different size, the participants must agree to use the same group.
IPsec Security Protocols
IPsec uses two protocols to secure communications at the IP layer:
Authentication Header (AH)—A security protocol for authenticating the source of an IP packet and verifying the integrity of its content
Encapsulating Security Payload (ESP)—A security protocol for encrypting the entire IP packet (and authenticating its content)
You can choose your security protocols—also called authentication and encryption algorithms—during Phase 2 proposal configuration. See Internet Key Exchange.
For each VPN tunnel, both AH and ESP tunnel sessions are installed
on Services Processing Units (SPUs) and the control plane. Tunnel
sessions are updated with the negotiated protocol after negotiation
is completed. For SRX5400, SRX5600, and SRX5800 devices, tunnel sessions
on anchor SPUs are updated with the negotiated protocol while non-anchor
SPUs retain ESP and AH tunnel sessions. ESP and AH tunnel sessions
are displayed in the outputs for the show security flow session
and show security flow cp-session
operational mode commands.
This topic includes the following sections:
IPsec Authentication Algorithms (AH Protocol)
The Authentication Header (AH) protocol provides a means to verify the authenticity and integrity of the content and origin of a packet. You can authenticate the packet by the checksum calculated through a Hash Message Authentication Code (HMAC) using a secret key and either MD5 or SHA hash functions.
Message Digest 5 (MD5)—An algorithm that produces a 128-bit hash (also called a digital signature or message digest) from a message of arbitrary length and a 16-byte key. The resulting hash is used, like a fingerprint of the input, to verify content and source authenticity and integrity.
Secure Hash Algorithm (SHA)—An algorithm that produces a 160-bit hash from a message of arbitrary length and a 20-byte key. It is generally regarded as more secure than MD5 because of the larger hashes it produces. Because the computational processing is done in the ASIC, the performance cost is negligible.
For more information on MD5 hashing algorithms, see RFC 1321 and RFC 2403. For more information on SHA hashing algorithms, see RFC 2404. For more information on HMAC, see RFC 2104.
IPsec Encryption Algorithms (ESP Protocol)
The Encapsulating Security Payload (ESP) protocol provides a means to ensure privacy (encryption) and source authentication and content integrity (authentication). ESP in tunnel mode encapsulates the entire IP packet (header and payload) and then appends a new IP header to the now-encrypted packet. This new IP header contains the destination address needed to route the protected data through the network. (See Packet Processing in Tunnel Mode.)
With ESP, you can both encrypt and authenticate, encrypt only, or authenticate only. For encryption, you can choose one of the following encryption algorithms:
-
Data Encryption Standard (DES)—A cryptographic block algorithm with a 56-bit key.
-
Triple DES (3DES)—A more powerful version of DES in which the original DES algorithm is applied in three rounds, using a 168-bit key. DES provides significant performance savings but is considered unacceptable for many classified or sensitive material transfers.
-
Advanced Encryption Standard (AES)—An encryption standard which offers greater interoperability with other devices. Junos OS supports AES with 128-bit, 192-bit, and 256-bit keys.
-
ChaCha20-Poly1305 Authenticated Encryption with Associated Data—ChaCha20 stream cipher which supports Authenticated Encryption with Associated Data (AEAD) using Poly1305 authenticator.
For authentication, you can use either MD5 or SHA algorithms.
Even though it is possible to select NULL for encryption, it has been demonstrated that IPsec might be vulnerable to attack under such circumstances. Therefore, we suggest that you choose an encryption algorithm for maximum security.
IPsec Tunnel Negotiation
The following two different modes that determine how the traffic is exchanged in the VPN.
Tunnel mode—Protect traffic by encapsulating the original IP packet within another packet in the VPN tunnel. This mode uses preshared keys with IKE to authenticate peers or digital certificates with IKE to authenticate peers. This is most commonly used when hosts within separate private networks want to communicate over a public network. This mode can be used by both VPN clients and VPN gateways, and protects communications that come from or go to non-IPsec systems.
Transport mode—Protect traffic by sending the packet directly between the two hosts that have established the IPsec tunnel. That is, when the communication endpoint and cryptographic endpoint are the same. The data portion of the IP packet is encrypted, but the IP header is not. VPN gateways that provide encryption and decryption services for protected hosts cannot use transport mode for protected VPN communications. The IP addresses of the source or destination can be modified if the packet is intercepted. Because of its construction, transport mode can be used only when the communication endpoint and cryptographic endpoint are the same.
Supported IPsec and IKE Standards
On routers equipped with one or more MS-MPCs, MS-MICs, or DPCs, the Canada and U.S. version of Junos OS substantially supports the following RFCs, which define standards for IP Security (IPsec) and Internet Key Exchange (IKE).
-
RFC 2085, HMAC-MD5 IP Authentication with Replay Prevention
-
RFC 2401, Security Architecture for the Internet Protocol (obsoleted by RFC 4301)
-
RFC 2402, IP Authentication Header (obsoleted by RFC 4302)
-
RFC 2403, The Use of HMAC-MD5-96 within ESP and AH
-
RFC 2404, The Use of HMAC-SHA-1-96 within ESP and AH (obsoleted by RFC 4305)
-
RFC 2405, The ESP DES-CBC Cipher Algorithm With Explicit IV
-
RFC 2406, IP Encapsulating Security Payload (ESP) (obsoleted by RFC 4303 and RFC 4305)
-
RFC 2407, The Internet IP Security Domain of Interpretation for ISAKMP (obsoleted by RFC 4306)
-
RFC 2408, Internet Security Association and Key Management Protocol (ISAKMP) (obsoleted by RFC 4306)
-
RFC 2409, The Internet Key Exchange (IKE) (obsoleted by RFC 4306)
-
RFC 2410, The NULL Encryption Algorithm and Its Use With IPsec
-
RFC 2451, The ESP CBC-Mode Cipher Algorithms
-
RFC 2560, X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP
-
RFC 3193, Securing L2TP using IPsec
-
RFC 3280, Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
-
RFC 3602, The AES-CBC Cipher Algorithm and Its Use with IPsec
-
RFC 3948, UDP Encapsulation of IPsec ESP Packets
-
RFC 4106, The Use of Galois/Counter Mode (GCM) in IPsec Encapsulating Security Payload (ESP)
-
RFC 4210, Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP)
-
RFC 4211, Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)
-
RFC 4301, Security Architecture for the Internet Protocol
-
RFC 4302, IP Authentication Header
-
RFC 4303, IP Encapsulating Security Payload (ESP)
-
RFC 4305, Cryptographic Algorithm Implementation Requirements for Encapsulating Security Payload (ESP) and Authentication Header (AH)
-
RFC 4306, Internet Key Exchange (IKEv2) Protocol
-
RFC 4307, Cryptographic Algorithms for Use in the Internet Key Exchange Version 2 (IKEv2)
-
RFC 4308, Cryptographic Suites for IPsec
Only Suite VPN-A is supported in Junos OS.
-
RFC 4754, IKE and IKEv2 Authentication Using the Elliptic Curve Digital Signature Algorithm (ECDSA)
-
RFC 4835, Cryptographic Algorithm Implementation Requirements for Encapsulating Security Payload (ESP) and Authentication Header (AH)
-
RFC 5996, Internet Key Exchange Protocol Version 2 (IKEv2) (obsoleted by RFC 7296)
-
RFC 7296, Internet Key Exchange Protocol Version 2 (IKEv2)
-
RFC 7427, Signature Authentication in the Internet Key Exchange Version 2 (IKEv2)
-
RFC 7634, ChaCha20, Poly1305, and Their Use in the Internet Key Exchange Protocol (IKE) and IPsec
-
RFC 8200, Internet Protocol, Version 6 (IPv6) Specification
Junos OS partially supports the following RFCs for IPsec and IKE:
-
RFC 3526, More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)
-
RFC 5114, Additional Diffie-Hellman Groups for Use with IETF Standards
-
RFC 5903, Elliptic Curve Groups modulo a Prime (ECP Groups) for IKE and IKEv2
The following RFCs and Internet draft do not define standards, but provide information about IPsec, IKE, and related technologies. The IETF classifies them as “Informational.”
-
RFC 2104, HMAC: Keyed-Hashing for Message Authentication
-
RFC 2412, The OAKLEY Key Determination Protocol
-
RFC 3706, A Traffic-Based Method of Detecting Dead Internet Key Exchange (IKE) Peers
-
Internet draft draft-eastlake-sha2-02.txt, US Secure Hash Algorithms (SHA and HMAC-SHA) (expires July 2006)
See Also
Change History Table
Feature support is determined by the platform and release you are using. Use Feature Explorer to determine if a feature is supported on your platform.