An open API service indexing awesome lists of open source software.

https://github.com/kernferm/secure-file-transfer-enterprise-security-suite

A professional, secure file transfer application with multi-antivirus security support and enterprise-grade trusted device management. Features a modern CustomTkinter interface with automatic device discovery and comprehensive security features.
https://github.com/kernferm/secure-file-transfer-enterprise-security-suite

Last synced: 10 months ago
JSON representation

A professional, secure file transfer application with multi-antivirus security support and enterprise-grade trusted device management. Features a modern CustomTkinter interface with automatic device discovery and comprehensive security features.

Awesome Lists containing this project

README

          

# ๐Ÿ” Secure-File-Transfer-Enterprise-Security-Suite

A professional, secure file transfer application with multi-antivirus security support and enterprise-grade trusted device management. Features a modern CustomTkinter interface with automatic device discovery and comprehensive security features.

## โœจ What Makes This Special

### ๐Ÿ›ก๏ธ Multi-Antivirus Protection
- **ESET Integration**: Primary security service with enhanced protection
- **Kaspersky Support**: Full compatibility and real-time protection
- **Norton Security**: Complete enterprise security integration
- **Windows Defender**: Built-in Windows protection support
- **Bitdefender**: Professional antivirus integration
- **Avast/AVG**: Consumer antivirus support
- **McAfee**: Enterprise security compatibility
- **Auto-Detection**: Automatically detects your security software

### ๐Ÿค– Smart Auto-Discovery
- **Background Scanning**: Continuously finds new devices on your network
- **Auto-Trust Patterns**: Automatically trusts devices matching your rules
- **Smart Caching**: Remembers devices to reduce network load
- **Real-time Updates**: Live device status and connection monitoring
- **Configurable**: Set scan intervals from 10 seconds to 5 minutes

### ๐Ÿ” Advanced Security Features
- **Trust Levels**: Limited, Standard, and High security levels
- **Device Certificates**: Automatic certificate generation with expiration
- **Encryption**: Industry-standard Fernet encryption for all transfers
- **Input Validation**: Comprehensive protection against malicious inputs
- **File Integrity**: MD5 hash verification for all file transfers

### ๐Ÿ“ Universal File Support
- **All File Types**: Transfer any file format without restrictions (.exe, .pdf, .mp4, etc.)
- **Large File Support**: Configurable file size limits up to GB scale
- **Smart Validation**: Automatic file size checking with clear error messages
- **Flexible Limits**: Easily adjust maximum file sizes through configuration
- **Type Categories**: Helpful file type suggestions in selection dialog

### ๐Ÿ“ฑ Modern User Interface
- **Dark Theme**: Professional CustomTkinter interface
- **Tabbed Design**: Send, Receive, Trusted Devices, and Security tabs
- **Progress Tracking**: Real-time progress bars and status updates
- **Keyboard Shortcuts**: Quick access to common functions
- **Responsive Design**: Works on different screen sizes

## ๏ฟฝ Getting Started

### ๐Ÿ”ง System Requirements
- **Operating System**: Windows 10/11, macOS 10.14+, or Linux
- **Python**: 3.11.9
- **Memory**: 100MB RAM minimum
- **Storage**: Less than 50MB disk space
- **Network**: Local network access

### ๐Ÿ“ฆ Installation

1. **Download** the application files to your computer
2. **Install Python dependencies**:
```bash
pip install customtkinter cryptography psutil
```
3. **Run the application**:
- **Easy Way**: Run `python launchers/launcher.py`
- **Direct Way**: Run `python src/file_transfer_app.py`

### โš™๏ธ Configuration
The application uses `config/config.json` for settings:
- **File Size Limits**: Adjust `max_file_size_gb` for larger files (default: 2GB)
- **Network Settings**: Configure port and scan timeout
- **Security Options**: Customize trust and encryption settings

### ๐ŸŽฏ First Time Setup
1. **Launch** the application using any method above
2. **Check Security Tab** to see your detected antivirus
3. **Scan Network** to find other devices
4. **Trust Devices** you want to allow file transfers with
5. **Start Transferring** files securely!

