11
Security Considerations for IEEE 802.15.4 Networks Naveen Sastry University of California, Berkeley [email protected] David Wagner University of California, Berkeley [email protected] ABSTRACT The IEEE 802.15.4 specification outlines a new class of wire- less radios and protocols targeted at low power devices, per- sonal area networks, and sensor nodes. The specification includes a number of security provisions and options. In this paper, we highlight places where application designers and radio designers should exercise care when implementing and using 802.15.4 devices. Specifically, some of the 802.15.4 optional features actually reduce security, so we urge imple- mentors to ignore those extensions. We highlight difficulties in safely using the security API and provide recommenda- tions on how to change the specification to make it less likely that people will deploy devices with poor security configu- rations. Categories and Subject Descriptors D.4.6 [Operating Systems]: Security and Protection Ac- cess controls; D.4.6 [Operating Systems]: Security and Protection Authentication General Terms Security Keywords IEEE 802.15.4, Link Layer Security, Sensor Networks 1. INTRODUCTION The growing importance of small and cheap wireless de- vices demands a common platform so that the devices can communicate with each other and share components to lower costs. The 802.15.4 specification [6] (802.15.4) describes wireless and media access protocols for personal area net- working devices. The sensor network community has be- gun using these protocols as well. The protocols are in- tended for hardware implementation on a dedicated radio chip. The range of envisioned applications is broad, span- ning wireless game controllers, environmental, medical, and Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. WiSE’04, October 1, 2004, Philadelphia, Pennsylvania, USA. Copyright 2004 ACM 1-58113-925-X/04/0010 ...$5.00. building monitoring instruments, to heating and ventilation sensors [3, 14, 16, 17, 18]. These applications frequently use embedded devices controlled by an 8 or 16 bit micro- controller meant to operate without human intervention for months. The long period of unattended operation with un- derpowered hardware has two implications for the design of such systems: the software that runs on these devices must be simple and correct, and the devices must make efficient use of their limited energy. The wireless communication chip that is a part of these devices must honor these re- quirements, since it and the microcontroller represent the two largest sources of energy consumption. The 802.15.4 specification is meant to support a variety of applications, many of which are security sensitive. For example, consider the case of a sensor network that mea- sures building occupancy as an alarm system: there is an obvious privacy concern about tracking the people in the building. Additionally, if the network is not secured, an adversary could modify and inject messages to either cause an alarm, or more worryingly, to suppress legitimate alarm signals. Many applications require confidentiality and most have a need for integrity protection. The 802.15.4 specifi- cation addresses these needs through a link-layer security package. There are two intended uses of the 802.15.4 API, one for application designers that will use the features of the wire- less radio chip directly and one for higher level libraries and specifications that use the 802.15.4 API to export their own higher-level services. The ZigBee specification, still in de- velopment [1], is one important example of the latter. Contributions. In this paper, we analyze the 802.15.4 pro- tocol from a security standpoint and outline a number of problems in the specification. We can broadly classify the vulnerabilities we have observed in the 802.15.4 protocol as stemming from three distinct problems: IV management, key management, and insufficient integrity protection. The 802.15.4 specification mandates a particular key and IV for- mat that leads to vulnerabilities. Additionally, we believe the specification committee did not include enough support for integrity. We propose several changes to the specification that we believe will improve security for 802.15.4 users. 2. 802.15.4 SECURITY OVERVIEW A link layer security protocol provides four basic security services: access control, message integrity, message confi- dentiality, and replay protection.

Security Considerations for IEEE 802.15.4 Networks

Embed Size (px)

Citation preview

Page 1: Security Considerations for IEEE 802.15.4 Networks

Security Considerations for IEEE 802.15.4 Networks

Naveen SastryUniversity of California, Berkeley

[email protected]

David WagnerUniversity of California, Berkeley

[email protected]

ABSTRACTThe IEEE 802.15.4 specification outlines a new class of wire-less radios and protocols targeted at low power devices, per-sonal area networks, and sensor nodes. The specificationincludes a number of security provisions and options. Inthis paper, we highlight places where application designersand radio designers should exercise care when implementingand using 802.15.4 devices. Specifically, some of the 802.15.4optional features actually reduce security, so we urge imple-mentors to ignore those extensions. We highlight difficultiesin safely using the security API and provide recommenda-tions on how to change the specification to make it less likelythat people will deploy devices with poor security configu-rations.

Categories and Subject DescriptorsD.4.6 [Operating Systems]: Security and Protection Ac-cess controls; D.4.6 [Operating Systems]: Security andProtection Authentication

General TermsSecurity

KeywordsIEEE 802.15.4, Link Layer Security, Sensor Networks

1. INTRODUCTIONThe growing importance of small and cheap wireless de-

vices demands a common platform so that the devices cancommunicate with each other and share components to lowercosts. The 802.15.4 specification [6] (802.15.4) describeswireless and media access protocols for personal area net-working devices. The sensor network community has be-gun using these protocols as well. The protocols are in-tended for hardware implementation on a dedicated radiochip. The range of envisioned applications is broad, span-ning wireless game controllers, environmental, medical, and

Permission to make digital or hard copies of all or part of this work forpersonal or classroom use is granted without fee provided that copies arenot made or distributed for profit or commercial advantage and that copiesbear this notice and the full citation on the first page. To copy otherwise, torepublish, to post on servers or to redistribute to lists, requires prior specificpermission and/or a fee.WiSE’04, October 1, 2004, Philadelphia, Pennsylvania, USA.Copyright 2004 ACM 1-58113-925-X/04/0010 ...$5.00.

building monitoring instruments, to heating and ventilationsensors [3, 14, 16, 17, 18]. These applications frequentlyuse embedded devices controlled by an 8 or 16 bit micro-controller meant to operate without human intervention formonths. The long period of unattended operation with un-derpowered hardware has two implications for the design ofsuch systems: the software that runs on these devices mustbe simple and correct, and the devices must make efficientuse of their limited energy. The wireless communicationchip that is a part of these devices must honor these re-quirements, since it and the microcontroller represent thetwo largest sources of energy consumption.

The 802.15.4 specification is meant to support a varietyof applications, many of which are security sensitive. Forexample, consider the case of a sensor network that mea-sures building occupancy as an alarm system: there is anobvious privacy concern about tracking the people in thebuilding. Additionally, if the network is not secured, anadversary could modify and inject messages to either causean alarm, or more worryingly, to suppress legitimate alarmsignals. Many applications require confidentiality and mosthave a need for integrity protection. The 802.15.4 specifi-cation addresses these needs through a link-layer securitypackage.

