Menu ▾ ▴

Security

Robert Trenaman

Security

This guide covers security features, best practices, and security architecture of Chat Linux Client.

Table of Contents
Overview
Security Features
API Key Security
Data Encryption
Network Security
Privacy Features
Security Best Practices
Security Auditing

Overview

Chat Linux Client is designed with security and privacy as core principles:
No telemetry: No data collection or analytics
Local-first: Data stored locally
Encryption: Optional encryption for sensitive data
HTTPS-only: All API communications use HTTPS
Open source: Fully auditable code

Security Features

No Telemetry

Chat Linux Client collects zero telemetry data:
No usage statistics
No crash reports
No analytics
No user tracking
No phone home

Local Data Storage

All data is stored locally on your machine:
Configuration: ~/.config/chat-linux-client/
Chat history: ~/.local/share/chat-linux-client/
Logs: ~/.local/share/chat-linux-client/logs/

Data is never sent to external servers except for AI API requests.

HTTPS-Only Communications

All API communications use HTTPS with certificate validation:

Input Validation

All user inputs are validated before processing:
API key format validation
Model name validation
Configuration validation
Path traversal prevention

API Key Security

Encryption at Rest

API keys are encrypted using Fernet symmetric encryption:

Key Derivation

Encryption keys are derived from passwords using PBKDF2:

Key Storage

Encrypted keys are stored at:

Password Protection

Set a password for key encryption:

Without a password, a local fallback key is used (less secure).

Key Validation

API keys are validated before use:

Data Encryption

Chat History Encryption

Enable encryption for chat history:
Open Settings
Navigate to Privacy tab
Enable "Encrypt Chats"
Set a password
Click Save

Important: Remember your password. Lost passwords cannot be recovered.

Encryption Implementation

Chat history is encrypted using SQLite encryption extensions:

Configuration Encryption

Sensitive configuration can be encrypted:

Network Security

HTTPS Enforcement

All API requests use HTTPS:

Certificate Validation

SSL certificates are validated by default:

No Proxy Intermediaries

No intermediate proxy servers are used. Direct connection to provider APIs.

Request Headers

Security headers are included in requests:

Privacy Features

Local Model Privacy

Using Ollama local models ensures:
Data never leaves your machine
No network requests
Complete privacy
No API costs

No Data Retention

Chat Linux Client does not:
Store data on cloud servers
Share data with third parties
Use data for training
Retain data beyond local storage

Optional Data Deletion

Delete data on exit:
Open Settings
Navigate to Privacy tab
Enable "Delete API Keys on Exit"
Enable "Clear Chat History on Exit"

Data Export Control

You have full control over your data:
Export chat history anytime
Delete specific chats
Clear all history
Backup encrypted data

Security Best Practices

For Users

API Key Management
Never share your API keys
Rotate keys regularly
Revoke unused keys
Use environment variables when possible
Enable encryption for key storage

Password Security
Use strong passwords for encryption
Don't reuse passwords
Store passwords securely
Remember encryption passwords (cannot be recovered)

Network Security
Use secure networks for cloud API calls
Avoid public WiFi for sensitive conversations
Keep software updated
Use VPN if needed

Local Models
Download from trusted sources (Ollama)
Keep models updated
Verify model integrity
Use local models for sensitive data

For Developers

Secret Management
Never hardcode secrets in code
Use environment variables
Add secrets to .gitignore
Validate all inputs
Use secure storage APIs

Dependency Management
Keep dependencies updated
Review security advisories
Use pip-audit to check vulnerabilities
Pin dependency versions
Review third-party code

Code Security
Follow secure coding practices
Use type hints
Handle errors properly
Sanitize user inputs
Use parameterized queries

Testing
Write security tests
Test edge cases
Test encryption/decryption
Test input validation
Perform security reviews

Security Auditing

Code Review

Regular security reviews should cover:
API key handling
Encryption implementation
Input validation
Error handling
Network security

Dependency Scanning

Scan for vulnerabilities:

Static Analysis

Use static analysis tools:

Penetration Testing

Test for:
SQL injection
XSS (if web interface added)
Path traversal
Command injection
Buffer overflows

Known Limitations

Encryption Password Recovery

Encryption passwords cannot be recovered. If lost:
Encrypted data is inaccessible
Must delete encrypted files
Start fresh with new password

Local Fallback Key

Without a password, a local fallback key is used:
Less secure than password-based encryption
Key is stored on the machine
Consider setting a password for better security

Cloud Provider Security

When using cloud providers:
Data is sent to provider servers
Subject to provider's privacy policy
Provider may store data temporarily
Review provider's security practices

Security Updates

Keeping Updated
Update application regularly
Review changelog for security fixes
Update dependencies
Monitor security advisories

Reporting Security Issues

If you find a security vulnerability:
Do NOT open a public issue
Email: security@example.com
Include details and reproduction steps
Allow time for fix before disclosure

Security Checklist

Before First Use
Set encryption password
Enable chat encryption (optional)
Review privacy settings
Understand data storage locations
Configure API keys securely

Regular Maintenance
Rotate API keys periodically
Update application
Update dependencies
Review security settings
Clear unnecessary chat history

For Sensitive Use
Use local models (Ollama)
Enable chat encryption
Use strong encryption password
Disable cloud providers
Clear data after use

Next Steps
Read Configuration guide
Read Privacy section in FAQ
Review SECURITY.md in project root


Related

Wiki: Home
Wiki: Security
Wiki: Testing