# Patent

## Title
Apparatus, method and computer program product for detection of a security breach in a network

## Abstract

A method for detecting a security breach in a network comprises at one of a plurality of transceivers each having a different media access control address, receiving a signal from an access point, the signal representing one or more packets of data, determining a source media access control address for each of the packets, and alerting the access point when the source media access control address of one of the packets is the media access control address of the transceiver.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. application Ser. No. 11/818,104 (now U.S. Pat. No. 7,877,805), filed Jun. 13, 2007, which is a continuation of U.S. application Ser. No. 10/242,135 (now U.S. Pat. No. 7,293,289), filed Sep. 10, 2002. The disclosures of the applications referenced above are incorporated herein by reference.


BACKGROUND
The present invention relates generally to data communications. More particularly, the present invention relates to data security in a network.
Recent advances in wireless network technology have made the wireless network an increasingly popular choice to supplement or replace the wired network. But experience has shown that the convenience offered by wireless networks comes with new security risks. Recent studies have shown that current wireless networks are vulnerable to a multitude of attacks such as man-in-the-middle attacks, session hijacking, and parking lot attacks.
SUMMARY
In general, in one aspect, the invention features a method, apparatus, and computer-readable media for detecting a security breach in a network comprising an access point and a plurality of transceivers each having a different media access control address. It comprises, at one of the transceivers, receiving a signal from the access point, the signal representing one or more packets of data; determining a source media access control address for each of the packets; and transmitting an alert packet to the access point when the source media access control address of one of the packets is the media access control address of the transceiver.
Particular implementations can include one or more of the following features. The network is a wireless network. The transceiver encrypts packets using a current key before transmitting the packets to the access point, and before transmitting the alert packet to the access point, the transceiver encrypts a payload portion of the alert packet using a predetermined key other than the current key. The access point recognizes the alert packet as an indication of a security breach in the network on successfully decrypting the alert packet using the predetermined key. The network further comprises an authentication server, and the predetermined key is selected from the group comprising a system key common to the access point and all of the transceivers in the network; a previous key provided by the authentication server to the transceiver before the current key was provided; and an alert key provided to all of the transceivers in the network for the purpose of encrypting the alert packets. The alert packet comprises an unencrypted alert indicator, and the access point recognizes the alert packet as an indication of a security breach in the network by the presence of the unencrypted alert indicator in the alert packet regardless of the key used to encrypt the alert packet. The unencrypted alert indicator is selected from the group comprising a predetermined packet type; and a packet type that generates an error at the access point.
In general, in one aspect, the invention features a method, apparatus, and computer-readable media for detecting a security breach in a wireless network comprising an authentication server, an access point, and a plurality of clients including a client under attack. It comprises decrypting packets sent from the access point to the client under attack using a current key provided by the authentication server; determining whether decrypting was a success or a failure for each of the packets; and after n consecutive failures to decrypt, sending an alert packet to the access point.
Particular implementations can include one or more of the following features. The network is a wireless network. Implementations can comprise encrypting a payload portion of the alert packet before sending using a predetermined key other than the current key. The access point recognizes the alert packet as an indication of a security breach in the wireless network on successfully decrypting the alert packet using the predetermined key. The predetermined key is selected from the group comprising a system key common to the access point and all of the clients in the wireless network; a previous key provided by the authentication server to the client under attack before the current key was provided; and an alert key provided to all of the clients in the wireless network for the purpose of encrypting alert packets. The alert packet comprises an unencrypted alert indicator, and the access point recognizes the alert packet as an indication of a security breach in the wireless network due to the presence of the unencrypted alert indicator in the alert packet regardless of the key used to encrypt the alert packet. The unencrypted alert indicator is selected from the group comprising a predetermined packet type; and a packet type that generates an error at the access point.
In general, in one aspect, the invention features a method, apparatus, and computer-readable media for detecting a security breach in a network comprising a plurality of transceivers each having a different media access control address, the plurality of transceivers including first and second transceivers, the first transceiver acting as a conduit for traffic among the other transceivers. It comprises, at the second transceiver, receiving a signal from the first transceiver, the signal representing packets of data; determining a source media access control address for each of the packets; and transmitting an alert packet to the first transceiver when the source media access control address of one of the packets is the media access control address of the second transceiver.
Particular implementations can include one or more of the following features. The network is a wireless network. The second transceiver encrypts packets using a current key before transmitting the packets to the first transceiver, and implementations can comprise, before transmitting the alert packet to the first transceiver, encrypting a payload portion of the alert packet using a predetermined key other than the current key. The first transceiver recognizes the alert packet as an indication of a security breach in the network on successfully decrypting the alert packet using the predetermined key. The predetermined key is selected from the group comprising a system key common to all of the transceivers in the network; a previous key provided by the first transceiver to the second transceiver before the current key was provided; and an alert key provided by the first transceiver for the purpose of encrypting the alert packets. The alert packet comprises an unencrypted alert indicator, and wherein the first transceiver recognizes the alert packet as an indication of a security breach in the network by the presence of the unencrypted alert indicator in the alert packet regardless of the key used to encrypt the alert packet. The unencrypted alert indicator is selected from the group comprising a predetermined packet type; and a packet type that generates an error at the first transceiver.
In general, in one aspect, the invention features a method, apparatus, and computer-readable media for detecting a security breach in a network comprising a plurality of transceivers including first and second transceivers, the first transceiver acting as a conduit for traffic among the other transceivers. It comprises receiving a signal from the first transceiver, the signal representing one or more packets of data sent to the second transceiver; decrypting the packets using a current key provided by the first transceiver; determining whether decrypting was a success or a failure for each of the packets; and after n consecutive failures to decrypt, transmitting an alert packet to the first transceiver.
Particular implementations can include one or more of the following features. The network is a wireless network. Before transmitting the alert packet to the first transceiver, the second transceiver encrypts a payload portion of the alert packet using a predetermined key other than the current key. The first transceiver recognizes the alert packet as an indication of a security breach in the network on successfully decrypting the alert packet using the predetermined key. The predetermined key is selected from the group comprising a system key common to all of the transceivers in the network; a previous key provided by the first transceiver to the second transceiver before the current key was provided; and an alert key provided by the first transceiver for the purpose of encrypting the alert packets. The alert packet comprises an unencrypted alert indicator, and the first transceiver recognizes the alert packet as an indication of a security breach in the network by the presence of the unencrypted alert indicator in the alert packet regardless of the key used to encrypt the alert packet. The unencrypted alert indicator is selected from the group comprising a predetermined packet type; and a packet type that generates an error at the first transceiver.
In general, in one aspect, the invention features a method, apparatus, and computer-readable media for indicating a security breach in a network comprising an access point and a plurality of transceivers each having a different media access control address, wherein at least one of the transceivers encrypts packets using a current key before transmitting the packets to the access point. It comprises generating an alert packet; encrypting a payload portion of the alert packet using a predetermined key other than the current key; and transmitting the alert packet to the access point; wherein the access point recognizes the alert packet as an indication of a security breach in the network on successfully decrypting the alert packet using the predetermined key.
Particular implementations can include one or more of the following features. The network is a wireless network. The network further comprises an authentication server, and the predetermined key is selected from the group comprising a system key common to the access point and all of the transceivers in the network; a previous key provided by the authentication server to the transceiver before the current key was provided; and an alert key provided to all of the transceivers in the network for the purpose of encrypting the alert packets. The alert packet comprises an unencrypted alert indicator, and wherein the access point recognizes the alert packet as an indication of a security breach in the network by the presence of the unencrypted alert indicator in the alert packet regardless of the key used to encrypt the alert packet. The unencrypted alert indicator is selected from the group comprising a predetermined packet type; and a packet type that generates an error at the access point.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.