There are two intended uses of the 802.15.4 API, one forapplication designers that will use the features of the wire-less radio chip directly and one for higher level libraries andspecifications that use the 802.15.4 API to export their ownhigher-level services. The ZigBee specification, still in de-velopment [1], is one important example of the latter.

Contributions. In this paper, we analyze the 802.15.4 pro-tocol from a security standpoint and outline a number ofproblems in the specification. We can broadly classify thevulnerabilities we have observed in the 802.15.4 protocol asstemming from three distinct problems: IV management,key management, and insufficient integrity protection. The802.15.4 specification mandates a particular key and IV for-mat that leads to vulnerabilities. Additionally, we believethe specification committee did not include enough supportfor integrity. We propose several changes to the specificationthat we believe will improve security for 802.15.4 users.

2. 802.15.4 SECURITY OVERVIEWA link layer security protocol provides four basic security

services: access control, message integrity, message confi-dentiality, and replay protection.

Page 2: Security Considerations for IEEE 802.15.4 Networks

Access control and message integrity. Access controlmeans the link layer protocol should prevent unauthorizedparties from participating in the network. Legitimate nodesshould be able to detect messages from unauthorized nodesand reject them. Also, a secure network should provide mes-sage integrity protection: if an adversary modifies a messagefrom an authorized sender while the message is in transit,the receiver should be able to detect this tampering. In-cluding a message authentication code (MAC)1 with eachpacket provides message authentication and integrity. AMAC can be viewed as a cryptographically secure checksumof a message. Computing it requires authorized senders andreceivers to share a secret cryptographic key, and this key ispart of the input to the computation. The sender computesthe MAC over the packet with the secret key and includesthe MAC with the packet. A receiver sharing the same secretkey recomputes the MAC and compares it with the MAC inthe packet. The receiver accepts the packet if they are equal,and rejects it otherwise. Message authentication codes mustbe hard to forge without the secret key. Consequently, if anadversary alters a valid message or injects a bogus message,she will not be able to compute the corresponding MAC,and authorized receivers will reject these forged messages.

Confidentiality. Confidentiality means keeping informationsecret from unauthorized parties. It is typically achievedwith encryption. Preferably, an encryption scheme shouldnot only prevent message recovery, but also prevent adver-saries from learning even partial information about the mes-sages that have been encrypted. This stronger property isknown as semantic security [10].

One implication of semantic security is that encryptingthe same plaintext two times should give two different ci-phertexts. If the encryption process is identical for two in-vocations on the same message, then semantic security isclearly violated: the resulting ciphertexts are identical. Acommon technique for achieving semantic security is to usea unique nonce for each invocation of the encryption algo-rithm. A nonce can be thought of as a side input to theencryption algorithm. The main purpose of a nonce is toadd variation to the encryption process when there is littlevariation in the set of messages. Since the receiver must usethe nonce to decrypt messages, the security of most encryp-tion schemes do not rely on nonces being secret. Noncesare typically sent in the clear and are included in the samepacket with the encrypted data.

Replay Protection. An adversary that eavesdrops on a le-gitimate message sent between two authorized nodes and re-plays it at some later time engages in a replay attack. Sincethe message originated from an authorized sender it willhave a valid MAC, so the receiver will accept it again. Re-play protection prevents these types of attacks. The sendertypically assigns a monotonically increasing sequence num-ber to each packet and the receiver rejects packets withsmaller sequence numbers than it has already seen.

2.1 Protocol Description1The 802.15.4 specification refers to the message authentica-tion code as a message integrity code (MIC) to differentiateit from media access control. In this paper, we follow thecryptographic convention of referring to the integrity codeas a MAC, and we do not abbreviate media access control.

In this section, we will provide a brief outline of the 802.15.4security architecture. We will provide more detail as neededwhen we outline more specific problems.

802.15.4. Addressing in 802.15.4 is accomplished via a 64-bit node identifier and a 16-bit network identifier. 802.15.4supports a few different addressing modes. For example, a16-bit truncated address may be used in place of the full 64-bit node identifier in certain cases. This allows the sizes ofthe source and destination addresses to vary between 0 and10 bytes depending on whether truncated or full addressesare used, and whether or not the node sends to the broadcastaddress. For our purposes, it is sufficient to only consider the64-bit node identifier as the address. We urge the interestedreader to see the specification for complete details.

There are two important packet types that are relevant tothe security of 802.15.4: data packets and acknowledgmentpackets. A data packet, seen in Figure 1(a), has variablelength and is used by a node to send a message to a singlenode or to broadcast a message to multiple nodes. Eachdata packet has a flags field that indicates the packet type,whether security is enabled or not, the addressing modesthat are in use, and whether the sender requests an acknowl-edgment. A 1 byte sequence number serves to identify thepacket number for acknowledgments. The packet optionallyincludes source and destination addresses. As noted above,each field is variably sized between 0 and 10 bytes. Thedata payload field comes after the addressing fields. It isless than 102 bytes. Finally, a 2 byte CRC checksum fieldprotects the packet against transmission errors.

The acknowledgment packet, as depicted in Figure 1(b),is sent by the recipient only if the corresponding data packetwas not sent to a broadcast address and the sender requestedan acknowledgment. Its format is simple: a 2 byte flagsfield similar to the one in the data packet, the 1 byte se-quence number from the packet that it is acknowledging,and a 2 byte CRC. There is no addressing information inthe acknowledgment packet.

Security. The 802.15.4 security layer is handled at the me-dia access control layer, below application control. The ap-plication specifies its security requirements by setting theappropriate control parameters into the radio stack. If anapplication does not set any parameters, then security isnot enabled by default. An application must explicitly en-able security, as we detail below. The specification definesfour packet types: beacon packets, data packets, acknowl-edgments packets, and control packets for the media accesscontrol layer. The specification does not support security foracknowledgement packets; other packet types can optionallysupport integrity protection and confidentiality protectionfor the packet’s data field.

An application has a choice of security suites that con-trol the type of security protection that is provided for thetransmitted data. Each security suite offers a different setof security properties and guarantees, and ultimately dif-ferent packet formats. The 802.15.4 specification defineseight different security suites, outlined in Table 1. We canbroadly classify the suites by the properties that they of-fer: no security, encryption only (AES-CTR), authentica-tion only (AES-CBC-MAC), and encryption and authenti-cation (AES-CCM). Each category that supports authenti-cation comes in three variants depending on the size of the

Page 3: Security Considerations for IEEE 802.15.4 Networks

Len.

1 byte

Flags

