This is the source code used in the research paper 'Robust open-set classification for encrypted traffic fingerprinting', published in Computer Networks (2023).
This work evaluates several open-set classification methods on five network traffic fingerprinting datasets.
Datasets:
- AWF: https://github.com/DistriNet/DLWF
- DF: https://github.com/deep-fingerprinting/df
- DC: https://research.csiro.au/isp/research/network-measurement-modelling/deep-bypass/
- SETA: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9444314 (Contact authors for the dataset)
- IOT: https://github.com/SmartHomePrivacyProject/DeepVCFingerprinting (Google Home)
Underlying CNN models:
- AWF and DF datasets: CNN model from https://github.com/deep-fingerprinting/df
- DC: CNN model from https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8548317
- SETA: CNN model defined in this code repo
- IOT: CNN model from https://github.com/SmartHomePrivacyProject/DeepVCFingerprinting (sample represented with both size and direction)
Dataset splits (for datasets without explicit open set) can be found in the folder Dataset_splits
The code used for Softmax thresholding is in OpenMax/'Dataset name'/closed/open_softmax_thresh.py
All methods except CAC are implemented using Tensorflow/Keras, while CAC uses Pytorch (the code used is taken from the original work).
Please find the code of the kLND method and other methods in the Experiments folder. Make sure you download and place the datasets in relevant places.
We believe that quantized traffic fingerprinting is very useful for future forensic studies as the number of edge devices increase exponentially. Many of these devices doesn't support floating point arithmetic. Therefore, to deploy ML based security applications, we have to use quantization which is quite challenging when it comes to the open-world problem. So, exploring more on this topic is important.