DESCRIPTION OF DRAWINGS
FIG. 1 shows a wireless network under attack by an unauthorized user
FIG. 2 shows such an initialization procedure for a wireless network.
FIG. 3 shows an attack where an unauthorized user spoofs a client in the wireless network.
FIG. 4 shows a process performed by a client to detect and report a security breach according to one embodiment.
FIG. 5 shows a process performed by a client to detect and report a security breach according to another embodiment.



The leading digit(s) of each reference numeral used in this specification indicates the number of the drawing in which the reference numeral first appears.
DETAILED DESCRIPTION
As used herein, the terms “client” and “server” generally refer to an electronic device or mechanism, and the term “packet” generally refers to an electronic signal representing a digital message. As used herein, the term “mechanism” refers to hardware, software, or any combination thereof. These terms are used to simplify the description that follows. The clients, servers, and mechanisms described herein can be implemented on any standard general-purpose computer, or can be implemented as specialized devices.
FIG. 1 shows a wireless network 102 under attack by an unauthorized user 104. While embodiments of the present invention are described in terms of a wireless network, the present invention is applicable to wired networks as well, as will be apparent to one skilled in the relevant art after reading this description. Wireless network 102 includes an access point 106 that communicates wirelessly with a plurality of transceivers such as clients 108a, 108b through 108n using keys provided by an authentications server 118 such as a remote authentication dial-in user service (RADIUS) server. Each of clients 108 comprises a transmitter, receiver, and processor, as is well-known in the relevant arts. Access point 106 communicates by wire with a wired local area network (LAN) 110. LAN 110 is connected with the Internet 112 through a firewall 114. Access point 106, clients 108, LAN 110, firewall 114, and authentication server 118 are generally located within a security perimeter 116 such as secured building, one or more secured buildings connected by a wired virtual private network, and the like.
The signals on wired LAN 110 remain within security perimeter 116, and are therefore difficult to attack. However, the signals on wireless network 102 traverse security perimeter 116, and so are available to unauthorized user 104, who may simply employ a portable computer within radio range of the network to attack the wireless network. To protect such wireless networks, new techniques have been developed, such as those documented in IEEE standard 802.1x. But even these techniques have been found lacking, and new methods of attack have proven successful.
Before describing a security breach of wireless network 102, and the detection of the security breach, an initialization procedure is described. FIG. 2 shows such a procedure. Access point 106 broadcasts a beacon signal (step 202). In response, each client 108 sends an authentication request packet to access point 106 (step 204). Access point 106 forwards the authentication request packets to authentication server 118 (step 206). Authentication server 118 attempts to authenticate each client 108 by comparing the media access control (MAC) address in the authentication request packet sent by the client to a list of valid client MAC addresses (step 208). On a successful authentication, authentication server 118 generates a pairwise key for each client 108, and sends a packet containing the pairwise key to client 108 and access point 106 (step 210). The packet containing the pairwise key is generally encrypted using a system key established during installation of wireless network 102, or using some other mechanism, such as the advanced encryption scheme (AES). In the described embodiment the pairwise key is a single key that is used for both encryption and decryption of packets exchanged between a client 108 and access point 106. In other embodiments the pairwise key comprises two keys: one for encryption and another for decryption. Other key arrangements are contemplated as well.
FIG. 3 shows an attack where unauthorized user 104 spoofs one of clients 108 (that is, the unauthorized user sends messages that appear to come from the client).” Unauthorized user 104 monitors the signals transmitted by client 108 and access point 106 (step 302). Unauthorized user 104 easily obtains the MAC address for client 108 because it is transmitted in the clear (that is, unencrypted) (step 304). Eventually, unauthorized user 104 obtains the pairwise key used by client 108 (step 306), either by breaking the key based an a large number of packets encrypted therewith, or by detecting a new pairwise key when transferred from access point 106 to client 108.
Unauthorized user 104 can now eavesdrop on the packet traffic between client 108 and access point 106 by decrypting those packets using the pairwise key. However, it is impossible to detect this eavesdropping until unauthorized user 104 transmits to wireless network 102. In general, unauthorized user 104 attempts to spoof client 108 by generating a packet containing the MAC address of client 108 as the source MAC address, encrypting the packet using the pairwise key belonging to client 108, and transmitting the encrypted packet to access point 106. Access point 106 cannot distinguish the packets of client 108 from those generated by unauthorized user 104.
One problem with conventional systems is that such an attack generally goes undetected for a significant amount of time. Even when detected, the attack may go unreported even longer. For example, if unauthorized user 104 successfully spoofs a client 108, and then requests a new key, client 108 will be denied service by the access point. Therefore client 108 cannot report the problem over wireless network 102, so the user must report the problem by other means, such as by calling the system administrator. Further, a user may assume the problem is temporary, and wait a while for it to fix itself. In the interval between security breach and corrective action, unauthorized user 104 can do significant damage.
The inventors have recognized that, while it may be impossible to prevent all such attacks, it is possible to quickly and automatically detect an attack, so that the attack can be terminated before the unauthorized user causes any significant damage.
FIG. 4 shows a process performed by each client 108 to detect and report such a security breach according to one embodiment. For convenience, the process of FIG. 4 is discussed in context of client 108. Client 108 monitors packets on wireless network 102 to determine the source MAC address of each packet (step 402). Client 108 does not detect packets it has transmitted; therefore, any detected packet identifying the MAC address of client 108 as the source MAC address of the packet is a packet sent by an unauthorized user spoofing client 108. When such a packet is detected (step 404), client 108 sends an alert packet to access point 106, which immediately takes appropriate action (step 406). It should be noted that, while this alert process notifies access point 106 of a security breach, it is also open to attack which could result in unauthorized user 104 rendering access point 106 useless. While such an attack cannot compromise security, it can inconvenience the users of access point 106. Techniques that prevent unauthorized user 104 from maliciously transmitting a valid alert packet to access point 106 are discussed below.
In one embodiment, access point 106 responds by immediately removing the MAC address of client 108 from its list of authorized clients, by ceasing to send any packets to the MAC address of client 108, and by discarding all packets that are received from the MAC address of client 108. Then, using the system key, access point 106 restores service to client 108 by granting it a new pairwise key for future communication. Access point 106 then puts the MAC address of client 108 back in the authorized client list.
In the interval between security breach and termination of the attack, unauthorized user 104 can obtain a new pairwise key from authentication server 118. In a conventional network, when the key is transmitted by access point 106, unauthorized user 104 will accept the key, but client 108 will reject the key because it is not expecting a new key. In one embodiment of the present invention, when a client 108 receives a new pairwise key that it has not requested, it will send an alert packet to access point 106.
In another embodiment, client 108 will reject the key because it is unexpected. Access point 106 will now deny service to client 108 because client 108 is using an old key. However, access point 106 recognizes an alert packet as an indication of a security breach when an unencrypted alert indicator is present in the alert packet regardless of the key used to encrypt the payload of the packet. In one embodiment the unencrypted alert indicator is found in the packet type field of the packet. The indicator can be a predetermined packet type, or a packet type that is not expected by access point 106, and therefore generates an error at the access point.
In another embodiment, client 108 encrypts the alert packet with a predetermined key other than the current key (that is, the key stolen by unauthorized user 104). Access point 106 recognizes the alert packet as an indication of a security breach on successfully decrypting the alert packet using the predetermined key. In one embodiment the predetermined key is the system key, which is common to access point 106 and all of the clients 108. In another embodiment, the predetermined key is a previous pairwise key that authentication server 118 provided to client 108 before the current pairwise key. In another embodiment, the predetermined key is a special alert key provided to all of the clients 108 in wireless network 102 for the purpose of encrypting alert packets.
FIG. 5 shows a process performed by each client 108 to detect and report such a security breach according to another embodiment. For convenience, the process of FIG. 5 is discussed in context of client 108. Client 108 receives packets over the wireless network (step 502), and attempts to decrypt each received packet (step 504). Client 108 determines whether decrypting was a success or a failure for each of the packets (step 506). Client 108 includes an encryption failure counter. Each time client 108 successfully decrypts a packet, the encryption failure counter is reset to zero (step 508). Each time client 108 fails to successfully decrypt a packet, the encryption failure counter is incremented (step 510). When the encryption failure counter reaches a predetermined threshold n (that is, when n consecutive failures have occurred) (step 512), client 108 sends an alert packet to access point 106 (step 514) according to any of the methods described above.
While the above embodiments are described in terms of an infrastructure wireless network, they are also applicable in an ad hoc or peer-to-peer network with only minor modifications. In an ad hoc network, there is no dedicated access point. Instead, one of the clients acts as a conduit for traffic between other clients. Further, there is no authentication server to generate pairwise keys. Instead, the client acting as a conduit generates pairwise keys, and distributes a different pairwise key to each client. When a client detects a security breach, that client sends an alert packet to the client acting as a conduit according to the methods described above. The client acting as a conduit responds according to the methods described above.
The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Generally, a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
A number of implementations of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. List any additional modifications or variations. Accordingly, other implementations are within the scope of the following claims.