2 bytes

Seq.No

1 byte

Dest. Address

0/2/4/10 bytes

Source Address

0/2/4/10 bytes

Data payload

variable

CRC

2 bytes

(a) Data packet format

Len.

1 byte

Flags

2 bytes

Seq.No

1 byte

CRC

2 bytes

(b) Acknowledgment packet format

Figure 1: Data and acknowledgment packet formats

Frame Counter

4 bytes

KeyCtr

1 byte

Encrypted Payload

variable

(a) AES-CTR

Payload

variable

MAC

4/8/16 bytes

(b) AES-CBC-MAC-b, b ∈ {4, 8, 16} MAC size

Frame Counter

4 bytes

KeyCtr

1 byte

Encrypted Payload

variable

Encrypted MAC

4/8/16 bytes

(c) AES-CCM-b, b ∈ {4, 8, 16} MAC size

Figure 2: The formatting of the data field (see Figure 1(a)) for the three main security suites. When included,the MAC protects the packet headers as well as data contents.

Page 4: Security Considerations for IEEE 802.15.4 Networks

Name Description

Null No securityAES-CTR Encryption only, CTR ModeAES-CBC-MAC-128 128 bit MACAES-CBC-MAC-64 64 bit MACAES-CBC-MAC-32 32 bit MACAES-CCM-128 Encryption & 128 bit MACAES-CCM-64 Encryption & 64 bit MACAES-CCM-32 Encryption & 32 bit MAC

Table 1: Security suites supported by 802.15.4 (seeTable 75 from the 802.15.4 specification). The spec-ification mandates that implementations must sup-port the AES-CCM-64 and Null suites while theother suites are optional (§7.6).

Address Security Suite Key Last IV Replay Ctr

Figure 3: Format of an ACL entry. The destinationaddress of an outgoing packet is matched with theaddress field in an ACL entry. The packet is thenprocessed using the indicated security suite with thekey and IV listed in the ACL entry. For incomingpackets, the source address is matched with the ad-dress field in the ACL entry. Cryptographic opera-tions use the key from the ACL entry and the replaycounter field acts as a high water mark if replay de-tection is enabled.

MAC that it offers. Each variant is considered a differentsecurity suite and has its own name. The MAC can be either4, 8, or 16 bytes long. The longer the MAC the lower thechance that an adversary has to blind forgery by guessing anappropriate code. For example, with an 8 byte MAC, an ad-versary has a 2−64 chance of forging the MAC. The tradeoffis a larger packet size for increased protection against au-thenticity attacks. Additionally, for each suite that offersencryption, the recipient can optionally enable replay pro-tection. Radio designers do not have to implement all ofthe suites. The specification only requires that radio chipsprovide support for the Null suite and the AES-CCM-64suite.

An application indicates its choice of security suites basedon source and destination addresses. 802.15.4 radio chipshave an access control list (ACL) that controls what secu-rity suite and keying information to use. Compliant devicesmay support up to 255 ACL entries. Each entry containsan 802.15.4 address, a security suite identifier, and securitymaterial, as shown in Figure 3. The security material ispersistent state necessary to execute the security suite. Itconsists of the cryptographic key and, for suites that provideencryption, the nonce state that must be preserved acrossdifferent packet encryption invocations. When replay pro-tection is invoked, the security material also includes a highwater mark of the most recently received packet’s identifier.

As a part of the interface for sending packets, the appli-cation must specify a boolean indicating whether security isenabled. If no security is requested, the packet is sent outas is. If security is enabled, the media access control layerlooks up the destination address in its ACL table. If thereis a match ACL entry, the security suite, key, and noncespecified in that ACL entry are used to encrypt and/or au-

thenticate the outgoing packet, and the flags field on out-going packet is set accordingly. If the destination addressis not listed in the ACL table, a default ACL entry is usedinstead; the default ACL entry is similar to the other ACLentries except that it matches all destination addresses. Ifthe default ACL entry is empty and the application has re-quested security, the media access control layer returns anerror code.

On packet reception, the media access control layer con-sults the flags field in the packet to determine if any securitysuites have been applied to that packet. If no security wasused, the packet is passed as is to the application. Other-wise, the media access control layer uses a similar processto find the appropriate ACL entry, this time based on thesender’s address. It then applies the appropriate securitysuite, key, and replay counter to the incoming packet, pre-senting the application with an error message if no appro-priate ACL entry could be located.

We will now provide more detail about the categories ofsecurity suites:

• Null: This is the simplest security suite. Its inclusionis mandatory in all radio chips. It does not have anysecurity material and operates as the identity function.It does not provide any security guarantees.

• AES-CTR: This suite provides confidentiality pro-tection using the AES block cipher [15] with countermode. To encrypt data under counter mode, the senderbreaks the cleartext packet into 16-byte blocks p1, . . . , pn

and computes ci = pi ⊕ Ek(xi). Each 16-byte blockuses its own varying counter, which we call x1. Therecipient recovers the original plaintext by computingpi = ci ⊕ Ek(xi). Clearly, the recipient needs thecounter value xi in order to reconstruct pi. The xi

counter, known as a nonce or IV, is composed of astatic flags field, the sender’s address, and 3 separatecounters: a 4 byte frame counter that identifies thepacket, a 1 byte key counter field, and a 2 byte blockcounter that numbers the 16 byte blocks within thepacket as shown in Figure 4. The frame counter ismaintained by the hardware radio. The sender incre-ments it after encrypting each packet. When it reachesits maximum value, the radio returns an error code andno further encryptions are possible. The key counter isa one byte counter under the application’s control. Itcan be incremented if the frame counter ever reachesits maximum value. The requirement is that the noncemust never repeat within the lifetime of any single key,and the role of the frame and key counters is to pre-vent nonce reuse. The 2 byte block counter ensuresthat each block will use a different nonce value; thesender does not need to include it with the packet,since the receiver can infer its value for each block.

In summary, the sender includes the frame counter,key counter, and encrypted payload into the data pay-load field of the packet, as in Figure 2(a).

• AES-CBC-MAC: This suite provides integrity pro-tection using CBC-MAC [11]. The sender can computeeither a 4, 8, or 16 byte MAC using the CBC-MACalgorithm, leading to three different AES-CBC-MACvariants. The MAC can only be computed by partieswith the symmetric key. The MAC protects packet

Page 5: Security Considerations for IEEE 802.15.4 Networks

Flags

1 byte

Source address

8 bytes

Frame Ctr

4 bytes

KeyCtr

1 byte

Block Ctr

2 bytes

