A comprehensive system for analyzing SSL/TLS certificates, focusing on RSA key security analysis. This project can efficiently process millions of certificates from Certificate Transparency logs and other sources.
- Daoudi Amir Salah Eddine
- Heloui Youssef
- Baye Diop Cheikh
This project implements advanced cryptographic analysis tools to identify potential vulnerabilities in SSL/TLS certificates, with a particular focus on RSA key analysis. It can process certificates from various sources including Certificate Transparency logs and Let's Encrypt.
- Efficient asynchronous downloading from Certificate Transparency logs
- Advanced proxy rotation system to avoid rate limiting
- Automated proxy testing and validation
- Support for bulk certificate processing
- Intelligent sorting by key size and type
- Duplicate key detection across large datasets
- Advanced cryptographic analysis using Batch GCD
- Comprehensive CSV conversion for detailed analysis
- Non-RSA certificate filtering
.
├── CertificateAcquisition/
│ ├── AsyncDownload.py # High-performance certificate downloader
│ ├── NewProxyList.py # Dynamic proxy management system
│ ├── TestAllProxyList.py # Automated proxy validation
│ ├── getNewProxyList.py # Proxy list updater
│ └── Requirements.txt # Acquisition module dependencies
│
├── CertificateAnalysis/
│ ├── CERT by Size/ # Organized certificate storage
│ ├── DUPES/ # Duplicate certificates storage
│ ├── GCD/ # GCD analysis results
│ ├── CSV/ # Certificate data in CSV format
│ ├── RemoveNotRSA.py # Certificate type filter
│ ├── Sort.py # Multi-threaded certificate sorter
│ ├── certtocsv.py # Data conversion utility
│ ├── findDupes.py # Duplicate detection system
│ ├── findGCD.py # Cryptographic analysis tool
│ ├── run_analysis_only.sh # Standalone analysis script
│ └── Requirements.txt # Analysis module dependencies
│
└── projectGUI.sh # Interactive control interface
- Python 3.x (Tested on Python 3.10.2)
- Linux/Unix-based system or Windows with WSL
- Minimum 8GB RAM (16GB recommended for large datasets)
- Sufficient storage space for certificate processing
-
Clone the repository:
git clone [repository-url] cd [repository-name] -
Choose your execution method:
chmod +x projectGUI.sh ./projectGUI.sh
The GUI will automatically:
- Install required system packages
- Configure Python virtual environments
- Install Python dependencies
- Set up certificate storage
# Set up Certificate Acquisition environment cd CertificateAcquisition python -m venv . source bin/activate # or 'activate' on Windows pip install -r Requirements.txt deactivate # Set up Certificate Analysis environment cd ../CertificateAnalysis python -m venv . source bin/activate # or 'activate' on Windows pip install -r Requirements.txt deactivate
Run ./projectGUI.sh and follow the menu-driven interface to:
- Initialize the environment
- Update and validate proxy lists
- Download certificates in bulk
- Process and analyze certificates
- Generate analysis reports
For pre-downloaded certificates (already present in the folder, or unzipped from the cert by size zip file that we will provide, it contains the certificates downloaded during our project execution process):
cd CertificateAnalysis
chmod +x run_analysis_only.sh
./run_analysis_only.shExecute individual components directly:
# Certificate Acquisition
cd CertificateAcquisition
source bin/activate
python AsyncDownload.py
deactivate
# Certificate Analysis
cd ../CertificateAnalysis
source bin/activate
python Sort.py
python RemoveNotRSA.py
python certtocsv.py
python findDupes.py
python findGCD.py
deactivate- Implements asynchronous downloading using Python's
asyncio - Utilizes intelligent proxy rotation to avoid rate limiting
- Includes automatic retry mechanisms with exponential backoff
- Supports resumable downloads and checkpoint saving
- Employs efficient batch processing for large certificate sets
- Implements optimized GCD algorithms for key analysis
- Uses multi-threading for improved performance
- Provides detailed progress tracking and logging
- Organized directory structure for processed certificates
- Automatic backup of critical analysis results
- CSV export functionality for external analysis
- Efficient storage management for large datasets
Analysis results are organized in the following directories:
CertificateAnalysis/CERT by Size/: Sorted certificates by key sizeCertificateAnalysis/DUPES/: Identified duplicate certificatesCertificateAnalysis/GCD/: GCD analysis resultsCertificateAnalysis/CSV/: Generated CSV files for further analysis
This project is private, contact adaoudi@et.esiea.fr