Routers running the Passport [Liu et al. 2008] system also
use secrets embedded in packets to verify source addresses. Instead of embedding
a single secret key in the IP header, Passport defines its own header, to
allow for a much larger space to hold secrets. This header can be thought of
as a “passport” that contains multiple “visas,” with each visa corresponding to
a Passport-enabled AS along the path that a packet will travel. As the packet
travels towards its destination, Passport-enabled ASes verify the visas. Each
visa in the passport is a Message Authentication Code (MAC). A packet’s source
AS computes the MACs using secret keys shared between itself and each AS
along the path to the packet’s destination. Each MAC covers the packet’s source
address, destination address, IP identification field, packet length field, and the
first 8 bytes of the payload. When a downstream AS-level router encounters a
packet with a passport, it can verify the passport by recalculating the MAC
value using the secret key it shares with the source AS. If the verification fails,
the router will then demote or drop the packet.