Part II: Testing
In the first part of this post I covered the basic steps I took to conceal an Alfa AWUS036H in an HDD enclosure. In this part I’ll cover the basic testing I did to see how that impacted its performance, as well as the results of those tests.
The diversity of wireless cards, drivers, and programs can make it difficult to get honest comparisons between cards. Different programs that provide feedback on wireless devices provide little insight into how their data is gathered, and different driver sets may report statistics differently. For this modification, I tested the card (1) before making any changes; (2) after soldering the antenna lead to the PCB, and; (3) after it was fully assembled in the HDD enclosure.
Throughout the tests I changed as few variables as reasonably possible, carefully avoided solar flares, and gathered the data while I was away from the computer, because even subtle movements around the card can produce significant variations in signal level.
Since my anechoic chamber is being fumigated, I simply tested the card using the built-in pseudo file /proc/net/wireless which reports link quality (signal quality) and level (signal level) from the Linux kernel (I’m using Kali Linux version 1.0.9). /proc/net/wireless also has the ability to report noise, but this isn’t supported by the RTL8187 driver. Remember that you’ll need to be associated to a network for this to work. The 802.11 protocol provides no built-in means for testing signal quality with an unassociated network, as that would be a waste of resources.
I set up an open WAP for testing and turned the power down to ensure that I would be able to see the effects of my modifications. Furthermore, though I didn’t expect to see much consistent difference, I tested the card in its three stages on channels 1, 6, and 11, the non-overlapping 2.4 GHz channels.
Rather than run “cat /proc/net/wireless” repeatedly or “watch –n X cat /proc/net/wireless” and try to remember the differences, I wrote and used the script below. It interrogates /proc/net/wireless once every second for X seconds and then averages the results, also providing the low and high values from the sample. It could certainly be improved – for example, it would be more informative to take an average of the data points after excluding outliers. I am a novice bash scripter, and welcome any feedback or advice.
As expected, there are noticeable hits to signal status (quality) and level (strength). Obviously placing the antenna and transceiver in a metal box affected both these values. Furthermore, after the modification the antenna, though shielded, is right next to the PCB and exposed to more noise. Likewise, I ended up having to jump the antenna lead to the PCB, which I believe caused additional degradation in the quality. Below are the averages from the testing:
|
Quality / Level |
Channel |
Pre-Modifcation |
During Modification |
Post-Modification |
|
Average Quality |
Channel 1 | 66 | 62 | 49 |
|
Average Level |
-43 | -47 | -60 | |
|
Average Quality |
Channel 6 |
66 | 62 | 47 |
|
Average Level |
-41 | -47 | -62 | |
|
Average Quality |
Channel 11 |
67 | 58 | 44 |
|
Average Level |
-42 | -51 | -65 |
Working from the averages we see a reduction of 17 dBm on channel 1, 21 dBm on channel 6, and 23 dBm on channel 11. Remember from Patchwork’s post a couple months back that dBm is a logarithmic unit of measure. A loss of 10 dBm is approximately 10 times weaker, and a loss of 3 dBm means the signal strength is approximately halved. So this is a significant hit, but it’s still well within the card’s ability to communicate in this range. It is also worth noting that despite the drop, I was able to perform basic aircrack-ng actions such as packet injection and WEP attacks without noticing any issues as compared to before the modifications.
Also don’t neglect polarity – if the enclosure is sitting flat on the table, then the antenna is on a horizontal axis. If you get better receive quality and strength on a vertical axis, Velcro the enclosure to the back of your laptop’s screen.
This modification was performed with materials on-hand with no specific objective. Had there been a specific objective, I could have attempted to determine minimum performance requirements and design a modification around those. The obvious point is that modifying your wireless card will impact its performance, and that’s something you need to account for throughout the design. Thanks for reading.