Figure 4: The format of the input (xi) to the block cipher for the AES-CTR and AES-CCM suites. The flagsfield is a constant for AES-CTR mode; its value is prescribed by the CCM specification for AES-CCM.

headers as well as the data payload. The sender ap-pends the plaintext data with the MAC, as in Fig-ure 2(b). The recipient verifies the MAC by comput-ing the MAC and comparing it with the value includedin the packet.

• AES-CCM: This security suite uses CCM mode forencryption and authentication [19]. Broadly, it firstapplies integrity protection over the header and datapayload using CBC-MAC and then encrypts the datapayload and MAC using AES-CTR mode. As such,AES-CCM includes the fields from both the authen-tication and encryption operations: a MAC, and theframe and key counters. These fields serve the samefunction as above. Just as AES-CBC-MAC has threevariants depending on the MAC size, AES-CCM alsohas three variants. We show its packet format in Fig-ure 2(c).

A receiver can optionally enable replay protection whenusing a security suite that provides confidentiality protec-tion. This includes AES-CTR and all of the AES-CCMvariants. The recipients use the frame and key counter as a5 byte value, the replay counter, with the key counter occu-pying the most significant byte of this value. The recipientcompares the replay counter from the incoming packet to thehighest value seen, as stored in the ACL entry. If the incom-ing packet has a larger replay counter than the stored one,then the packet is accepted and the new replay counter issaved. If, however, the incoming packet has a smaller value,the packet is rejected and the application is notified of therejection. We refer to this counter as the replay counter,even though it is the same counter as the nonce. It servesa logically different purpose from the nonce, which is usedfor confidentiality. The replay counter is not exposed to theapplication to use.

2.2 Keying ModelsSymmetric cryptography relies on both endpoints using

the same key when communicating securely. In a group ofnodes, the keying model governs what key a node uses tocommunicate with another node. The keying model that ismost appropriate for an application depends on the threatmodel that an application faces and what types of resourcesit is willing to expend for key management. For example, inthe network shared key model, every node uses the same keyfor communicating with every other node. Each node onlyneeds to keep track of a single key, which eases the manage-ment problems. In this section, we define a set of commonkeying models. In Section 3, we discuss the problems withthe 802.15.4 architecture in supporting these different key-ing models.

We present a few of the more common keying models thatare appropriate for sensor networks:

• Network shared keying: With a single network-wide shared key, each node in the system possesses thesame key and uses it to communicate with all othernodes. Key management becomes trivial with thisapproach since all communication uses the same key.Additionally, the memory requirements are minimal.Applications can therefore use the network shared keywith little effort.

However, the management simplicity comes at the costof a vulnerability to insider attacks. It is more vulner-able than other keying models to a single key compro-mise, as happens when an adversary compromises asingle node. An adversary can use the compromisednode to undermine the security guarantees of the en-tire network. The single node can break the confiden-tiality of any message sent in the system and forgemessages claiming to originate from any node. If weexpect nodes to be occasionally compromised or cap-tured, network shared keying will be less attractive.

• Pairwise keying: Pairwise keying tolerates node com-promise by limiting the scope of every key. With pair-wise keying, each pair of nodes share a different key.Thus, a node compromise only affects past and futuremessages sent to or from that node; other traffic is un-affected. This provides better security than networkshared keying.

The greater robustness against node compromise doescome at a cost, particularly in the overhead for keymanagement. If a node communicates with many othernodes, it must store many keys and select the appro-priate one when communicating. On devices with min-imal resources, the storage costs can be prohibitive.

• Group keying: Group keys are a compromise be-tween network shared keys and pairwise keys. A sin-gle key is shared among a set of nodes and is used onall links between any two nodes in that group. Thepartition into groups may be made based on location,network topology, or similarity of function. The ad-vantage of group keying is that it provides an inter-mediate tradeoff between network shared keying andpairwise keying, with partial resistance to node com-promise at a lower cost than pairwise keying.

• Hybrid approaches: Some systems may use a com-bination of the above keying models simultaneouslyin the same application. For example, we might usepairwise keying for all links between a node and a basestation and use a network shared key for all other links.

2.3 ImplementationsWe are not aware of any wireless chip that fully supports

the security operations detailed in the 802.15.4 standard inhardware. The Atmel Z-Link transceiver [7] and Motorola

Page 6: Security Considerations for IEEE 802.15.4 Networks

MC13192 [9] support the 802.15.4 PHY standard that gov-erns radio packet formats and frequencies, but not the entiremedia access control portion of the standard. One wouldhave to implement the security operations on the microcon-troller in order to interact with 802.15.4 devices that usesecurity. The Chipcon CC2420 does have hardware supportfor the cryptographic primitives that allows for seamless op-eration with 802.15.4 devices that follow the specification.However, as we detail in Section 3.2.3, they do not adhere tothe interface outlined in the 802.15.4 specification, so theydo not support multiple keys well.

We believe that hardware implementations of the stan-dard are valuable in order to simplify the application writer’sjob. Handling the cryptographic operations in hardwarefrees the microcontroller from the real time demands re-quired to decrypt and encrypt the packets.

3. PROBLEMSWe have found several vulnerabilities and pitfalls in 802.15.4.

They fall into three categories: IV management, key man-agement, and integrity protection. Each represents dangerzones for application developers, where it is easy to use802.15.4 in a way that provides less security than one mightexpect. In some cases, there are easy workarounds that de-velopers can employ today; others can only be fixed withsubstantial changes to the specification.

3.1 IV Management Problems

3.1.1 Same Key in Multiple ACL EntriesAs noted, there are up to 255 ACL entries used to store

different keys and their associated nonce. The sender choosesthe appropriate ACL entry based on the destination address.

However, there is a vulnerability if the same key is usedin two different ACL entries. In that case, it is highly likelythat the sender will accidentally reuse the nonce. For exam-ple, suppose a sender uses the AES-CCM-64 security suitewith the same key k for recipient r1 and recipient r2 andinitializes the frame and key counters to 0x0 for both recip-ients. If the sender transmits message m1 with data 0xAA00

to r1 and then message m2 with data 0x00BB to r2, thesender will end up reusing the same nonce (frame counterof 0x0 and key counter of 0x0). This is because each re-cipient has their own ACL entry with independent noncestate. Because AES-CCM uses CTR mode, which acts likea stream cipher, an adversary can easily recover the xor ofthe plaintexts by computing the xor of the two ciphertexts,in this case 0xAABB, completely breaking the confidentialityproperty2.

There are a number of ways that two separate recipientsmight end up with the same key in two separate ACL entries:

