The OpticSpy modules provide a platform to explore, evaluate, and experiment with optical data transmissions. They capture, amplify, and convert optical signals into digital form that can be analyzed or decoded with a computer.
All designs are distributed under a Creative Commons Attribution-3.0 United States license.
OpticSpy Analog (Crowd Supply)
- Product Page
- Technical Manual
- Schematic
- Bill-of-Materials
- Assembly Drawing
- PCB: Gerber Plots and OSH Park
- Test Procedure
- Campaign Video (Vimeo)
- 3D Model: Photodiode Housing by Thomas Flummer (Thingiverse)
- 3D Model: OpticSpy Case by EtTuRoot (Thingiverse)
OpticSpy Analog (Kit Version)
OpticSpy Digital (Kit Version)
- Schematic
- Bill-of-Materials
- Assembly Drawing
- PCB: Gerber Plots and OSH Park
- Video (YouTube)
Laser Diode Module Driver
microSD-to-Serial Interface
- Block Diagram
- Schematic
- Bill-of-Materials
- PCB: Gerber Plots and OSH Park
- Source Code: Arduino
Arduino
Using an Arduino Uno with external LED to send a secret message via optical covert channel.
Parallax Propeller
Using the Propeller-based Hackable Electronic Badge to send a secret message via infrared LED. The LCD displays the message being transmitted.
- Source Code
- Video (YouTube)
Tomu
Using Tomu's red LED to send a secret message via optical covert channel.
- Source Code and Prebuilt DFU Image (Interactive mode to set/clear message, cross compiled with GNU Arm Embedded Toolchain) (GitHub)
- Source Code (Hard-coded message, cross compiled with Silicon Labs' EFM32 Happy Gecko SDK patched for Tomu)
TP-link TL-WR841N
Using the router's WAN LED to exfiltrate data via optical covert channel. As a proof-of-concept, the payload is loaded onto the device with known administrator credentials.
- Source Code (Cross compiled with dd-wrt's toolchain-mips_24kc_gcc-7.2.0_musl)
- Video: Preliminary testing (YouTube)
- Video: Exfiltrating /etc/passwd (YouTube)
MacBook Pro Keyboard Backlight
Using the MacBook Pro's keyboard backlight LEDs as a proof-of-concept optical covert channel. OS X modulates the LEDs at 100Hz, 75% duty cycle, which prevents the use of a high data rate and presents a noticeable flicker when data is being sent.
- Source Code (Based on Nick Sweeting's mac-keyboard-brightness project)