Coder Social home page Coder Social logo

auto-phy-fingerprint's Introduction

Automatic PHY-layer Fingerprinting

This project implements an end-to-end system for automatic fingerprinting of transmitters at the physical layer, incorporating capture, demodulation, model training, fingerprinting, fingerprint tracking and visualisation.

The project underpins work to study the usefulness of machine-learning techniques in device fingerprinting. Fingerprint derivation is typically a costly, manual task and can vary noticeably between technologies and scenarios. There is also an inherent tension between deriving fingerprinting methods which are robust and generalisable vs. taking full advantage of specifics in a given scenario to enhance performance. The goal of this work is to reduce the need for human analysis in deriving fingerprints.

The system is built on a modular framework to permit simple variation at each stage.

At present the framework is validated with two concrete examples, developed for this project:

  • 1090 MHz ADS-B traffic, received over-the-air
  • RS-485 Serial traffic, received via cabling

Architecture

The system comprises several components:

Component Description
Signal Capture Retrieval of a raw signal. Compatible with either software radio frameworks (e.g., GNURadio) or other digital capture (e.g., storage oscilloscopes).
Demodulation Interface to 3rd party demodulation code for message validation and data extraction.
Identifier Masking A pre-processing stage to remove in-message identifiers, which lead to trivial solutions
Fingerprint Extraction and Comparison A Siamese network model used to derive comparisons between received messages across observed transmitters.
Message Verification Long-term tracking of message fingerprint comparisons and identity verification

In addition to the main pipeline, some additional components are implemented to help study the data:

Component Description
Storage Storage components receive bursts and write them to files for offline processing (e.g. model training). At present there are two storage components: one writing bursts to an HDF5 file, one writing decoded messages to an SQLite3 database.
Visualisation Visualisations to show live performance. A message verification visualisation is implemented for the ADS-B case, in which messages and their verification status are displayed, alongside a map of their claimed positions.
Supporting (Weather) A supporting component retrieves and stores data on local weather conditions.

Data transfer between stages is principally through ZMQ message queues in a PUB/SUB pattern. Each part of the pipeline outputs received bursts, along with appropriate metadata, and forwards them to all subscribers. Alternatively, data can be written to files at each stage, for offline processing. However the streaming model is preferred, both for architectural convenience when splitting across containers/hosts and to support long-running, live uses in which stopping and outputting a file is cumbersome. As such, the file-based method is considered deprecated.

Installation

Dependencies

On host:

Included within containers:

Process

  1. Clone and build base GNURadio images

    1. git clone https://github.com/ssloxford/docker-gnuradio
    2. cd docker-gnuradio
    3. ./build_all.sh
  2. git clone --recursive https://github.com/ssloxford/auto-phy-fingerprint

  3. Create directory auto-phy-fingerprint-mountdir

  4. If using GPU resources, add a suitable deploy.resources section to docker-compose.yml

  5. docker-compose up -d

  6. Check for files appearing in auto-phy-fingerprint-mountdir and accessibility of the visualisation service on port 5006

Case Studies

Two case studies exist at present: one for ADS-B and one for RS-485. Please see each link for details.

Acknowledgements

This project is supported by InnovateUK under the HICLASS project.

auto-phy-fingerprint's People

Contributors

jsmailes avatar rb-sdr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.