## ๏ฟฝ How to Use

### ๐Ÿ“ค Sending Files (Step by Step)

1. **๐Ÿ“‚ Select Your Files**
- Click "๐Ÿ—‚๏ธ Select Files" button
- Choose one or more files from your computer (ALL file types supported)
- Files will appear in the list with their sizes
- Maximum file size: 2GB (configurable in config.json)

2. **๐Ÿ” Find Devices**
- Click "๐Ÿ” Scan Network" to discover devices
- Wait for the scan to complete (usually takes 10-30 seconds)
- Available devices will appear in the list

3. **๐Ÿ›ก๏ธ Trust Devices**
- Click "โœ… Trust" next to devices you want to allow
- Only trusted devices can send/receive files
- Trusted devices get a green shield icon

4. **๐ŸŽฏ Select Target**
- Click "๐ŸŽฏ Select" on the device you want to send to
- The device will be highlighted in green

5. **๐Ÿ“ค Send Files**
- Click "๐Ÿ“ค Send Files" to start the transfer
- Watch the progress bar and transfer status
- Files will be encrypted and sent securely

### ๐Ÿ“ฅ Receiving Files (Step by Step)

1. **๐Ÿ“‚ Choose Download Location**
- The default is your Downloads folder
- Click "๐Ÿ“ Browse" to change the location
- Make sure you have enough disk space

2. **๐ŸŸข Start Receiver**
- Click "๐ŸŸข Start Receiver" to listen for incoming files
- The status will change to "๐ŸŸข Running"
- Your device is now ready to receive files

3. **๐Ÿ“‹ Monitor Activity**
- Watch the transfer log for incoming files
- Files will appear in your chosen download location
- All transfers are logged with timestamps

### ๐Ÿ”ง Managing Security

1. **๐Ÿ›ก๏ธ Security Tab**
- View your detected antivirus software
- See protection status and active service
- Check device statistics and connection counts

2. **๐Ÿ” Auto-Scan Settings**
- Toggle auto-scan on/off with the switch
- Adjust scan interval (10-300 seconds)
- Set up trust patterns for automatic device approval

3. **๐Ÿ›ก๏ธ Trusted Devices Tab**
- View all trusted devices with detailed information
- Change trust levels (Limited, Standard, High)
- Remove devices or view their certificates
- Export your trusted device list

### โŒจ๏ธ Keyboard Shortcuts

| Shortcut | Action |
|----------|--------|
| `Ctrl+O` | Select files |
| `Ctrl+S` | Scan network |
| `Ctrl+R` | Start receiver |
| `Ctrl+T` | Stop receiver |
| `Ctrl+D` | Open download folder |
| `F5` | Refresh devices |
| `F1` | Show help |
| `Ctrl+,` | Open settings |

## ๐Ÿ”ง Advanced Features

### ๐ŸŽฏ Auto-Trust Patterns
Set up rules to automatically trust devices:
- `.*-PC$` - Trusts any device ending with "-PC"
- `.*-LAPTOP$` - Trusts laptop devices
- `OFFICE-.*` - Trusts devices starting with "OFFICE-"
- `DEV-.*` - Trusts development machines

### ๐Ÿ” Trust Levels Explained
- **๐Ÿ”ด Limited**: Basic file transfers only
- **๐Ÿ”ต Standard**: Normal file transfers with full features
- **๏ฟฝ High**: Maximum trust with priority handling

### ๐Ÿ“Š Device Statistics
- **Total Devices**: Number of trusted devices
- **Connection Count**: How many times devices have connected
- **Auto-Trusted**: Devices automatically trusted by patterns
- **Manual Trusted**: Devices manually approved by you

### ๐Ÿ”’ Certificate Management
- **Auto-Generated**: Each trusted device gets a unique certificate
- **1-Year Validity**: Certificates expire after one year
- **Hash Verification**: Ensures device identity hasn't changed
- **Service Binding**: Tied to your security software

