1.  Field of the Invention
The present invention relates generally to defending computer systems against security breaches and, more particularly, to defending such systems against security breaches involving peripheral devices. 
2.  Description of the Background Art
The first computers were largely stand-alone units with no direct connection to other computers or computer networks.  Data exchanges between computers were mainly accomplished by exchanging magnetic or optical media such as floppy disks.  Over time, more and more computers were connected to each other using Local Area Networks or “LANs”.  In both cases, maintaining security and controlling what information a computer user could access was relatively simple because the overall computing environment was limited and clearly defined. 
With the ever-increasing popularity of the Internet, however, more and more computers are connected to larger networks.  Providing access to vast stores of information, the Internet is typically accessed by users through Web “browsers” (e.g., Microsoft® Internet Explorer or Netscape Navigator) or other Internet applications.  Browsers and other Internet applications include the ability to access a URL (Uniform Resource Locator) or “Web” site.  In the last several years, the Internet has become pervasive and is used not only by corporations, but also by a large number of small business and individual users for a wide range of purposes. 
As more and more computers are now connected to the Internet, either directly (e.g., over a dial-up or broadband connection with an Internet Service Provider or “ISP”) or through a gateway between a LAN and the Internet, a whole new set of challenges face LAN administrators and individual users alike: these previously closed computing environments are now open to a worldwide network of computer systems.  A particular set of challenges involves attacks by perpetrators (hackers) capable of damaging the local computer systems, misusing those systems, and/or stealing proprietary data and programs. 
The software industry has, in response, introduced a number of products and technologies to address and minimize these threats, including “firewalls”, proxy servers, and similar technologies—all designed to keep malicious users (e.g., hackers) from penetrating a computer system or corporate network.  Firewalls are applications that intercept the data traffic at the gateway to a Wide Area Network (“WAN”) and check the data packets (i.e., Internet Protocol packets or “IP packets”) being exchanged for suspicious or unwanted activities. 
Another security measure that has been utilized by many users is to install an end point security (or personal firewall) product on a computer system to control traffic into and out of the system.  An end point security product can regulate all traffic into and out of a particular computer.  One such product is assignee's ZoneAlarm® product that is described in detail in U.S. Pat.  No.  5,987,611, the disclosure of which is hereby incorporated by reference.  For example, an end point security product may permit specific “trusted” applications to access the Internet while denying access to other applications on a user's computer.  To a large extent, restricting access to “trusted” applications is an effective security method.  However, despite the effectiveness of end point security products, issues remain in protecting computer systems against attack by malicious users and applications. 
One particular problem that remains is how to secure computers with detachable peripheral devices, particularly input devices such as keyboard and mouse input devices.  These input devices, which are connected to computers having access to the Internet, are vulnerable to security breaches or attacks, such as “sniffing.”  For example, malicious software may be installed on an input device that looks for user names and passwords and, upon discovery, sends them to a potential attacker via the Internet.  Although the foregoing problem most commonly occurs with keyboard and mouse input devices, the problem also extends to other peripheral devices or mechanisms that are detachable or transferable.  This would include, for example, a peripheral storage device such as a detachable USB disk drive.  Even though that device is not a classic input device, it nevertheless is vulnerable to the same types of attacks. 
Software key loggers are a form of sniffing that have always been a favorite hacker tool.  Recently in New York, for example, an individual plead guilty in federal court to two counts of computer fraud and one charge of unauthorized possession of access codes for a scheme in which the individual planted a copy of a commercial keyboard sniffing program on computers at a well-known copy service firm.  Using his makeshift surveillance mechanism, the individual captured over 450 on-line banking passwords and user names from unsuspecting customers.  He then used the victims' financial information to open new accounts under their names, and then siphon money from their legitimate accounts into the new, fraudulent ones.  Apart from the criminal activities of the individual, the copy service firm itself is potentially open to liability for failure to adequately protect its equipment from such activities.  Given the increasing popularity of Internet cafes, the risk for this type of fraud can be expected to grow. 
Recently, in response to considerable advances in the detection and removal of software key loggers, several hardware-based key loggers have appeared on the market.  Consider, for example, the dongle-style sniffer/logger device that may be ordered off of the Internet today.  KEYKatcher is one of the more popular ones.  To use the device, a malicious user secretly attaches it to a keyboard by placing it in-line with the keyboard cord.  The dongle includes memory that allows the device to record all of the keystrokes of other unsuspecting users.  Later, the malicious user removes the device and extracts all of the recorded keystrokes from the dongle memory using custom software (e.g., dumps the recorded keystrokes to a text file).  In this manner, a malicious user may easily use the device to “sniff” all of the keyboard input of other unsuspecting users.  Unlike software-based key loggers, once a hardware-based key logger is installed, it is very difficult to detect in software. 
Stated generally, the problem applies to any device or mechanism that transmits data or information into a given computer system.  However, the problem is most severe with detachable devices.  Since detachable devices lack the degree of physical security that non-detachable devices enjoy, they present a greater opportunity for an unauthorized and undetected entity or actor to intervene in the communication channel or even replace the communication channel.  In contrast, non-detachable devices have at least some degree of protection.  For example, a built-in internal hard drive in a laptop computer is probably relatively safe, given the physical barrier that must be breached in order to gain physical access to that device.  All told, detachable devices or mechanisms pose the greater security risk because they lack this protective physical barrier.  The peripheral devices that pose this risk include any detachable device or mechanism capable of providing a data feed, including such common devices as detachable keyboards, pointing/mouse devices, microphones, memory cards, USB storage devices, web cameras, and the like. 
With these types of devices or mechanisms, two major threats are posed.  First, communications between the peripheral device and a given computer may be intercepted in an unauthorized manner.  This would include, for example, the above-mentioned “sniffing” approach.  Second, the peripheral device may be impersonated.  Here, the computer will mistakenly authenticate the impersonator as legitimate, when in fact it is not. 
Although these threats are now recognized, the only solution offered to date has been in terms of some type of physical security that prevents individuals from plugging in peripheral devices.  The most commonly proposed defense against installing hardware key loggers has been to physically secure the keyboard and mouse cables so that the hacker cannot easily insert the hardware key logger.  For example, a keyboard/mouse input jack may be secured with some type of physical locking device.  These mechanical barriers only provide a limited solution.  In a large organization, for example, the burden of tending to a large number of mechanical locks makes the approach impractical (especially if existing hardware needs to be retrofitted).  Further, size limitations about what is practical for locking computer sockets and plugs would dictate using a relatively small locking device, one which would likely be easily defeated (e.g., using a bolt cutter).  As yet another problem, such physical locks are not easily monitored.  This is particularly a problem if the locks needed to be monitored at a remote site.  A breach would likely only be detected very much after the fact.  Given all these deficiencies, a better solution is sought. 
In the current computing environment, computers (e.g., PCs) are configured to always trust all peripheral devices by default.  Further, there is no existing infrastructure in any of the commercially available operating systems today that requires re-authentication of every single peripheral device each time it is attached to a computer.  What is needed is a system implementing methodology that solves the basic problem of establishing and maintaining trust between a computer and all of the peripheral devices that may be plugged into it.  In this manner, a growing source of security problems may be solved.