• Coarse grained ACL control. As we note in Section 3.2.1,group keys are not well supported. An application de-signer may be tempted to implement group keying bycreating two separate ACL entries sharing the samekey. This will appear to work but it will not be secure.

• Race conditions in routing change protocols. Supposethat a node uses key k1 to secure communications to

2Recall that the ciphertext for a message is m⊕Ek(x1). Sowhen the same counter is used for both messages, the xorof the ciphertexts will be [m1 ⊕ Ek(x1)] ⊕ [m2 ⊕ Ek(x1)] =m1 ⊕ m2, where x1 is the nonce.

any parent node in the routing tree and key k2 to se-cure all other communications. Key k2 will be listedas the default ACL entry, with a separate ACL entryspecifying address p and key k1. If the application de-cides to switch parents from p to p′ by adding an ACLentry for p′ before removing p’s entry, there is a racecondition where the same key is active in the ACL listat the same time.

We believe nonce reuse will likely occur if an applicationever sets up the same key in two different ACL entries. Insuch cases, confidentiality will be violated, though integrityis unaffected. The problem is that this error can occur alltoo easily if application programmers are not vigilant.

We should point out that a sender can safely send twomessages to two different recipients using the same key aslong as it carefully manages the nonce state. The easiestmethod is to use a single ACL entry. The sender can thensend the first message, change the destination in the ACLentry, and then send the second message. The general prin-ciple to prevent nonce reuse is that the nonce state shouldnever be separated from the key.

3.1.2 Loss of ACL State Due to Power InterruptionsWe expect that many 802.15.4 devices will be battery or

solar powered. Radio chip designers must ensure that theACL state is properly maintained even during power inter-ruptions and low-power operation.

Power Failure. Consider what happens if the ACL state islost when the node encounters a power failure. If no specialprecautions are taken, the node will emerge with a clearedACL table when power is restored. Presumably, the node’ssoftware can then repopulate the ACL table with the appro-priate keys. However, it is not clear what to do about thenonce states. If all nonces are reset to a known value, suchas 0, nonces will be reused, compromising security.

Application designers can avoid nonce reuse in a numberof ways if they can detect the power disruption. Firstly,nodes can establish new keys after a power disruption, sothat they don’t reuse the same nonce twice with the samekey. Alternatively, they can always store the key counter inindelible flash memory, incrementing it after sending eachpacket. However, since storing values in flash memory is slowand energy inefficient, application designers can amortizethe cost of writing to the flash by “leasing” a block of countervalues and storing the lease in flash memory. They canacquire a new block of counter values when they run out ofvalues and store the lease information in the flash memory.After a reboot, they can invalidate all counter values up toor including the lease currently in flash and acquire the nextblock of values.

This is a dangerous pitfall: applications not designed withpower failures in mind can easily end up with a product thatappears to work but actually fails to secure communicationsagainst eavesdroppers. Application designers must take thisinto account in order to design nodes that are secure acrosspower interruptions.

Low Powered Operation. A related problem to power fail-ure is how to preserve the nonce state if the node goes intolow powered operation. In order to extend the battery’s life-time, the devices must engage in some kind of duty cycling

Page 7: Security Considerations for IEEE 802.15.4 Networks

whereby parts of the device are on for only a small fractionof the time. Since an 802.15.4 radio can consume 19.7 mA at1.8V [8] just to receive an incoming packet, keeping the radiochip in a lower power mode can greatly increase the device’spower consumption efficiency. If it emerges from its low-powered state with a cleared ACL, it will again reuse noncevalues and break confidentiality. Maintaining the noncethrough low powered operation is easier to solve since theradio chip knows when it will enter and leave low-poweredmode; since this can occur frequently, the radio chip mustuse efficient mechanisms. Unfortunately, the specificationdoes not address the issue of what happens to the wirelesschip in a low-power state.

Saving and restoring nonce state in software is a reason-able fix. However, this solution is not cheap: each ACLentry has at least 10 bytes of state that needs to be stored(5 bytes for the inbound replay counter and 5 bytes for theoutbound nonce that it uses for that key). With 255 ACLentries, this is more than 2 kilobytes of state, imposing sig-nificant memory and computational overheads. Another al-ternative, maintaining power to the ACL’s RAM so that thethe ACL contents is not lost during low-powered operation isworkable; the downside is an increased power consumptionin low powered operation.

3.2 Key Management ProblemsThe second class of problems results from inadequate sup-

port in the ACL table for many keying models.

3.2.1 No Support for Group KeyingSupporting group keying under 802.15.4 is unwieldy. For

example, suppose that nodes n1, . . . , n5 wish to communi-cate amongst themselves using key k1, while nodes n6, . . . n9

use key k2. Because each ACL entry can only be associatedto a single destination address (§7.5.8.1), there is no goodway to support this desired model.

One tempting approach is to create five ACL entries, onefor each of nodes n1, . . . , n5, all mentioning the same key k1.This requires that the 802.15.4 radio’s ACL table be largeenough to hold all these entries. More seriously, as we sawin Section 3.1.1, this approach poses unacceptable securityrisks: because each entry stores a nonce separately, we arelikely to encounter nonce reuse, exposing plaintext. Conse-quently, we discard this approach as simply too dangerous.

Another tempting approach is to create a single ACL en-try for key k1. Before sending to node n1, the destinationaddress associated with that ACL entry could be changedto mention n1. If the application later wants to send a mes-sage to n2 using the same key, it must switch the destinationaddress associated with that the ACL entry. In general, thedestination address must be modified every time a packetis sent. This makes packet transmission cumbersome. Thereal problem, though, is on the receiving side. If the receiverperforms the same address switching trick, the receiver willneed to ensure it has an ACL entry for the sender before themessage from that sender ever arrives. The receiver there-fore must always be able to predict which node from thegroup will next send it a message, so that the ACL entrycan be set up appropriately. Except in special cases (suchas restricted communication patterns), this is likely to posetoo many constraints to be workable.

In short, there appears to be no simple way to use groupkeying securely in 802.15.4 networks. We hypothesize that

many, if not all, of those who naively attempt to use groupkeying in 802.15.4 will end up with configurations that ap-pear to be functional but actually compromise security. Thisis a shame, for group keying is very natural for many prob-lems.

3.2.2 Network Shared Keying Incompatible with Re-play Protection

When using a single network-wide shared key, there is noway to protect against replay attacks. To use the networkshared key model, an application must use the default ACLentry, since as we saw in Section 3.2.1, the other ACL entriesare not useful for group communication. Recall that thedefault ACL entry will be used when there is no matchingACL entry.

