Regular news stories about large scale hacking and government surveillance has a growing number of people stick tape on their webcams. But why is it that in 2017 a silly piece of tape is the only thing that can guarantee no one is watching us?
What we need is dedicated privacy hardware! Hardware can not be hacked at a distance, and if it's open source, a large community can guarantee that there are no back doors. The importance of protecting your data is not to be underestimated in a world where ever smarter AIs gather ever more data, and data itself becomes extremely valuable e.g. in the case of cryptocurrency.
The future vision of this project is that every device will need an isolated compute module that can store your cryptographic keys and control your data collection devices.
In this fun project we showcase the power of a hardware security module as a guardian for your privacy and sensitive data. Protect yourself against hackers, and expand your own hacking capabilities with an internal Arduino in your laptop. We show how to put a hard switch on your webcam and add an isolated compute module to your laptop.
What you need:
- A laptop with enough empty space (literally), preferably an empty drive bay. We used the HP Elitebook 2560P which is cheap and old but built like a tank.
- An arduino, without headers or bulky ports.
- 3d printing facilities.
- Soldering iron and basic tools and electronics supplies.
- Small rocker switch
- 40pin IDE connector and cable
- Slimline SATA connector
- The willingness to destroy your laptop.
Step 1: Open It Up
Often webcam cables are integrated into the video cable from the screen. The easiest way to intercept the power cable from the webcam is to do it near the webcam itself. For this you need to disassemble the screen.
Step 2: Cut the Green Wire
This is the tricky bit, webcam cables are not always colour coded the same way. So carefully measure the voltage on the webcam connector when the laptop is on. Try to identify each connection. We are looking for the 5 volts power cable. If you've found it you can intercept it, dismantle part of the bundle of wires and carefully cut it. In our case it was a greenish wire.
Step 3: Bypass the Power Cable
Once you have intercepted the webcam cable, make sure you test whether the webcam is successfully deactivated. Now you can solder your new power cable. Make sure you isolate all the joints so they don't short out. Next, test your power cable by connecting it to any 5v source on the laptop. Easiest thing is to plug it in an arduino's 5v port while having it connected to your laptop. Now test if the webcam works again. Warning, you may need to reboot the computer while having it plugged in because the BIOS needs to detect the webcam on startup.
Finally if you have it working, you can run your new cable through the body of the laptop to the drive bay.
Step 4: 3d Print Your Custom Drive Bay
You can design and 3d print a container for your hardware module and put as many switches, led's or I/O in there as you like. First get the measurements from your original drive and replicate them in a CAD program. We made it a few millimeters narrower to have a loose fit for the cables. We added a hard switch for the webcam and a 40pin IDE connector for our arduino I/O, which can be salvaged from old PCs.
Step 5: Modify the Arduino
De-solder the bulky I/O connectors and power connector off the Arduino to make it completely flat. We used a Leonardo which has a flat micro usb port. Next solder your I/O connector cable to the Arduino I/O ports, make sure you document which port is which for later, once it's in you laptop its impossible to see. We also soldered the usb data cables to the 40pin connector, so that we can program the Arduino externally. If you're brave enough you can also solder it directly to one of the laptop usb ports internally. However for now we used a SATA connector to supply the Arduino with power directly from the drive bay's SATA port. Beware that its a smaller type than your hard-drive SATA.
Step 6: Assembly
Glue or tape in place loose parts and cables. Make sure you test everything first. If everything works, which it probably won't the first time. Congratulations you can now assemble everything and install the module in your laptop. In our case the SATA connector keeps the unit in place well enough, but if not, you can add some screws or tape to keep it in place inside your laptop. Just make sure you don't screw through your motherboard!
Step 7: Expand Your Capabilities!
The future vision is that the Arduino as an isolated compute module that could for instance store your cryptographic keys and control your data collection devices.
However for the DIY' ers out there:
Think of the possibilities the internal Arduino opens up! You can now directly plug LED's, switches, (small) actuators and breadboards into your laptop! The downside, you need enough empty space in your laptop, literally space, for this the rarely used drive bay is perfect. But maybe we can make it fit in smaller spaces in the future, or maybe it can be an external add-on.