Frequently asked questions about Fortress security platform.
- General Questions
- Installation & Setup
- Security & Encryption
- Performance & Scaling
- API & Integration
- Troubleshooting
- Licensing & Support
Fortress is an enterprise security platform that provides automatic encryption, key management, and secure data storage. It encrypts data before storage and decrypts it after retrieval, ensuring your sensitive information is always protected.
Fortress uses a "zero-knowledge" architecture where:
- Data is encrypted on the client side before transmission
- Encrypted data is stored in the database
- Data is only decrypted when accessed by authorized applications
- Fortress never has access to unencrypted data
- Automatic Encryption: No manual encryption/decryption required
- Field-Level Security: Encrypt specific fields with different algorithms
- Zero-Downtime Rotation: Rotate keys without service interruption
- Multi-Tenant: Isolated data per organization
- High Performance: Optimized for speed and scalability
Yes, Fortress is open source under the Server Side Public License (SSPL). You can view, modify, and distribute the source code.
Installation depends on your ecosystem:
Rust:
cargo install fortress-cliPython:
pip install fortress-dbNode.js:
npm install fortress-dbDocker:
docker pull fortress-security/fortress:latestFor detailed instructions, see the Installation Guide.
Minimum Requirements:
- CPU: 2 cores (64-bit)
- Memory: 4GB RAM
- Storage: 10GB available space
- Network: Internet connection
Recommended Requirements:
- CPU: 4+ cores (64-bit)
- Memory: 8GB+ RAM
- Storage: 50GB+ SSD
- Network: 1Gbps network
Yes! Fortress is designed to run anywhere from development laptops to production servers. Use the Docker image or install the binary directly.
Create a config.toml file:
[server]
host = "0.0.0.0"
port = 8080
[database]
default_algorithm = "aegis256"
[encryption]
auto_rotation = true
key_rotation_interval = "24h"Or use environment variables:
export FORTRESS_HOST=0.0.0.0
export FORTRESS_PORT=8080
export FORTRESS_DEFAULT_ALGORITHM=aegis256Fortress supports multiple encryption algorithms:
| Algorithm | Type | Security Level | Performance |
|---|---|---|---|
| AEGIS-256 | AEAD | Very High | Very Fast |
| ChaCha20-Poly1305 | AEAD | High | Fast |
| AES-256-GCM | AEAD | High | Fast |
| AES-256-CBC | Block Cipher | High | Medium |
Fortress provides automatic key rotation:
- Generate New Key: Create a new encryption key
- Re-encrypt Data: Re-encrypt existing data with new key
- Update References: Update all references to use new key
- Archive Old Key: Securely archive the old key
- Verification: Verify all data is properly encrypted
During rotation, your application continues to work without downtime.
Yes, Fortress implements multiple security measures:
- Key Derivation: Uses Argon2id for key derivation
- Key Storage: Keys are encrypted at rest
- Access Control: Role-based access to keys
- Audit Logging: All key operations are logged
- HSM Support: Hardware Security Module integration available
Yes, Fortress supports:
- External Keys: Import your own encryption keys
- HSM Integration: Use Hardware Security Modules
- Key Management: Full lifecycle management
- Custom Algorithms: Support for custom encryption schemes
Fortress uses TLS 1.3 for all network communications:
- Encryption: All data encrypted in transit
- Authentication: Mutual TLS authentication
- Perfect Forward Secrecy: PFS cipher suites
- Certificate Pinning: Optional certificate pinning
Fortress is designed to be compliant with:
- GDPR: Data protection and privacy
- HIPAA: Healthcare data protection
- PCI DSS: Payment card industry standards
- SOC 2: Security and compliance controls
Yes, Fortress provides data export capabilities:
- Encrypted Export: Export data while encrypted
- Decrypted Export: Export decrypted data (with proper authorization)
- Format Options: JSON, CSV, and custom formats
- Bulk Export: Efficient bulk data export
Fortress is optimized for high performance:
| Algorithm | Encrypt (MB/s) | Decrypt (MB/s) |
|---|---|---|
| AEGIS-256 | 910 | 1,898 |
| ChaCha20-Poly1305 | 288 | 460 |
| AES-256-GCM | 358 | 345 |
Yes, Fortress is designed for scalability:
- Concurrent Connections: 10,000+ concurrent connections
- Throughput: 1,000+ operations per second
- Horizontal Scaling: Multiple server instances
- Load Balancing: Built-in load balancing support
Fortress includes intelligent caching:
- Multi-Level Caching: Memory, disk, and distributed cache
- Cache Warming: Automatic cache population
- LRU Eviction: Least Recently Used eviction policy
- Cache Invalidation: Automatic cache invalidation on updates
Fortress optimizes database operations:
- Connection Pooling: Efficient database connections
- Batch Operations: Bulk operations for better performance
- Query Optimization: Optimized query execution
- Indexing: Automatic index creation for encrypted fields
Fortress provides comprehensive monitoring:
- Metrics: Real-time performance metrics
- Health Checks: Built-in health endpoints
- Logging: Structured logging with correlation IDs
- Alerting: Configurable alerts for performance issues
Fortress offers multiple API interfaces:
- REST API: Standard HTTP/JSON API
- GraphQL API: Flexible query language
- WebSocket API: Real-time updates
- gRPC API: High-performance RPC interface
Fortress supports multiple authentication methods:
- JWT Tokens: JSON Web Token authentication
- API Keys: Static API key authentication
- OAuth 2.0: OAuth 2.0 integration
- LDAP/Active Directory: Enterprise directory integration
Yes, Fortress provides SDKs for multiple languages:
- Rust: Native Rust SDK
- Python: Python SDK with async support
- Node.js: JavaScript/TypeScript SDK
- Go: Go SDK with goroutine support
- Java: Java SDK with Spring integration
- .NET: .NET SDK with ASP.NET Core integration
Fortress provides comprehensive error handling:
Rust:
match result {
Ok(data) => println!("Success: {:?}", data),
Err(FortressError::ValidationError(msg)) => {
eprintln!("Validation error: {}", msg);
},
Err(err) => eprintln!("Error: {}", err),
}Python:
try:
result = await fortress.insert(data)
except FortressValidationError as e:
print(f"Validation error: {e}")
except FortressError as e:
print(f"Error: {e}")Node.js:
try {
const result = await fortress.insert(data);
console.log('Success:', result);
} catch (error) {
if (error instanceof FortressValidationError) {
console.error('Validation error:', error.message);
} else {
console.error('Error:', error.message);
}
}Yes, Fortress can integrate with existing databases:
- Migration Tools: Data migration utilities
- Schema Mapping: Map existing schemas to Fortress
- Gradual Migration: Migrate data gradually
- Dual Write: Write to both systems during migration
- Configuration: Verify your config file is valid
- Ports: Check if ports are available
- Permissions: Ensure proper file permissions
- Dependencies: Verify all dependencies are installed
- Logs: Check error logs for specific issues
# Check configuration
fortress config validate
# Check ports
netstat -tlnp | grep :8080
# Check logs
journalctl -u fortress -f- API Key: Verify your API key is correct
- Token Expiry: Check if your token has expired
- Permissions: Ensure proper permissions
- Network: Check network connectivity
# Test authentication
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:8080/api/v1/health
# Check token info
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:8080/api/v1/auth/info- Field Definition: Ensure fields are marked as encrypted
- Algorithm: Verify encryption algorithm is set
- Key Management: Check if encryption keys exist
- Configuration: Verify encryption is enabled
// Check field definition
FieldDefinition::new("ssn", FieldType::Encrypted)
// Verify encryption
let encrypted = fortress.is_field_encrypted("ssn");- Caching: Enable caching
- Connection Pooling: Increase connection pool size
- Indexing: Add appropriate indexes
- Hardware: Check system resources
[cache]
enabled = true
backend = "redis"
ttl = "1h"
[database]
connection_pool_size = 20- Memory Limits: Increase memory limits
- Batch Size: Reduce batch operation sizes
- Cache Size: Adjust cache configuration
- Monitoring: Monitor memory usage
# Increase memory limit
export FORTRESS_MEMORY_LIMIT=2g
# Monitor memory
fortress metrics memoryFortress is licensed under the Server Side Public License (SSPL). This means:
- Open Source: Source code is available
- Commercial Use: Requires commercial license for commercial use
- Modification: You can modify the source code
- Distribution: Must share modifications under the same license
You need a commercial license if:
- You use Fortress for commercial purposes
- You offer Fortress as a service to others
- You modify Fortress and distribute it
For open source projects and personal use, the SSPL license is sufficient.
Multiple support channels are available:
- Documentation: docs.fortress-security.org
- GitHub Issues: github.com/fortress-security/fortress/issues
- Discussions: github.com/fortress-security/fortress/discussions
- Community: Discord Server
- Email: support@fortress-security.org
For security vulnerabilities, please:
- Email: security@fortress-security.org
- Private: Do not disclose publicly
- Details: Provide detailed reproduction steps
- Response: We'll respond within 24 hours
Yes! Contributions are welcome:
- Fork: Fork the repository
- Branch: Create a feature branch
- Code: Write your changes
- Test: Add tests for your changes
- PR: Submit a pull request
See the Contributing Guide for details.
Additional resources:
- Website: fortress-security.org
- Blog: blog.fortress-security.org
- YouTube: Fortress Security Channel
- Twitter: @fortress_security
Still have questions? Feel free to ask in our GitHub Discussions or join our Discord community.