## Claims

1. An apparatus comprising:
a transceiver receiving a first packet transmitted from an access point via a network to the apparatus; and
a processor
(i) determining a source media access control address of the first packet and
(ii) determining whether the source media access control address of the first packet corresponds to a source media access control address of the transceiver,

wherein, in response to the source media access control address of the first packet corresponding to the source media access control address of the transceiver, the transceiver
(i) generates a second packet, wherein the second packet comprises an encrypted portion and an unencrypted portion, wherein the unencrypted portion includes a field, wherein a packet type of the field is different than a packet type expected to be received by the access point, and
(ii) alerts the access point of a security breach in the network by transmitting the second packet to the access point, wherein the access point is alerted of the security breach in the network based on the unencrypted portion and not based on the encrypted portion.

2. The apparatus of claim 1, wherein, in response to the source media access control address of the first packet corresponding to the source media access control address of the transceiver, the transceiver causes an error to be generated at the access point by transmitting the second packet to the access point.

3. The apparatus of claim 1, wherein:
the second packet is an alert packet that alerts the access point of the security breach;
the unencrypted portion includes an unencrypted alert indictor;
the unencrypted alert indicator is the field of the unencrypted portion; and
the access point is alerted of the security breach in the network by presence of the unencrypted alert indicator in the alert packet regardless of which encryption key is used to generate the encrypted portion.

