I understand that AH provides integrity and authentication while ESP provides encryption and authentication, but to me it looks like some IP Header Address Spoofing is still possible, no?

Why is the IP header not included in the authentication part of ESP? Was the reason to make it NAT compatible?

And can they be used combined?

1 Answer 1


Yes, when using ESP the source IP address may be modified by an attacker. But unless this results in an amplification attack I don't really see a point in doing that. An attacker who is in the position to modify the IP addresses can also just drop traffic or passively read it (if it is not encrypted), however, will not be able to forge new packets, no matter which protocol is used.

While the two protocols may be combined (e.g. use ESP only for confidentiality and AH for integrity), the integrity functionality provided by ESP affords about the same security with less overhead (especially when using AEAD algorithms), RFC 4302 (AH):

ESP may be used to provide the same anti-replay and similar integrity services, and it also provides a confidentiality (encryption) service. The primary difference between the integrity provided by ESP and AH is the extent of the coverage. Specifically, ESP does not protect any IP header fields unless those fields are encapsulated by ESP (e.g., via use of tunnel mode).

So if protecting parts of the outer IP header (and extension headers) is not a requirement, ESP basically provides the same functionality as AH. ESP may even be used without confidentiality, RFC 4303 (ESP):

Integrity-only ESP is an attractive alternative to AH in many contexts, e.g., because it is faster to process and more amenable to pipelining in many implementations.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .