Skip to content

MMw-Unibo/DIVA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DIVA

This repository provides the code of the outlier detection algorithm outlined in the paper DIVA: A DID-based Reputation System for Secure Transmission in VANETs using IOTA.

Abstract Today's advancement in Vehicular Ad-hoc Networks (VANET) constitutes a cornerstone in ensuring traffic safety in Intelligent Transportation Systems (ITS). In this context, vehicle-to-vehicle (V2V) communications are a pivotal enabler for road safety, traffic optimization, and pedestrian protection. However, V2V communications lack effective and efficient security solutions that can adequately ensure the trustworthiness of the source of the transmitted content. In this work, we originally propose DIVA, i.e., a Decentralized Identifier-based reputation system for secure transmission in VAnets. In particular, we claim the suitability of utilizing IOTA, a Direct Acyclic Graph (DAG)-based ledger, to securely store reputation scores and of leveraging Decentralized Identifiers (DIDs) to identify participating vehicles. DIVA also incorporates and implements a reputation algorithm that computes reputation scores by analyzing both safety and non-safety messages, exchanged among vehicles and Road Side Units (RSUs) in compliance with the related European Telecommunications Standards Institute (ETSI) standards. Thus, DIVA is able to effectively identify malicious contributors and decrease their reputation scores. The reported experimental results clearly show the feasibility and effectiveness of DIVA, by working on an extended and comprehensive dataset of realistic V2V messages; the dataset has been made openly accessible to the research community, also to increase result reproducibility.

Code DOI

DOI

Python Scripts

The directory reputation_algorithm contains three python files:

v2v.py
vehicle_client.py
threshold_utils.py
  • v2v.py provides the algorithm that computes the reputations. These will be assigned to each vehicle sources belonging to a VANET.

  • vehicle_client.py uses the reputations computed by v2v.py to determine the trustworthiness of a given message.

  • threshold_utils.py is an utility file containing default thresholds used in v2v.py

How to run

The initial script that should be run is v2v.py, containing the implementation of the algorithm computing the reputations of each vehicle. The computation of these reputations is achieved through the analysis of a dataset providing V2X communications data adhering to the ETSI standard, which is accessible here. The script utilizes an initial set of reputations, as the one provided here, and a coverage area defining the geographical area managed by an edge node.

The script is highly configurable for precise tuning of various parameters to accommodate diverse edge node locations.

The available options are listen below:

  -h, --help            show this help message and exit
  -wc <time in secs>, --time_window_cam <time in secs>
                        time used for CAM sampling during DENM evaluation
  -wd <time in secs>, --time_window_denm <time in secs>
                        time used for reputation score computation (collection of similar DENM)
  -c <geojson file path>, --coverage <geojson file path>
                        geojson file defining the coverage of the edge node
  -a <value>, --alfa <value>
                        alfa value for new reputation computation (old reputation)
  -b <value>, --beta <value>
                        beta value for new reputation computation (reputation factor)
  -dd <den dataset location>, --denmdataset <den dataset location>
                        denm dataset path
  -dc <cam dataset location>, --camdataset <cam dataset location>
                        cam dataset path
  -r <initial reputation dataset location>, --reputation <initial reputation dataset location>
                        initial reputation path
  -s <simulation start time>, --startTime <simulation start time>
                        simulation start time (check omnetpp.ini) file
  -l <loglevel>, --logger <loglevel>
                        logging level
  -t, --test_beta       updates the reputation for different beta values (0, 1, 0.01)
  -tr THRESHOLDS_TYPE, --thresholds_type THRESHOLDS_TYPE
                        type of threshold to be used (mean, mode, median, 90percentile)
  -o OUT_FOLDER, --out_folder OUT_FOLDER
                        where to store the new reputations
  -ds <default score>, --defaultScore <default score>
                        default score for reputations calculation
  -wr <weight RSU>, --weightRsu <weight RSU>
                        weight of RSU coherency
  -wm <weight message coherency>, --weightMsg <weight message coherency>
                        weight of message coherency

The script vehicle_client.py processes vehicle messages and assesses the reliability of the available information by leveraging the reputations generated in the previous script.

Examples of how to run these scripts are provided in the examples folder.

How To Cite

If you use this software or part of it for your research, cite our work: Feraudo, A., Romandini, N., Mazzocca, C., Montanari, R., & Bellavista, P. (2024). DIVA: A DID-based reputation system for secure transmission in VANETs using IOTA. Computer Networks, 110332. doi: https://doi.org/10.1016/j.comnet.2024.110332

About

DIVA: A DID-based Reputation System for Secure Transmission in VANETs using IOTA

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages