Software helping in Fingerprinting RF Signals, the software works leveraging modern AI methods to classify and analyse RF (Radio Frequency) signals.
The package is written modular so as to be able to add new AI 'plugins' into the package's classification methods. All Research credits goes to the authors who created the implemented AI papers.
It is better to clone github link for latest release,as this is not the bleeding edge repo, Please raise installation/usage issues at github.
Every radio signal transmission can be uniquely characterized due to randomness inmanufacturing process, origin and type of components etc. This process of radiofingerprinting is a process that identifies any other radio transmitter by the "fingerprint"that characterizes its signal transmission and is hard to imitate. An electronicfingerprint makes it possible to identify a wireless device by its radio transmissioncharacteristics. Radio fingerprinting is commonly used to prevent cloning.
Identifying from which device a signal originates is the key to authenticating wit the said device. In modern days the security measures implemented on the software layer are easily spoofed using various cyber profiling mechanics. All the techniques involved in recognizing the source device happens at the software layer,which can be manipulated by third party to create counterfeit devices. Thus a technology to recognize devices at a hardware level is required. The technology should be able to detect unique electronic hardware features of the source device and should be able to classify it accordingly.
The Implemented software is able to classify and create hardware related fingerprints of device RF traffic from an existing group of pre recognized transmitters.
RF Fingerprinting is the key to reducing the chances of counterfeit authentication of devices. This will help in creating secure communication channels.
RF Fingerprintng was implemented by analysing hardware imperfections of the transmitter and classifying them, We were able to predict IQ imbalances of different transmitters with an accuracy of 92%.
Since the package was made to be modular (Plugin type architecture) three classifiers were added to the package to fingerprint transmitters. Adding further classifiers would be very easy due to the programming architecture.
The application Itself consists of three sections:
- Capture
- Database
- Analysis
The Capture section is able to directly interface with SDR's (Software Defined Radio) to gather IQ samples or can open IQ samples captured to sigmf-files. This captured data is saved to the package's database. This database of captures can be viewed and edited from the Database section,furthermore from here we load the data to the memory that we need to analyse. The Analysis section consists of all the Classifier plugins, here you give the starting and ending indexes of the data that you wanted to analyse. And the probabilities of prediction will appear as a bar chart on this section,based on the bar chart a unique fingerprint will be generated for the data under study.
We have implemented 3 Classifier plugins for the package:
- Similarity Based IQ CNN Classifier Here we compare similar IQ samples and fingerprint them based on their difference in phase
- SVM Based IQ Fingerprinting. (Has to Generate DOCS,please refer paper,Implemented) In this we extract the fingerprint of the transmitter by applying autocorrelation to the signal and generating a unique fingerprint of the signal.
- CNN Based Modulation Recognition. (Has to Generate DOCS,please refer paper,Implemented on application) Similar to 1. We analyse the similarity of signals to determine in which modulation class does a new signal belong to.
Please take a look at the notes of the Classifers to learn more. Each classifier is able to generate a unique fingerprint for a device under study, the fingerprint generation is as follows:
Suppose there are x labelled predictions of the classifier, a weighted hexadecimal shift of all the predicted possibilities rounded to the nearest one's position is generated.
ie. if the predicted probabilities are P = [1,53,25,18,3]
Sum(P) = 100
new_P = round P to nearest 5
-> new_P = [0,50,25,20,0]
Convert Each element of P to hexadecimal and append the string together
fingerprint_array = [0x0,0x32,0x19,0x14,0x00]
We shift these bits in groups,thus the generated fingerprint is:
fingerprint = 0032191400
For generating additional datasets , Earth Movers distance algorithm was employed to generate data with gaussian noise under a threshold.
- Create an Application that can identify and classify RF signals based on hardware imperfections < Problem Statement >
- Store Fingerprints in database with timestamp < Problem Statement >
- Load IQ samples from files
- Platform Independent GUI, and package Installation
- Implement CNN based IQ Classifier
- Implement CNN based Modulation Classifier
- Implement SVM based IQ classifier (Implemented Jupiter Notebooks)
All the core problem statement needs have been implemented.
- Directly Interface application with SDR
- Train classifiers within Application itself
- Detailed passive Analysis on captured RF Signal
- Implement Repeating Preamble Extractor
- Combine Multiple classification Fingerprints into single unique fingerprint
- GUI Improvements for Analysis progress monitoring
- Dockerise Application
Due to modular architecture additional features can be implemented easily.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See Usage on how to start using the package.
The package requires Python 3.8.5 or above, For installing dependencies:
pip3 install -r requirements.txt
Since the app runs on Tkinter for GUI ,and the dependencies are platform independent ,the package can run cross platform.
A GPU is required for the AI classifers.
The package can be started by running:
cd gui/
python3 main.py
Windows 10 Home ver: 10.0.19044 Build:19044 Kali Linux ver: 6.0.0.1-amd-64
Tested as of 30-12-2022
- Tensorflow - AI
- Tkinter - GUI Framework
- h5py - SDR API and HDF5 interface
- @thesunRider - Idea & Initial work
- Aswin vishnu - AI models, Dataset filtering
- Radio Frequency Fingerprint Extraction of Radio Emitter Based on I/Q Imbalance
- ORACLE: Optimized Radio clAssification through Convolutional neuraL nEtworks
- K. Sankhe, M. Belgiovine,F. Zhou, L. Angioloni, F. Restuccia, S. D’Oro, T. Melodia, S. Ioannidis, and K. R. Chowdhury, "No Radio Left Behind: Radio Fingerprinting Through Deep Learning of Physical-Layer Hardware Impairments,” IEEE Transactions on Cognitive Communications and Networking, Special Issue on Evolution of Cognitive Radio to AI-enabled Radio and Networks, 2019.
- Convolutional Radio Modulation RecognitionNetworks
- arXiv:2201.00680v3 [cs.LG] 6 Sep 2022