Now, suppose that the network shared key is loaded intothe default ACL and node s1 sends 100 messages using re-play counters 0 . . . 99. The recipient gets these packets andwould like to perform replay protection. It must keep a highwater mark of the largest replay counters it has seen so far.According to the specification (§7.6.2.3.2 and §7.6.3.3.2), thereceiver updates the replay counter associated with the de-fault ACL as each packet arrives. Now, if sender s2 sends amessage with its replay counter starting at 0, the recipientwill reject the message since it will only accept messages withreplay counters greater than 99. Therefore, for the recipi-ent to use replay protection with the shared key model, thesenders must coordinate their use of replay counter space.This is not feasible when there are more than a handful ofmembers in a group, precluding the use of replay protectionwith the shared network key.

3.2.3 Pairwise Keying Inadequately SupportedWe also note that the specification could include stronger

support for pairwise communication. The specification al-lows a 802.15.4 radio to have up to 255 ACL entries, butit does not specify a required minimum number of ACL en-tries. In particular, compliant radio chips need not havemore than one or two ACL entries. As an example, theChipcon CC2420, has support for only two keys3 [8]. Asdetailed in Section 3.2.1, an ACL entry cannot be safelyshared among a group of multiple nodes. This means thatin a pairwise keying model, a radio chip with support forn ACL entries will limit us to networks containing at mostabout n nodes. This poses a significant limit to scalability,and it means that pairwise keying will only be feasible onradio chips with support for a large number of ACL entries.To support pairwise keying, we submit that it may makesense to revise the specification to mandate a reasonableminimum number of ACL entries.

3.2.4 DiscussionThe source of these difficulties is partly a result of confus-

ing the role of a nonce and a replay counter. The nonce sentin outgoing packets serves two purposes: it provides a non-repeating value that protects confidentiality; and, it provides

3Instead of a default ACL entry and ACL list, the CC2420actually has two ACL entries, named key 0 and key 1. TheACL entries do not have an address associated with them,as the specification requires. Instead, there are two regis-ters specifying which key is to be used for transmission andreception, respectively. They have similar properties to thedefault ACL, so the CC2420 can only effectively support onegroup at a time. It does not support pairwise keying well.

Page 8: Security Considerations for IEEE 802.15.4 Networks

a monotonically increasing counter that prevents replay at-tacks. To protect confidentiality, the sender must ensurethat it never uses the same nonce twice for the same key.To protect against replay attacks, the recipient needs to en-sure that every sender uses a larger nonce value than foundin previous messages sharing the same key. The first require-ment suggests that the nonce should be strongly bound tothe key: anytime the key is used for encryption, it must usea different nonce value. Therefore, any uses of the key, evenin different ACL entries, should share a single nonce register.Conversely, the second requirement suggests that the replaycounter should be strongly bound to the sender’s address.If the same key appears in multiple ACL entries, we shouldmaintain a separate high-water mark for each sender.

The current ACL structure does not support these two re-quirements, leading to the problems in properly supportingreplay when used with a group keying model. The problemstems from overloading the nonce to serve both as an IV andas a replay counter with the ACL structure they mandate.The opposing requirements for sending to ensure confiden-tiality and receiving to guarantee replay protection placedifferent demands on the ACL structure. The specificationimplicitly assumes that a key does not appear in more thanone ACL entry at a time, otherwise it will encounter prob-lems sending as described in Section 3.1.1. Furthermore, thespecification indicates that the recipient maintains a singlenonce for each key value used for outbound communication.It also only has a single inbound slot to store the replaycounter, shared among all senders using that key. Hence,when the recipient receives packets from different senders,as occurs with group keying or a network keying, the recip-ient cannot update the replay counter properly, making re-play protection incompatible with network shared and groupkeying.

We conclude that none of the three most important key-ing models are well supported by 802.15.4. Each has someshortcoming:

• Network shared keying is incompatible with replayprotection.

• Pairwise keying is only useful if the radio chip de-signer includes a sufficient number of ACL entries.This is not required by the specification, and one exist-ing 802.15.4 radio is poorly suited for pairwise keying.

• Group keying is not workable, as described in Sec-tion 3.2.1.

These problems will not affect every application, but theydo restrict an application’s choice of keying models andmay force undesirable compromises. Pairwise keying maybe workable if the radio provides enough ACL entries, butotherwise it cannot be used. Network shared keying can onlybe used if the application does not require replay protection.

3.3 Insufficient Integrity Protection

3.3.1 Unauthenticated Encryption ModesAs detailed in Table 1, the AES-CTR suite uses counter

mode without a MAC (see §7.6.2). The standard does notmandate that radio designers support the CTR mode suite;only AES-CCM-64 is mandatory. However, we believe thatAES-CTR is so dangerous that it should never be enabled

or implemented. Unauthenticated encryption introduces asignificant risk of protocol level vulnerabilities.

Researchers have found a number of vulnerabilities in pro-tocols that use encryption protected only by a CRC and nota cryptographically strong message authentication code. Allof the attacks center on the fact that in the course of modify-ing the ciphertext, the adversary can construct appropriatemodifications to the CRC so that the receiver accepts thepacket. Researchers have discovered unauthenticated en-cryption vulnerabilities in IPSec [12], 802.11 [13],and SSHversion 1 [2, 4, 5] that compromise not only integrity but alsoconfidentiality. Any application that uses AES-CTR secu-rity suite becomes vulnerable to similar attacks. As Bellovinnoted, developers have a tendency to assume that “since de-crypting with the wrong key will yield garbage, additionalintegrity checking is not needed” [12], but this assumptionis simply inaccurate.

What is perhaps surprising to those not trained in cryp-tography is that failures of integrity can affect confidentialityas well. The root of the problem is that, in many systems,the ability to forge unauthentic messages often allows anattacker to trick an endpoint into disclosing secrets. Theseverity of this problem depends on the details of the specificapplication protocol, so it is impossible to make any defini-tive statements that will apply to all deployments. Nonethe-less, time has proven again and again that use of encryptionwithout a MAC poses a significant risk of security breaches.Therefore, we recommend that AES-CTR should never beused by application designers, should not be supported by802.15.4 devices, and should be stricken from the standard.

3.3.2 Denial-of-service Attacks on AES-CTRNext, we show a simple, single-packet denial-of-service at-

