Lab 1 Broadcast authentication in wireless sensor networks
Due by 11/5/10 11:45pm
The lab exercises will use the WiSeNeT sensor network testbed. Each team is assigned four sensor nodes. Pick one as the sender, and the other three as receivers. Each team is given a working directory, in which there are some files to be used as the starting point.
There are four tasks, as shown below. Create a subdirectory for each of them. Name them warmup, lab_1a, lab_1b, and lab_1c, respectively. You are expected to work in the corresponding subdirectory for each lab task. In the following task description, we assume your programs are in the right directory.
- Each team should have 1--2 students. You are encouraged to work with another student in a team, though you can work on these by yourself.
- Lab teams will be posted here.
Accessing the testbed
- Please ssh to testbed gateway as gID@126.96.36.199 (e.g. firstname.lastname@example.org)
- cd SimpleSenderReceiver/
- Read README file to get detailed instructions about the initial exercise.
- For each group, the channel and nodes that they will operate on are defined at the end of instructions in
the README file.
Name the sender's source files are sender-warmup.nc and sender-warmup.M, and the receiver's source files as receiver-warmup.nc and receiver-warmup.M.
Build the image for the sender and the receivers, respectively. Upload the sender image to the sender node, and the receiver image to all three receivers. Record the output of the sender and all three receivers.
Name the sender's source files are sender-lab1a.nc and sender-lab1a.M, and the receiver's source files as receiver-lab1a.nc and receiver-lab1a.M.
Generate a random key k. On the sender side, add a Hash-based Message Authentication Code (HMAC) generated using SHA-1 with key k to each broadcast message sent by the sender. On the receiver side, verify the HMAC in each message received by the receiver. Count the number of successfully authenticated packets and output the number.
Name the sender's source files are sender-lab1b.nc and sender-lab1b.M, and the receiver's source files as receiver-lab1b.nc and receiver-lab1b.M.
Generate a pair of public key and private key using TinyECC offline. Give the private key to the sender and the public key to each receiver. On the sender side, add an ECDSA signature generated with the private key to each broadcast packet. On the receiver side, verify the signature in each received packet. Count and output the number of successfully authenticated packets.
Name the sender's source files are sender-lab1c.nc and sender-lab1c.M, and the receiver's source files as receiver-lab1c.nc and receiver-lab1c.M.
Continue lab 1b. On the sender side, add a Message Specific Puzzle (MSP) to each signed broadcast packet. On the reciver side, verify the MSP before verifying the signature. Count and output the number of packets that pass MSP as well as the number of pakcets that pass the signature verification.
Submit a report describing the details of your experiments. You should include the following items:
- Team ID and names of team members
- IP addresses of the four sensor nodes assigned to your team. Identify which one is used as the sender.
- For each task, including the warmup exercise, describe the following:
- Sender's source code
- Receiver's source code
- Makefile used to generate and upload the images
- Commandline used to make the images
- Debugging output from the sender (obtained through telnet)
- Debugging output from each receiver (obtained through telnet)