Skip to content

Used in fingerprinting RF Signals, Multiple papers are implemented here all credits of the research goes to the authors who conducted the research. Created for Sainya Ranakshetram Hackathon.

Notifications You must be signed in to change notification settings

thesunRider/rfmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

icon

RFMap

Hackathon Status GitHub Issues GitHub Pull Requests License


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.

📝 Table of Contents

RECOMMENDED

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.

🧐 Problem Statement

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.

💡 Idea and Implementation

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:

  1. Capture
  2. Database
  3. 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:

  1. Similarity Based IQ CNN Classifier Here we compare similar IQ samples and fingerprint them based on their difference in phase
  2. 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.
  3. 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.

⛓️ Objectives Achieved

  • 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.

🚀 Future Scope

  • 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.

🏁 Getting Started

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.

Prerequisites

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.

🎈 Usage

The package can be started by running:

cd gui/
python3 main.py

1.png 2.png 3.png 4.png 5.png

✅ Tested on

Windows 10 Home ver: 10.0.19044 Build:19044 Kali Linux ver: 6.0.0.1-amd-64

Tested as of 30-12-2022

⛏️ Built With

✍️ Authors

🎉 Acknowledgments

🎓 References

About

Used in fingerprinting RF Signals, Multiple papers are implemented here all credits of the research goes to the authors who conducted the research. Created for Sainya Ranakshetram Hackathon.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published