tack that is applicable when a 802.15.4 network uses theAES-CTR suite with replay protection enabled. Supposea sender s and recipient communicate with the AES-CTRsuite using key k, and the recipient has enabled replay pro-tection. Recall that the recipient maintains a high wa-ter mark composed of the key and frame counter, reject-ing packets whose counter is smaller than the high watermark. Consider what happens when an adversary sendsa forged packet with source address s, key counter 0xFF,frame counter 0xFFFFFFFF, and any payload whatsoever (notnecessarily a valid ciphertext under key k). The recipientwill decrypt the packet under key k, resulting in randomgarbage. Since there is no access control or message authen-tication, the recipient will accept the packet even though itcontains garbage. However, before passing the garbled pay-load to the application, the media access control layer willupdate the high water mark to 0xFFFFFFFFFF. The next timethe real sender s tries to send a legitimate packet, the recip-ient will reject it no matter what s does, because the highwater mark has reached its maximum value and any subse-quent packet will appear to be replayed. Similar attacks canalso be used to prevent delivery of the next n packets to besent on some link, where the number n can be selected bythe attacker.

This shows that an attacker can permanently disrupt a802.15.4 link, if that link uses AES-CTR with replay pro-tection enabled. The attack is easy to mount, because itonly requires sending a single forged packet; the attackerneeds no special access or equipment.

Page 9: Security Considerations for IEEE 802.15.4 Networks

3.3.3 No Integrity on Acknowledgment PacketsThe 802.15.4 specification does not include any integrity

or confidentiality protection for acknowledgment packets.When sending a packet, the sender has the option of re-questing an acknowledgment from the recipient by settinga bit in the flags field. If the acknowledgment request flagis set, the recipient returns an acknowledgment packet thatcontains the packet’s sequence number. The sender’s mediaaccess control layer resends the packet a finite number oftimes if it doesn’t receive the acknowledgment in time. Thesending application is notified when the acknowledgment ar-rives.

However, the lack of a MAC covering acknowledgmentsallows an adversary to forge an acknowledgment for anypacket. An adversary need only create the forged acknowl-edgment with the appropriate sequence number from theoriginal packet; this is not hard, since this sequence numberis sent in the clear.

This weakness can be combined with targeted jammingto prevent delivery of selected packets. Suppose an attackeridentifies a packet that he wishes to ensure is not receivedby the intended recipient. The attacker can transmit a shortburst of interference while the packet is being sent, causingthe CRC to be invalid at the recipient and the packet tobe dropped by the recipient. Then, the attacker can forge avalid-looking acknowledgment, fooling the sender into think-ing that the packet has been received.

This vulnerability renders acknowledgments untrustwor-thy when adversaries are present. For example, suppose thatan application uses the acknowledgment as a part of a reli-able send interface. The application keeps trying to send thepacket as long as it remains unacknowledged. If the send-ing application receives an acknowledgment, it can never besure whether the data actually arrived at the destination.The acknowledgment might be legitimate, or it might beforged. Consequently, acknowledgments can be used as ahint for performance improvement, but they should not berelied upon.

4. RECOMMENDATIONSIn Section 3, we outlined a number of deficiencies in the

802.15.4 specification. These problems have a number ofsolutions. Some can easily be avoided by an applicationprogrammer if they are aware of the problem. Others mayrequire the radio designer to adjust their designs. Alterna-tively, the 802.15.4 standards committee could solve theseproblems in the next revision of the 802.15.4 specification.In fact, fixing some of the problems may require coopera-tion from more than one party. In this section, we suggestworkarounds that can be used to defend against the weak-nesses described earlier.

4.1 Application Designers

Don’t Use AES-CTR Security Suite. As we noted, theAES-CTR can lead to problems in protocols. The inabilityto properly support replay detection (despite the specifica-tion’s claims to the contrary) is just one example. We do notrecommend that any application use the AES-CTR securitysuite.

Don’t Rely on Acknowledgments. Application designersshould not rely on the acknowledgments as they stand sincethey don’t provide any guarantees. Receiving an acknowl-edgment doesn’t mean the recipient actually received thepacket.

If an application needs the functionality of acknowledg-ments, they should use application level acknowledgmentsby sending data packets with integrity control and not usethe acknowledgments that 802.15.4 provides. Applicationlevel acknowledgments duplicate much functionality that themedia access control layer provides. For example, an appli-cation would need to use its own mechanism to retry a senduntil an application level acknowledgment arrives. There iscertainly added complexity in this workaround, but barringintegrity protection for acknowledgments we believe it is theonly safe alternative.

4.2 Hardware Designers

Include Support for 255 ACL Entries. To properly sup-port pairwise keying, hardware designers should include sup-port for many ACL entries. Proper support for individualkeying in large networks demands many ACL entries.

Retain ACL List in Low Power Mode. As noted in Sec-tion 3.1.2, some hardware implementations may reset thecontents of the ACL list when entering low power mode.We advocate that the radio should retain the contents ofthe ACL and its associated security material even when inlow power mode.

Reserving a block of nonce values can help when power isremoved completely. The radio chip can reserve, for exam-ple, 256 nonce values at a time by writing the largest valueto the flash. After recovering from power loss, the radiochip uses the next larger block of nonce values than what isstored in the flash.

Expose Nonce for each Received Packet. The replay de-tection mechanism is not workable when a cryptographickey is between more than two nodes. The default ACL en-try poses problems for replay detection, because it is usedfor incoming packets from many sources but only has statefor a single counter in the ACL entry. This means that hard-ware replay detection, as specified, cannot be meaningfullybe applied to the default ACL entry. The radio chip shouldoffer support for applications to implement their own replaydetection when they need the functionality of the defaultACL entry with replay detection.

To support application level replay detection when usinggroup keys, the radio should expose the replay counter valuewhen signaling a packet’s arrival to higher layers. Currently,the incoming frame and key counter (recall their concate-nation is the replay counter) are stripped from incomingmessages so that higher layer applications are not aware ofthem. By exposing the replay counter value, applicationscould manage their own counter high water marks per eachsender. This allows the recipient to implement replay pro-tection when a key is shared among a group of nodes.

Eliminate Support for the AES-CTR Security Suite.Since AES-CTR is an unauthenticated suite, and since unau-thenticated suites have major weaknesses, we urge radio de-signers to leave this suite unimplemented. Fortunately the

Page 10: Security Considerations for IEEE 802.15.4 Networks

802.15.4 standard specifies that AES-CTR support is op-tional, so leaving it unimplemented will not endanger stan-dards compliance. Additionally, AES-CTR does not providesequential freshness, as the specification claims.

