Whereas much of this chapter has focused on the uses of cryptography to
provide such security features as authentication and confidentiality, there
is a whole set of security issues that are not readily addressed by cryptographic
means. For example, worms and viruses spread by exploiting bugs
in operating systems and application programs (and sometimes human
gullibility as well), and no amount of cryptography can help you if your
machine has unpatched vulnerabilities. So other approaches are often
used to keep out various forms of potentially harmful traffic. Firewalls are
one of the most common ways to do this.
A firewall is a system that typically sits at some point of connectivity
between a site it protects and the rest of the network, as illustrated
in Figure 8.20. It is usually implemented as an “appliance” or part of a
router, although a “personal firewall” may be implemented on an enduser
machine. Firewall-based security depends on the firewall being the
only connectivity to the site from outside; there should be no way to
bypass the firewall via other gateways, wireless connections, or dial-up
connections. The wall metaphor is somewhat misleading in the context
of networks since a great deal of traffic passes through a firewall. One
way to think of a firewall is that by default it blocks traffic unless that
traffic is specifically allowed to pass through. For example, it might filter
out all incoming messages except those addresses to a particular set of IP
addresses or to particular TCP port numbers.
In effect, a firewall divides a network into a more-trusted zone internal
to the firewall and a less-trusted zone external to the firewall