tlsferret-0.1.0 is not a library.
TLSferret
A fast and comprehensive SSL/TLS scanner written in Rust, inspired by rbsec/sslscan.
TLSferret combines the security of modern rustls
with the compatibility of native-tls
to provide thorough SSL/TLS analysis across all protocol versions.
🚀 Features
Protocol Support
- Complete SSL/TLS Coverage: SSLv2, SSLv3, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
- Dual TLS Engine: rustls for modern protocols + native-tls for legacy support
- Post-Quantum Cryptography: ML-KEM support via aws-lc-rs
- IPv4 and IPv6: Full dual-stack support with address family selection
STARTTLS Support
TLSferret supports STARTTLS for the following protocols:
- SMTP - Email submission (port 587, 25)
- IMAP - Email retrieval (port 143)
- POP3 - Email retrieval (port 110)
- FTP - File transfer (port 21)
- LDAP - Directory services (port 389)
- XMPP - Instant messaging (port 5222)
- PostgreSQL - Database (port 5432)
- MySQL - Database (port 3306)
Security Analysis
- Vulnerability Detection: Heartbleed (CVE-2014-0160), CRIME, TLS compression
- Downgrade Protection: TLS Fallback SCSV (RFC 7507) testing
- Renegotiation Security: RFC 5746 secure renegotiation analysis
- Certificate Validation: Comprehensive X.509 certificate chain analysis
- Cipher Strength Assessment: Security grading of cipher suites and key exchange
Certificate Analysis
- X.509 Parsing: Complete certificate chain analysis
- Security Assessment: Weak keys, deprecated algorithms, expiry validation
- Extensions: Subject Alternative Names (SAN), key usage analysis
- Fingerprinting: SHA256 and SHA1 certificate fingerprints
- Trust Chain: Full certificate chain verification and analysis
Output & Integration
- Multiple Formats: Human-readable text, JSON, XML
- Colored Output: Security-graded color coding for easy assessment
- File Export: Save scan results for compliance and reporting
- Detailed Logging: Configurable verbosity levels for debugging
🛠️ Installation
📦 Pre-compiled Binaries (Recommended)
Download the latest release for your platform from the Releases page:
Linux
# x86_64
|
macOS
# Intel Mac
|
# Apple Silicon (M1/M2)
|
Windows
Download tlsferret-v0.1.0-x86_64-pc-windows-msvc.zip
from the releases page and extract.
🔧 From Source
Prerequisites
- Rust 1.70+ and Cargo
The binary will be available at target/release/tlsferret
📖 Usage
Basic Scanning
# Basic HTTPS scan
# Specific port
# IPv4 only
# IPv6 only
STARTTLS Scanning
# SMTP STARTTLS
# IMAP STARTTLS
# PostgreSQL SSL
# LDAP STARTTLS
Advanced Options
# Test specific TLS version
# Custom SNI hostname
# Disable cipher suite testing (faster)
# Custom timeout
# Verbose output
Output Formats
# JSON output
# XML output
# Save to file
# Show certificate details
📊 Example Output
==============================
) | |
)
)
)
)
)
)
🏗️ Architecture
TLSferret uses a hybrid approach combining two TLS libraries:
- rustls 0.23: Modern TLS 1.2/1.3 with aws-lc-rs crypto provider and post-quantum support
- native-tls 0.2: Legacy SSL3/TLS 1.0/1.1 support for comprehensive coverage
Project Structure
src/
├── main.rs # CLI interface and application entry point
├── scanner.rs # Core scanning orchestration
├── legacy_scanner.rs # Legacy protocol support (SSL3, TLS 1.0/1.1)
├── starttls.rs # STARTTLS protocol implementations
├── protocol.rs # TLS protocol definitions and enums
├── cipher.rs # Cipher suite analysis and strength grading
├── certificate.rs # X.509 certificate parsing and validation
└── output.rs # Result formatting (text, JSON, XML)
🔧 Development
Building from Source
# Debug build
# Release build with optimizations
# Run tests
# Run with verbose logging
RUST_LOG=tlsferret=debug
Contributing
Contributions are welcome! Areas for enhancement:
- Additional STARTTLS protocol support
- Enhanced cipher suite individual testing
- More vulnerability detection
- Performance optimizations
- Additional output formats
📄 License
This project is licensed under either of:
- MIT License (LICENSE-MIT)
- Apache License, Version 2.0 (LICENSE-APACHE)
at your option.
🙏 Acknowledgments
- Inspired by rbsec/sslscan
- Built with rustls and native-tls
- Powered by aws-lc-rs for post-quantum cryptography