## ๐Ÿ› ๏ธ Settings & Configuration

### ๏ฟฝ File Transfer Settings
- **File Size Limit**: Configure maximum file size (default: 2GB)
- **Supported Types**: All file formats supported (.exe, .pdf, .mp4, .zip, etc.)
- **Size Validation**: Automatic checking with clear error messages
- **Configuration File**: Edit `config/config.json` to adjust limits

### ๏ฟฝ๐Ÿ“ก Network Settings
- **Port**: Default 12345 (configurable in config.json)
- **Scan Timeout**: How long to wait for device responses (configurable)
- **Max Threads**: Number of simultaneous device scans
- **Test Connection**: Check network connectivity

### ๐ŸŽจ Interface Settings
- **Appearance**: Light, Dark, or System theme
- **Color Theme**: Blue, Green, or Dark-Blue
- **Auto-scan**: Enable/disable background scanning
- **Bug Reports**: Include system info in reports

### ๐Ÿ”ง Tools & Utilities
- **Clear Transfer Log**: Remove all transfer history
- **Clear Temp Files**: Clean up temporary files
- **Reset Application**: Restore default settings
- **Export Data**: Save trusted devices and logs

### โš™๏ธ Configuration File (config.json)
```json
{
"app_settings": {
"max_file_size_gb": 2, // Maximum file size in GB
"port": 12345, // Network port for transfers
"scan_timeout": 30, // Device scan timeout in seconds
"encryption_enabled": true // Enable file encryption
},
"security_settings": {
"require_device_trust": true, // Only allow trusted devices
"verify_file_integrity": true // Verify file integrity
}
}
```

**Configuration Options:**
- **max_file_size_gb**: Set maximum file size (1-10 GB recommended)
- **port**: Change network port if 12345 is blocked
- **scan_timeout**: Adjust device discovery timeout
- **encryption_enabled**: Toggle file encryption on/off

## ๏ฟฝ File Organization
```
secure-file-transfer/
โ”œโ”€โ”€ ๐Ÿ“ src/
โ”‚ โ”œโ”€โ”€ file_transfer_app.py # Main application with GUI
โ”‚ โ””โ”€โ”€ file_transfer_server.py # Network server for transfers
โ”œโ”€โ”€ ๐Ÿ“ launchers/
โ”‚ โ””โ”€โ”€ launcher.py # Python launcher script
โ”œโ”€โ”€ ๐Ÿ“ config/
โ”‚ โ””โ”€โ”€ config.json # Application settings & file size limits
โ”œโ”€โ”€ ๐Ÿ“ docs/
โ”‚ โ””โ”€โ”€ README.md # This documentation
โ”œโ”€โ”€ trusted_devices.json # Your trusted devices (auto-created)
โ”œโ”€โ”€ requirements.txt # Python dependencies
โ”œโ”€โ”€ test_config.py # Configuration test script
โ””โ”€โ”€ .gitignore # Git ignore file
```

## ๐Ÿ†˜ Troubleshooting

### ๐Ÿ” Common Issues & Solutions

**โŒ "No devices found"**
- โœ… Check your network connection
- โœ… Make sure other devices are on the same network
- โœ… Try disabling/enabling Windows Firewall temporarily
- โœ… Ensure port 12345 is not blocked

**โŒ "Transfer failed"**
- โœ… Verify both devices are trusted
- โœ… Check if receiving device has receiver running
- โœ… Ensure sufficient disk space on receiving device
- โœ… Check file size doesn't exceed limit (default 2GB)
- โœ… Try restarting both applications

**โŒ "File too large"**
- โœ… Check current file size limit in config.json
- โœ… Increase `max_file_size_gb` value if needed
- โœ… Restart application after changing configuration
- โœ… Consider splitting large files into smaller parts

**โŒ "Security service not detected"**
- โœ… Make sure your antivirus is running
- โœ… Check if antivirus is in silent/gaming mode
- โœ… Try restarting the application
- โœ… Windows Defender is always available as fallback