Removing support for the AES-CTR will prevent receiv-ing any messages sent with the AES-CTR security suite,which is perhaps undesirable when different vendors’ radiosneed to communicate. As a compromise, we suggest that ra-dio designers remove the capability for sending in the AES-CTR suite and advise users not to use the suite.

Leaving this unimplemented will help prevent misuse andattacks in the future.

4.3 Specification Writers

Warn against Dangerous ACL Configurations. The spec-ification should require radios to warn applications whenthey attempt to set up a dangerous ACL configuration. Thisincludes using two ACL entries with the same address, ormore worryingly two different addresses with the same key.It is a policy decision whether to even allow the latter casesince it leads to confidentiality violations so easily.

Better Support for Keying Models. As noted in Sections 3.1.1and 3.2.1, 802.15.4 is most suited to the pairwise key model.We advocate changes in the specification to more easilysupport different keying models. For example, decouplingnonce storage (used for sending packets) from replay coun-ters (used to receive packets) can better support the otherkeying models we mentioned.

Remove support for the AES-CTR Suite. We recommendthat the specification writers eliminate the possibility of us-ing the AES-CTR security suite. It is the only unauthen-ticated mode of operation, leading to application protocollevel vulnerabilities. Additionally, replay protection is notsecure with this suite. We do not think that it should be apart of the specification.

Support Authenticated Acknowledgments. We recommendthat specification writers add the option of authenticatedacknowledgments. These acknowledgments would only bepossible to generate by a node that shares a cryptographickey with the sender.

For example, instead of including the 1 byte sequencenumber from the original packet, the recipient can use a 4 or8 byte MAC over a buffer comprised of the received packetand its own address. The sender computes this MAC valuebefore sending the packet and saves it. The sender thencompares the stored value with the value in the acknowledg-ment packet. It only accepts the acknowledgment as validif it receives the expected MAC value; an adversary cannotcompute the MAC value since it does not have access tothe data packet and the private cryptographic key that thesender shared with the recipient.

Eliminate difference between Key and Frame Counter.Finally, as a nomenclature suggestion, we would advocateremoving the distinction between the key and frame counterand let the hardware manage the entire counter. If the userwants to continue using the key after losing the nonce state,they will need to store at least the key counter. However, to

effectively use the nonce space, the application should alsostore the frame counter as well. Not saving the nonce state,then, only permits 255 losses of power.

By eliminating the distinction between the key and framecounter, no functionality is lost, while simplifying the speci-fication and use of the security package: the application doesnot need to include special logic to periodically incrementthe key counter.

5. CONCLUSIONWe have outlined a number of problems and pitfalls when

using the 802.15.4 specification. These problems can lead toundetected security vulnerabilities in deployed applications.

Despite the presence of these defects, the 802.15.4 securityarchitecture is sound. It includes many well designed secu-rity features and presents a step forward for embedded de-vice wireless security. Proper use of the security API, withan awareness of its subtleties, can lead to secure applica-tions. We have suggested ways that application developers,radio designers, and specification writers can work aroundor remedy the problems we have described.

6. ACKNOWLEDGMENTSRob Johnson, Chris Karlof, and Joe Polastre provided

invaluable feedback on earlier drafts of this work.

7. REFERENCES[1] Zigbee alliance. http://www.zigbee.org.

[2] Weak crc allows packet injection into ssh sessionsencrypted with block ciphers. Computer EmergencyResponse Team (CERT), June 1998. VU 13877.

[3] Smart buildings admit their faults. Lab Notes:Research from the College of Engineering, UCBerkeley, http://www.coe.berkeley.edu/labnotes/1101smartbuildings.html, November 2001.

[4] Weak crc allows last block of idea-encrypted sshpacket to be changed without notice. ComputerEmergency Response Team (CERT), January 2001.VU 315308.

[5] Weak crc allows rc4 encrypted ssh1 packets to bemodified without notice. Computer EmergencyResponse Team (CERT), January 2001. VU 25309.

[6] Wireless medium access control and physical layerspecifications for low-rate wireless personal areanetworks. IEEE Standard, 802.15.4-2003, May 2003.ISBN 0-7381-3677-5.

[7] Atmel at86rf210 z-link transceiver data sheet.http://www.atmel.com/dyn/resources/prod_

documents/doc5033.pdf, 2004.

[8] Chipcon cc2420 data sheet. http://www.chipcon.com/files/CC2420_Data_Sheet_1_1.pdf, 2004.

[9] Motorola mc13192 datasheet.http://e-www.motorola.com/files/rf_if/doc/

data_sheet/MC13192DS.pdf, 2004.

[10] M. Bellare, A. Desai, E. Jokipii, and P. Rogaway. Aconcrete security treatment of symmetric encryption:Analysis of the DES modes of operation. InProceedings of 38th Annual Symposium onFoundations of Computer Science (FOCS 97), 1997.

[11] Mihir Bellare, Joe Kilian, and Phillip Rogaway. TheSecurity of the Cipher Block Chaining Message

Page 11: Security Considerations for IEEE 802.15.4 Networks

Authentication Code. Journal of Computer andSystem Sciences, 61(3):362–399, December 2000.

[12] Steven M. Bellovin. Problem areas for the IP securityprotocols. In Proceedings of the Sixth Usenix UNIXSecurity Symposium, 1996.

[13] Nikita Borisov, Ian Goldberg, and David Wagner.Intercepting mobile communications: The insecurityof 802.11. In MOBICOM, 2001.

[14] G.L. Duckworth, D.C. Gilbert, and J.E. Barger.Acoustic counter-sniper system. In SPIE InternationalSymposium on Enabling Technologies for LawEnforcement and Security.

[15] V. Rijmen J. Daemen. The Block Cipher Rijndael. InJ.-J. Quisquater and B. Schneier, editors, Smart CardResearch and Applications, LNCS 1820, pages288–296. Springer-Verlag, 2000.

[16] Alan Mainwaring, Joseph Polastre, Robert Szewczyk,and David Culler. Wireless sensor networks for habitatmonitoring. In First ACM International Workshop onWireless Sensor Networks and Applications, 2002.

[17] Robert Szewczyk, Joseph Polastre, Alan Mainwaring,and David Culler. Lessons from a sensor networkexpedition. In First European Workshop on WirelessSensor Networks (EWSN ’04), January 2004.

[18] Matt Welsh, Dan Myung, Mark Gaynor, and SteveMoulton. Resuscitation monitoring with a wirelesssensor network. Supplement to Circulation: Journal ofthe American Heart Association, October 2003.

[19] D. Whiting, R. Housley, and N. Ferguson. Counterwith cbc-mac (ccm). RFC 3610, September 2003.