14-814: Wireless Network Security

14-814/18-637: Wireless Network Security - Spring 2016



Assignment #3 - Implementing MAC Layer Misbehaviors

Assigned: February 11
Due: March 3

Description: The goal of this assignment is to modify the IEEE 802.11 MAC layer code in OMNET++ to include various options for MAC layer misbehavior into your existing WiFi network simulation setup. The assignment has three primary components 1) familiarize yourself with the WiFi MAC implementation in OMNET++, 2) demonstrate your understanding of MAC layer misbehavior, and 3) come up with interesting new forms of MAC misbehavior. As with the previous assignments, we highly recommend that you start working on the tasks as soon as possible.

Tasks:
  1. Backup some Files! - Since you're about to modify important files in INET, it would be good to make a backup copy. As you progress, please create backup copies of any .cc, .h, and .ned files in INET before you change them...just in case.
  2. Modify the WiFi MAC - Directly modify the 802.11 MAC implementation included in INET to allow for cheating and misbehavior at the MAC layer, without breaking the native functionality of the WiFi MAC. To do this, define a new variable cheatType in inet/src/linklayer/ieee80211/mac/Ieee80211MAC.h and the corresponding .cc file, then modify the logic in the .cc file such that
    • the default behavior is used when cheatType = 0,
    • the client sets a backoff value of 0 when cheatType = 1, and
    • the client uses 1/2 the normal contention window size (i.e., replace CW with CW/2) when cheatType = 2.
    Create a new network setup that allows you to specify (1) the total number of WiFi clients, (2) the number of these clients that misbehave, and (3) which type of misbehavior they use, all configurable through the .ini file, for example using statements like
    **.cliHost[0].wlan.mac.cheatType = 1
    **.cliHost[1].wlan.mac.cheatType = 2
    Simulate a WiFi network with 4 clients using various combinations of cheaters, collect some data, and create some interesting plots.
  3. Extend your Misbehavior Profile - Building on the material discussed in class, implement another form of MAC misbehavior by creating another behavior under cheatType = 3. Repeat your simulation above and create some interesting plots showing the differences among misbehavior types.
  4. Think about Detection - Collect and visualize some data that, from the perspective of the WiFi access point or controller, could be useful in detecting the various forms of cheating. Note that some forms of cheating are easier to detect than others, so try to find a few different measurement types that enable misbehavior detection. You don't have to actually implement the detector, just show the data trends that can differentiate cheating from compliance.

Deliverables: Each student will submit a written summary of their efforts in the above tasks, including the following:
  • A brief description of what you did to fulfill each task, including details of the changes made to the .h/.cc code and any other changes needed,
  • Properly labeled and easy-to-understand plots created in each task, and
  • Detailed descriptions of the results of each study, and any conclusions you reached in your experimentation.
The written report should be formatted according to the IEEE conference proceedings template, using either Microsoft Word or LaTeX, and converted to a .pdf document.

Submission Instructions: Each student should submit a .pdf version of their written summary via Blackboard, using the format requested above. All students are expected to complete the assignment on their own; discussion about the assignment is allowed and encouraged, but the writing and coding should be done individually.

Grading: This assignment is worth 35 points: 18 points for task 1; 10 points for task 2; and 7 points for task 3. We reserve the right to take off points for presentation aspects, e.g., incorrect format, poor writing, etc.