Notable changes to this project will be tracked here. Additions, deprecations, etc. are described per version release.
Version 3.0.0, a preliminary release, is a major overhaul of the testbed. Most prominently, V2Verifier is now a C++ project. Several factors informed the change from Python to C++; most significantly, V2Verifier code now runs at speeds much closer to real V2V software and therefore more accurately reflects real-world performance (e.g., ECDSA verifications are performed) at a more realistic pace.
While we await bug fixes in third-pary software that our C-V2X transceiver relies on, we have temporarily removed C-V2X support. Please see the README for details. Version 3.0.1 will be released in the near future as a hotfix to restore C-V2X support.
- C++ implementations of all V2Verifier files.
- Support for GNURadio version 3.8
- V2Verifier is now a C++ project
- TkGUI is now a standalone utility included with the project that can be run alongside, but not as a direct part of, the main C++ code.
- C-V2X is temporarily not supported pending bug fixes in third-party source code that this project relies on.
- Sidelink communication (C-V2X) in V2Verifier based on the srsRAN project (issue #34) was fixed by srsRAN developers (see that project's issue #838).
- All Python-based versions of V2Verifier (<3.0) are no longer supported.
- GNURadio 3.7 is no longer supported.
- All Python (.py,.pyc) files except some utilities and GUI source files.
V2Verifier 2.0 introduced several major changes including support for C-V2X and additional IEEE 1609.2 features.
- Implicit certificate and certificate digest structures (see IEEE 1609.2 Section 6.4) are now included with V2Verifier messages. *Note that full cryptographic support for certificate generation and verification, including 1609.2 pseudonym generation and linkage, is not yet included but is currently under active development.
- A new, browser-based GUI (built with JavaScript as an Electron app) features a Google Maps integration and support for GNSS-based vehicle locations.
- This facilitates more realistic experiments
- Better suited to research activities than the existing Tkinter GUI (which remains suitable for instructional use)
- Real-time message generation and transmission replace pre-generated message queues in versions <= 1.1
- Compliant with IEEE 1609.2 Section 6.3.9 (regarding the
generationTime
field)
- Compliant with IEEE 1609.2 Section 6.3.9 (regarding the
- Support for receiving C-V2X messages from commercial off-the-shelf C-V2X devices (commit #b35898d)
- A fully functional C-V2X receiver (full SDR-to-SDR C-V2X support is in the final stages of development)
- Basic reputation tracking had been added. Vehicle reputation starts at a customizable value (default 1000) and degrades over time with security failures like signature verification failure or transmission of expired messages
- This is a starting point for evaluating reputation-based misbehavior detection systems
- The existing Tk-based GUI now features a "threat tracking" interface to allow at-a-glance understanding of vehicle location/motion information within a scenario
- Files and documentation to execute a message replay attack in DSRC are now included with the testbed code
- The project has been significantly restructured. V2Verifier can now be imported as a module, facilitating maximum portability and integration with other open-source projects.
- V2Verifier can now be run as pure simulation if access to software-defined radios is not available
- This is ideal for testing and development as well as in situations where equipment is limited
- V2Verifier no longer requires root permissions (i.e.,
sudo
-ing commands is no longer required) - Several instances of object-oriented design converted to straightforward functions, reducing system resource consumption and improving performance
- Socket communication between testbed components now uses TCP instead of UDP for more reliable (and faster) communication
- Resolve issue with GUI not launching that originated with Python 3.6/3.9 differences in keyword argument handling
- Verification failures due to dropping the leading zero in some ECDSA signatures have been resolved (commit #648b118)
- Scapy-based listeners are no longer supported and receivers based on this implementation may not work properly with the updated transmitter
- long-defunct unified DSRC flowgraph file has been removed
- a large number of files dating back to version 0.9, and long-since unused, have been removed
V2Verifier 1.1 was a minor update focused on cleaning up the code base and adding minimal support documentation, e.g., how to run the software.
- terminal interface and option to use console interaction instead of GUI during program execution
- loopback interface from GNURadio to facilitate experimentation and development without software-defined radios
- placeholders added for certificate structures to ensure realistic packet size
- README updated to add instructions for reactive jamming attack and clarify usage of the software in general
- Pre-specifying the number of packets to be sent during simulation (in the configuration file) is no longer required for accurate statistical reporting in GUI
- Tx/Rx flowgraph defaults adjusted to reduce need for end-user tinkering with SDR parameters. This significantly reduces the packet error rate at frequencies approaching 6 GHz, especially on less capable SDRs (e.g., USRP B210)
Nothing to report.
Nothing to report.
Nothing to report.
V2Verifier 1.0 was the first functional software release.
- Support for V2V communication between software-defined radios using IEEE 802.11p (DSRC) protocol
- Basic features of IEEE 1609.2 V2V security (for example, message signing and verification)
- A basic, Tk-based GUI
Nothing to report.
Nothing to report.
Nothing to report.
Nothing to report.