4. The apparatus of claim 1, wherein:
the first packet is transmitted from a network device to the apparatus; and
the network device is an intruder and is attacking the network by
(i) transmitting unauthorized packets on the network,
(ii) receiving unauthorized access to packets transmitted on the network, or
(iii) obtaining unauthorized access to a key transmitted on the network.

5. The apparatus of claim 1, wherein the processor generates the encrypted portion using a first key, and wherein the first key is a predetermined key and is different than a second key currently used to by the processor to encrypt non-alert packets.

6. The apparatus of claim 5, wherein the first key is:
a key provided by an authentication server to the transceiver prior to the second key having been provided to the transceiver; or
an alert key provided to the transceiver for the purpose of encrypting alert packets.

7. The apparatus of claim 5, wherein the predetermined key is an alert key designated for encrypting alert packets.

8. The apparatus of claim 1, wherein:
the transceiver receives a first key from the access point, wherein the first key is used for encrypting non-alert packets;
the processor
(i) determines whether the first key is an unexpected key and
(ii) rejects the first key when the first key is an unexpected key; and

the transceiver transmits an alert packet to the access point, wherein the alert packet indicates the apparatus has received an unexpected key from the access point.

9. The apparatus of claim 1, wherein:
the transceiver receives a plurality of packets from the access point; and
the processor
(i) decrypts the plurality of packets,
(ii) determines whether the decrypting of the plurality of packets was a success or a failure for each of the plurality of packets, and
(iii) after n consecutive failures to decrypt the plurality of packets, transmits a decryption alert packet to the access point, where n is an integer greater than 1.