**โŒ "Auto-trust not working"**
- โœ… Check your trust pattern syntax (use regex)
- โœ… Ensure auto-scan is enabled
- โœ… Verify devices match your patterns exactly
- โœ… Try manual trust first to test connectivity

**โŒ "Application won't start"**
- โœ… Install Python 3.11.9 and required packages
- โœ… Check if all files are in correct locations
- โœ… Try running from command line to see error messages
- โœ… Ensure antivirus isn't blocking the application

### ๐Ÿ› Getting Help

1. **๐Ÿ“‹ Check Transfer Log**: Look for error messages in the log
2. **๐Ÿ”ง Try Reset**: Use "Reset Application" in Tools menu
3. **๐Ÿ“Š System Info**: Use "Report Bug" to generate system information
4. **๐Ÿ’ก Feature Request**: Use "Request Feature" for suggestions

### ๐Ÿ”ง Performance Tips

- **Network Speed**: Use wired connection for faster transfers
- **File Size**: Large files (GB scale) are fully supported
- **File Types**: All file formats transfer equally well
- **Configuration**: Adjust file size limits in config.json as needed
- **Firewall**: Add application to firewall exceptions
- **Antivirus**: Add application folder to antivirus exceptions

## ๐Ÿ”’ Security & Privacy

### ๐Ÿ›ก๏ธ What's Protected
- **All file transfers** are encrypted with industry-standard encryption
- **Device authentication** prevents unauthorized access
- **Input validation** protects against malicious data
- **Path protection** prevents directory traversal attacks
- **File integrity** ensures files aren't corrupted during transfer

### ๐Ÿ” Privacy Features
- **Local network only** - no internet connection required
- **No data collection** - all information stays on your network
- **Trusted devices only** - you control who can send/receive
- **Automatic cleanup** - temporary files are removed after transfer
- **Secure certificates** - each device gets unique identification

### ๐Ÿšจ Best Practices
- **Review trusted devices** regularly
- **Use strong device names** (avoid generic names)
- **Monitor transfer logs** for suspicious activity
- **Keep security software updated**
- **Use appropriate trust levels** for different devices

## ๐Ÿ“ About This Application

### ๐ŸŽฏ Purpose
This application was designed to provide secure, easy-to-use file transfers on local networks with enterprise-grade security features. It's perfect for:
- **Home networks** with multiple computers
- **Small offices** needing secure file sharing
- **Development teams** sharing files safely
- **Anyone** wanting encrypted file transfers

### ๐Ÿ”ง Technical Details
- **Built with Python** for cross-platform compatibility
- **CustomTkinter UI** for modern interface
- **Fernet encryption** for security
- **Multi-threaded scanning** for performance
- **JSON configuration** for easy customization
- **Universal file support** - no file type restrictions
- **Configurable limits** - adjust file sizes up to GB scale

### ๐ŸŒŸ Key Benefits
- **Easy to use** - intuitive interface with helpful icons
- **Secure by default** - encryption and authentication built-in
- **Flexible** - works with any antivirus or security software
- **Universal** - supports all file types without restrictions
- **Scalable** - handles files up to GB scale with configurable limits
- **Reliable** - robust error handling and recovery
- **Professional** - enterprise-grade features in simple package

---

## ๐ŸŽ‰ Ready to Get Started?

1. **Download** the application files
2. **Install** Python dependencies: `pip install customtkinter cryptography psutil`
3. **Test configuration** (optional): `python test_config.py`
4. **Run** `python launchers/launcher.py`
5. **Scan** for devices and start trusting them
6. **Transfer** files securely - any file type, up to 2GB!

**๐Ÿ” Secure File Transfer** - Making secure file sharing simple and professional.

### ๐Ÿงช Testing Your Setup
Run the configuration test to verify everything works:
```bash
python test_config.py
```
This will verify:
- Configuration loading (file size limits, port settings)
- File size validation (shows current 2GB limit)
- File type support (confirms all types are supported)
- Network settings (port and timeout configuration)

---

*Need help? Check the troubleshooting section above or use the built-in "Report Bug" feature to generate detailed system information.*