Security
Security
How dotfiles handles security and system modifications.
Core Principles
- Opt-In Only — No hardening applies unless
DOTFILES_*variables are set to1. - Local Logging — All actions log to
~/.local/share/dotfiles.log. No telemetry. - No Hidden Sudo — Sudo requests only for package managers. Never cached indefinitely.
Hardening
| Feature | Env Var | Action (macOS) | Action (Linux) |
|---|---|---|---|
| Firewall | DOTFILES_FIREWALL | Enables socketfilterfw + Stealth Mode | Configures UFW |
| Telemetry | DOTFILES_TELEMETRY | Disables Diagnostic plists | Disables whoopsie/apport |
| DNS-over-HTTPS | DOTFILES_DOH | Browser-level settings | Configures resolvectl |
| Idle Security | DOTFILES_LOCK | Sets screensaver idle time | Sets GNOME/KDE idle-delay |
Secrets
The dotfiles use age for encryption.
- Initialization:
dot secrets-initcreates a key at~/.config/chezmoi/key.txt. - Storage: Secrets are stored as
.ageencrypted files. - Protection: Private keys aren't committed to the repo.
SSH Certificates
Short-lived SSH certificates reduce the blast radius of key compromise.
- Issue:
dot ssh-cert issue [--ttl 16h] [--principal user] - Status:
dot ssh-cert status— checks certificate validity and expiry - Revoke:
dot ssh-cert revoke— revokes active certificates - Backends:
step-ca(Smallstep) and local CA key (ssh-keygen) - Default TTL: 16 hours (override via
SSH_CERT_TTLenvironment variable) - CA URL: Set
SSH_CERT_CA_URLforstep-caintegration
Reporting a Vulnerability
If you discover a security vulnerability, don't open a public issue. Follow the instructions in the Security Policy.