10. The apparatus of claim 9, wherein:
the processor
(i) increments an encryption failure counter when decryption of one of the plurality of packets fails and
(ii) decrements the encryption failure counter when decryption of one of the plurality of packets is successful; and

the transceiver transmits the decryption alert packet to the access point when a value of the encryption failure counter is equal to n.

11. A method comprising
receiving a first packet transmitted from an access point over a network via a transceiver to an apparatus;
determining a source media access control address of the first packet;
determining whether the source media access control address of the first packet corresponds to a source media access control address of the transceiver; and
in response to the source media access control address of the first packet corresponding to the source media access control address of the transceiver,
generating a second packet based on, wherein the second packet comprises an encrypted portion and an unencrypted portion, and wherein the unencrypted portion includes a field, and wherein a packet type of the field is different than a packet type expected to be received by the access point; and
alerting the access point of a security breach in the network by transmitting the second packet to the access point, wherein the access point is alerted of the security breach in the network based on the unencrypted portion and not based on the encrypted portion.

12. The method of claim 11, wherein the alerting of the access point of the security breach in the network comprises generating an error at the access point by transmitting the second packet to the access point.

13. The method of claim 11, wherein:
the second packet is an alert packet that alerts the access point of the security breach in the network;
the unencrypted portion includes an unencrypted alert indictor;
the unencrypted alert indicator is the field; and
the access point is alerted of the security breach in the network by presence of the unencrypted alert indicator in the alert packet regardless of which encryption key is used to generate the encrypted portion.

