The two day software defined radio (SDR) workshop is an introduction to digital signal processing, software radio, and the powerful tools that enable the growing array of SDR projects within the hacker community. This course takes a unique “software radio for hackers” approach, building on the participants’ knowledge of computer programming and introducing them to the forefront of digital radio technology. Participants will learn how to transmit, receive, and analyze radio signals and will be prepared to use this knowledge in the research of wireless communication security.
Who should attend?
Anyone who has ever taken an interest wireless systems or signal processing. We teach a mixture of digital signal processing and RF theory, using the GNU Radio tools for demonstration and experimentation either individually or in groups. A background in software development and an interest in security are helpful but not required.
Agenda
Introduction to Software Defined Radio
- Overview of SDR
- What people have done with software radio in the hacker community
- GNU Radio architecture and what it includes
- What you can do in GNU Radio Companion vs. python vs. C++
- Capabilities of HackRF, rtl-sdr, and other SDR hardware platforms
Exercise: Finding a Signal
- Using GNU Radio to locate and receive a radio signal
- Signal analysis with Baudline
Complex vs. Real Signals
- How to think in the complex plane
- Why we use complex signals for software radio
Exercise: Working with Complex Signals (part 1)
Exercise: Working with Complex Signals (part 2)
- Exploring real and complex signals in GNU Radio Companion
Aliasing and Sampling Theory
- Introduction to sampling and aliasing
- Negative frequencies: what they mean in real vs. complex signals
- Importance of anti-aliasing filters
- The Nyquist criterion
Exercise: Transmission and Simulation
- Transmit a signal with GNU Radio
- Simulate both transmission and reception on a single computer
Exercise: Digital Filters
- Explore different types of filters in GNU Radio Companion
Bandwidth
- The term “bandwidth” and what it means in the context of radio communications
- Familiarity with the bandwidth of different wireless technologies
- Uses of filters
Exercise: Replay
- Attack an active RFID security device by capturing and replaying a signal
Modulation
- amplitude modulation
- frequency modulation
- phase modulation
- analog vs. digital modulations
Exercise: Modulation Identification
- Try to identify the type of modulation used in some sample transmissions
Reverse Engineering
- Using online resources
- Finding a signal with GNU Radio
- Signal analysis
- Determining signal characteristics (frequency, bandwidth, modulation, symbol rate)
Exercise: Reverse Engineering
- Investigate a device experimentally and/or online
Decoding Digital Signals
- Digital Modulations
- Synchronization
- Correlation
Exercise: Decoding
- Decode a digital radio transmission
The Discrete Fourier Transform
- Demystification of the most useful algorithm in signal processing
- The Fast Fourier Transform (FFT)
What should I bring?
Laptop
There are no minimum processing power or memory requirements but signal processing is an intensive application, so more of both is always useful. A native Linux installation is strongly recommended. High-Speed USB 2.0 is required.
Required Software
We’ll be working with the GNU Radio toolkit which is an open-source signal processing framework. In order to make the best use of workshop time, you should bring a working copy already installed. Detailed installation instructions and assistance will be provided by email prior to the workshop.
You should also install Baudline, a visual signal analysis tool.
Software Radio Peripheral
An rtl-sdr dongle will be provided to each student. This will be a unit that you can take home.
Devices
Anything with a radio that you think might be fun to work with or show off. Examples that people have brought in the past:
- Garage door remote controls
- Remote keyless entry devices
- Remote control toys
- Mobile phone jammers
- Amateur radio SDR equipment
Michael Ossmann is a wireless security researcher who makes hardware for hackers. He founded Great Scott Gadgets in an effort to put exciting, new tools into the hands of innovative people.
Twitter: @michaelossmann