2.8 KiB
2.8 KiB
Security Architecture
This document describes the security architecture of Crypto Trader.
Security Layers
Application Layer
├──► API Key Encryption
├──► Permission Management
└──► Audit Logging
│
▼
Storage Layer
├──► Encrypted Storage
└──► Secure Key Management
API Key Encryption
Encryption Process
Plain API Key
│
▼
Fernet Encryption
│
▼
Encrypted Key (Stored in Database)
Key Management
- Encryption Key: Stored securely (environment variable or keyring)
- Key Generation: Automatic on first use
- Key Rotation: Manual rotation process
Permission Management
Permission Levels
- Read-Only: Data collection, backtesting only
- Trading Enabled: Full trading capabilities
Permission Enforcement
API Request
│
▼
Permission Check
│
├──► Read-Only Request
│ │
│ └──► Allow (read operations)
│
└──► Trading Request
│
├──► Trading Enabled?
│ │
│ ├──► Yes: Allow
│ └──► No: Reject
Secure Storage
Keyring Integration
- Linux: Secret Service (GNOME Keyring)
- macOS: Keychain
- Windows: Windows Credential Manager
Fallback Storage
If keyring unavailable:
- Environment variable (development only)
- Encrypted file with user permission
Audit Logging
All security events are logged:
- API key changes
- Permission changes
- Trading operations
- Configuration changes
- Error events
Audit Log Format
{
"timestamp": "2025-12-13T19:00:00Z",
"event_type": "API_KEY_CHANGED",
"user_id": "system",
"details": {
"exchange": "coinbase",
"action": "updated"
}
}
Data Privacy
- Local Storage: All data stored locally
- No Telemetry: No data sent externally
- Encryption: Sensitive data encrypted at rest
- Access Control: File system permissions
Best Practices
- Use Read-Only Keys: When possible, use read-only API keys
- IP Whitelisting: Enable IP whitelisting on exchange accounts
- Regular Rotation: Rotate API keys periodically
- Secure Environment: Keep encryption keys secure
- Audit Review: Regularly review audit logs
Threat Model
Threats Addressed
- API Key Theft: Encryption at rest
- Unauthorized Trading: Permission checks
- Data Breach: Local storage, encryption
- Man-in-the-Middle: HTTPS for API calls
- Key Logging: Secure keyring storage
Security Boundaries
- Application Boundary: Application code
- Storage Boundary: Encrypted database
- Network Boundary: Secure API connections
- System Boundary: File system permissions