14. The method of claim 11, wherein:
the first packet is transmitted from a network device to the apparatus; and
the network device is an intruder and is attacking the network by at least one of
(i) transmitting unauthorized packets on the network,
(ii) receiving unauthorized access to packets transmitted on the network, or
(iii) obtaining unauthorized access to a key transmitted on the network.

15. The method of claim 11, further comprising generating the encrypted portion using a first key, wherein the first key is a predetermined key and is different than a second key currently used to encrypt non-alert packets.

16. The method of claim 15, wherein the first key is one of
a key provided by an authentication server to the transceiver prior to the second key having been provided to the transceiver; and
an alert key provided to the transceiver for the purpose of encrypting alert packets.

17. The method of claim 15, wherein the predetermined key is an alert key designated for encrypting alert packets.

18. The method of claim 11, further comprising:
receiving a first key from the access point via the transceiver, wherein the first key is used for encrypting non-alert packets;
determining whether the first key is an unexpected key;
rejecting the first key when the first key is an unexpected key; and
transmitting an alert packet from the transceiver to the access point, wherein the alert packet indicates the apparatus has received an unexpected key from the access point.

19. The method of claim 18, wherein the first packet is transmitted from a network device to the apparatus prior to the first packet being transmitted from the access point to the apparatus, and wherein the method further comprises:
rejecting service to the network device based on use of a first key to encrypt the first packet by the network device and lack of use of a second key by the network device;
receiving the alert packet including an unencrypted alert indicator from the transceiver by the access point; and
generating an error signal at the access point based on the unencrypted alert indicator.

20. The method of claim 11, further comprising:
receiving a plurality of packets from the access point;
decrypting the plurality of packets;
determining whether the decrypting of the plurality of packets was a success or a failure for each of the plurality of packets; and
after n consecutive failures to decrypt the plurality of packets, transmitting a decryption alert packet to the access point, where n is an integer greater than 1.