Internet Protocol Security (IPSec)
Cisco IOS uses the industry-standard IPSec protocol suite to enable advanced VPN features. The PIX IPSec implementation is based on the Cisco IOS IPSec that runs in Cisco routers.
IPSec acts at the network layer, protecting and authenticating IP packets between a PIX Firewall and other participating IPSec devices (peers), such as other PIX Firewalls, Cisco routers, the Cisco Secure VPN Client, the VPN 3000 Concentrator series, and other IPSec-compliant products.
IPSec enables the following Cisco IOS VPN features:
Data confidentialityThe IPSec sender can encrypt packets before transmitting them across a network.
Data integrityThe IPSec receiver can authenticate packets sent by the IPSec sender to ensure that the data has not been altered during transmission.
Data origin authenticationThe IPSec receiver can authenticate the source of the IPSec packets sent. This service is dependent upon the data integrity service.
AntireplayThe IPSec receiver can detect and reject replayed packets.
IPSec is a framework of open standards that provides data confidentiality, data integrity, and data authentication between participating peers at the IP layer. IPSec can be used to protect one or more data flows between IPSec peers. IPSec is documented in a series of Internet RFCs, all available at http://www.ietf.org/html.charters/ipsec-charter.html. The overall IPSec implementation is guided by "Security Architecture for the Internet Protocol," RFC 2401. IPSec consists of the following two main protocols:
Authentication Header (AH)
Encapsulating Security Payload (ESP)
IPSec also uses other existing encryption standards to make up a protocol suite, which are explained in the next sections.
IPSec has several standards that are supported by Cisco IOS and the PIX Firewall.
- IP Security Protocol
- Authentication Header (AH)
- Encapsulating Security Payload (ESP)
- Data Encryption Standard (DES)
- Triple DES (3DES)
- Diffie-Hellman (D-H)
- Message Digest 5 (MD5)
- Secure Hash Algorithm-1 (SHA-1)
- Rivest, Shamir, and Adelman (RSA) Signatures
- Internet Key Exchange (IKE)
- Certificate Authorities (CAs)
IP Security ProtocolAuthentication Header (AH)
Authentication Header (AH) provides authentication and integrity to the datagrams passed between two systems.
It achieves this by applying a keyed one-way hash function to the datagram to create a message digest. If any part of the datagram is changed during transit, it will be detected by the receiver when it performs the same one-way hash function on the datagram and compares the value of the message digest that the sender has supplied. The one-way hash also involves the use of a secret shared between the two systems, which means that authenticity can be guaranteed.
AH can also enforce antireplay protection by requiring that a receiving host sets the replay bit in the header to indicate that the packet has been seen. Without this protection, an attacker might be able to resend the same packet many times: for example, to send a packet that contains "withdraw $100 from account X." Figure 1-3 shows two routers and confirms that the data between them is sent in clear text.
Figure 1-3 Authentication Header
The AH function is applied to the entire datagram except for any mutable IP header fields that change in transit: for example, Time to Live (TTL) fields that are modified by the routers along the transmission path. AH works as follows:
|Step 1||The IP header and data payload is hashed.|
|Step 2||The hash is used to build a new AH header, which is appended to the original packet.|
|Step 3||The new packet is transmitted to the IPSec peer router.|
|Step 4||The peer router hashes the IP header and data payload, extracts the transmitted hash from the AH header, and compares the two hashes. The hashes must match exactly. Even if one bit is changed in the transmitted packet, the hash output on the received packet will change and the AH header will not match.|
This process can be seen in Figure 1-4.
Figure 1-4 AH Authentication and Integrity
IP Security ProtocolEncapsulating Security Payload (ESP)
Encapsulating Security Payload (ESP) is a security protocol used to provide confidentiality (encryption), data origin authentication, integrity, optional antireplay service, and limited traffic flow confidentiality by defeating traffic flow analysis. Figure 1-5 shows that the data payload is encrypted with ESP.
ESP provides confidentiality by performing encryption at the IP packet layer. It supports a variety of symmetric encryption algorithms. The default algorithm for IPSec is 56-bit DES. This cipher must be implemented to guarantee interoperability among IPSec products. Cisco products also support use of 3DES for strong encryption. Confidentiality can be selected independent of all other services.
Figure 1-5 Encapsulating Security Payload
Deciding whether to use AH or ESP in a given situation might seem complex, but it can be simplified to a few rules, as follows. When you want to make sure that data from an authenticated source gets transferred with integrity and does not need confidentiality, use the AH protocol. If you need to keep data private (confidentiality), then you must use ESP. ESP will encrypt the upper-layer protocols in transport mode and the entire original IP datagram in tunnel mode so that neither are readable from the wire. However, ESP can now also provide authentication for the packets. This situation is covered later in this chapter in the "ESP Tunnel Versus Transport Mode" section.
DES uses a 56-bit key, ensuring high-performance encryption. DES is used to encrypt and decrypt packet data. DES turns clear text into ciphertext with an encryption algorithm. The decryption algorithm on the remote end restores clear text from ciphertext. Shared secret keys enable the encryption and decryption.
Triple DES Algorithm (3DES)
Triple DES (3DES) is also a supported encryption protocol for use in IPSec on Cisco products. The 3DES algorithm is a variant of the 56-bit DES. 3DES operates similarly to DES in that data is broken into 64-bit blocks. 3DES then processes each block three times, each time with an independent 56-bit key. 3DES effectively doubles encryption strength over 56-bit DES.
Diffie-Hellman (D-H) is a public-key cryptography protocol. It allows two parties to establish a shared secret key used by encryption algorithms (DES or MD5, for example) over an insecure communications channel. D-H is used within IKE to establish session keys. 768-bit and 1024-bit D-H groups are supported in the Cisco routers and PIX Firewall. The 1024-bit group is more secure because of the larger key size.
Message Digest 5 (MD5)
Message Digest 5 (MD5) is a hash algorithm used to authenticate packet data. Cisco routers and the PIX Firewall use the MD5 hashed message authentication code (HMAC) variant that provides an additional level of hashing. A hash is a one-way encryption algorithm that takes an input message of arbitrary length and produces a fixed length output message. IKE, AH, and ESP use MD5 for authentication.
Secure Hash Algorithm-1 (SHA-1)
Secure Hash Algorithm-1 (SHA-1) is a hash algorithm used to authenticate packet data. Cisco routers and the PIX Firewall use the SHA-1 HMAC variant, which provides an additional level of hashing. IKE, AH, and ESP use SHA-1 for authentication.
Rivest, Shamir, and Adelman (RSA) Signatures
Rivest, Shamir, and Adelman (RSA) is a public-key cryptographic system used for authentication. IKE on the Cisco router or PIX Firewall uses a D-H exchange to determine secret keys on each IPSec peer used by encryption algorithms. The D-H exchange can be authenticated with RSA signatures or preshared keys.
Internet Key Exchange (IKE)
Internet Key Exchange (IKE) is a hybrid protocol that provides utility services for IPSec: authentication of the IPSec peers, negotiation of IKE and IPSec security associations, and establishment of keys for encryption algorithms used by IPSec.
IKE is synonymous with Internet Security Association Key Management Protocol (ISAKMP) in Cisco router or PIX Firewall configurations.
Certificate Authorities (CAs)
The Certificate Authority (CA) offered by Cisco routers and the PIX Firewall allows the IPSec-protected network to scale by providing the equivalent of a digital identification card to each device. When two IPSec peers wish to communicate, they exchange digital certificates to prove their identities (thus removing the need to exchange public keys manually with each peer or to specify a shared key manually at each peer). The digital certificates are obtained from a CA. CA support on Cisco products uses RSA signatures to authenticate the CA exchange.
Tunnel and Transport Modes
IPSec can be run in either tunnel or transport modes. Each of these modes has its own particular uses, and care should be taken to ensure that the correct one is selected for the solution. Figure 1-6 shows that transport mode should be used for end-to-end sessions and tunnel mode should be used for everything else.
Figure 1-6 Tunnel and Transport Mode IPSec
Figure 1-6 illustrates situations where a tunnel or a transport mode is used. Tunnel mode is most commonly used between gateways or from an end station to a gateway. The gateway acts as a proxy for the hosts behind it. Transport mode is used between end stations or between an end station and a gateway, if the gateway is being treated as a host; for example, in an encrypted Telnet session from a workstation to a router, the router is the actual destination.
Using Figure 1-6, consider some examples of when to use tunnel or transport mode.
Example ATunnel mode is most commonly used to encrypt traffic between secure IPSec gateways, such as between the Cisco router and the PIX Firewall, as shown in Example A in Figure 1-6. The IPSec gateways proxy IPSec for the devices behind them, such as Alice's PC and the HR servers in the figure. In Example A, Alice connects to the HR servers securely through the IPSec tunnel set up between the gateways.
Example BTunnel mode is also used to connect an end station running IPSec software, such as the Cisco Secure VPN Client, to an IPSec gateway, as shown in Example B.
Example CIn Example C, tunnel mode is used to set up an IPSec tunnel between the Cisco router and a server running IPSec software. Note that Cisco IOS software and the PIX Firewall set tunnel mode as the default IPSec mode.
Example DTransport mode is used between end stations supporting IPSec or between an end station and a gateway if the gateway is being treated as a host. In Example D, transport mode is used to set up an encrypted Telnet session from Alice's PC running Cisco Secure VPN Client software to terminate at the PIX Firewall, enabling Alice to remotely configure the PIX Firewall securely.
AH Tunnel Versus Transport Mode
Figure 1-7 shows the differences that the IPSec mode makes to AH. In transport mode, AH services protect the external IP header along with the data payload. AH services protect all the fields in the header that do not change in transport. The AH goes after the IP header and before the ESP header, if present, and other higher-layer protocols.
Figure 1-7 AH Tunnel Versus Transport Mode
In tunnel mode, the entire original header is authenticated, a new IP header is built, and the new IP header is protected in the same way as the IP header in transport mode.
AH is incompatible with Network Address Translation (NAT) because NAT changes the source IP address, which will break the AH header and cause the packets to be rejected by the IPSec peer.
ESP Tunnel Versus Transport Mode
Figure 1-8 shows the differences that the IPSec mode makes to ESP. In transport mode, the IP payload is encrypted and the original headers are left intact. The ESP header is inserted after the IP header and before the upper-layer protocol header. The upper-layer protocols are encrypted and authenticated along with the ESP header. ESP does not authenticate the IP header itself. Please note that higher-layer information is not available because it is part of the encrypted payload.
Figure 1-8 ESP Tunnel Versus Transport Mode
When ESP is used in tunnel mode, the original IP header is well protected because the entire original IP datagram is encrypted. With an ESP authentication mechanism, the original IP datagram and the ESP header are included; however, the new IP header is not included in the authentication.
When both authentication and encryption are selected, encryption is performed first, before authentication. One reason for this order of processing is that it facilitates rapid detection and rejection of replayed or bogus packets by the receiving node. Before decrypting the packet, the receiver can detect the problem and potentially reduce the impact of denial-of-service attacks.
ESP can also provide packet authentication with an optional field for authentication. Cisco IOS software and the PIX Firewall refer to this service as ESP HMAC. Authentication is calculated after the encryption is done. The current IPSec standard specifies SHA-1 and MD5 as the mandatory HMAC algorithms.
The main difference between the authentication provided by ESP and that provided by AH is the extent of the coverage. Specifically, ESP does not protect any IP header fields unless those fields are encapsulated by ESP (tunnel mode). Figure 1-9 illustrates the fields protected by ESP HMAC.
Figure 1-9 ESP Encryption with a Keyed HMAC
An IPSec transform specifies a single IPSec security protocol (either AH or ESP) with its corresponding security algorithms and mode. Some example transforms include the following:
The AH protocol with the HMAC with MD5 authentication algorithm in tunnel mode is used for authentication.
The ESP protocol with the 3DES encryption algorithm in transport mode is used for confidentiality of data.
The ESP protocol with the 56-bit DES encryption algorithm and the HMAC with SHA authentication algorithm in tunnel mode is used for authentication and confidentiality.
A transform set is a combination of individual IPSec transforms designed to enact a specific security policy for traffic. During the ISAKMP IPSec security association negotiation that occurs in IKE phase 2 quick mode, the peers agree to use a particular transform set for protecting a particular data flow. Transform sets combine the following IPSec factors:
- Mechanism for payload authenticationAH transform
- Mechanism for payload encryptionESP transform
- IPSec mode (transport versus tunnel)
Transform sets equal a combination of an AH transform, an ESP transform, and the IPSec mode (either tunnel or transport mode).