These tools send carefully crafted packets to an end-host and observe its response.
Although most operating systems generally follow standard protocol specifications,
their specific implementations may measurably differ;
these implementation differences act as an operating system fingerprint.
If a host can actively fingerprint the supposed source host and find that it is running operating system X ,
while passive fingerprinting [Zalewski 2006; Beverly 2004;
Taleck 2003] on the original received packet suggests it is running Y ,
it is likely the original packet was spoofing. Unfortunately, fingerprinting involves a high amount of overhead.
A host must send numerous probes and buffer suspicious
packets if the host requires sources be verified before processing the suspicious packets. Furthermore,
fingerprinting cannot identify spoofing packets if the
attacker uses the same operating system as the host located at the spoofed
address.