Password manager moderno scritto in Go con supporto formato .kdbx (compatibile KeePassXC)
- Caratteristiche
- Requisiti
- Installazione
- Struttura Progetto
- Compilazione
- Utilizzo
- Sicurezza
- Sviluppo
- FAQ
- Licenza
- β CompatibilitΓ KeePassXC: Legge e scrive database .kdbx 4.x
- β Cifrari moderni: Solo algoritmi sicuri (ChaCha20, AES-256, Argon2id)
- β Nessun cifrario obsoleto: AES-128, SHA-1, MD5 non supportati
- β
Crittografia forte: Password generate con
crypto/rand - β Offline: Nessuna connessione internet, nessun telemetry
- β Open Source: Codice completamente ispezionabile
- β GUI moderna: Interfaccia grafica intuitiva con Fyne
- β Import/Export .kdbx: Compatibile con KeePassXC
- β Gestione password: Crea, modifica, visualizza, copia
- β Generatore password: Password sicure personalizzabili
- β Categorie/Gruppi: Organizzazione gerarchica
- β Appunti: Copia username/password negli appunti
| Algoritmo | Tipo | Sicurezza |
|---|---|---|
| ChaCha20-Poly1305 | Cifratura simmetrica | β Moderno (2008) |
| AES-256-GCM | Cifratura simmetrica | β Standard NIST |
| Argon2id | Key Derivation | β Vincitore PHC 2015 |
| SHA-256 | Hash | β Sicuro |
| Cifratura simmetrica | β NON supportato | |
| Hash | β NON supportato (vulnerabile) | |
| Hash | β NON supportato (rotto) |
- Linux (testato su Arch Linux)
- macOS (10.13+)
- Windows (10+)
- Go: 1.21 o superiore
- GCC/Clang: Compilatore C (per Fyne)
- Librerie grafiche:
- Linux:
libgl1-mesa-dev,xorg-dev - macOS: Xcode Command Line Tools
- Windows: MinGW-w64
- Linux:
sudo pacman -S go gcc mesa libx11 libxcursor libxrandr libxinerama libxisudo apt install golang gcc libgl1-mesa-dev xorg-devbrew install go
xcode-select --install# Installa Go da https://go.dev/dl/
# Installa MinGW-w64 da https://www.mingw-w64.org/Se hai giΓ il progetto:
cd /home/gabriel1/ClaudeWorkspace/keepassgo
go mod tidy
go build -o keepassgo ./cmd/keepassgo
./keepassgoSe vuoi ricreare il progetto completo:
# Crea directory principale
mkdir -p keepassgo
# Naviga nella directory
cd keepassgo
# Crea struttura completa
mkdir -p cmd/keepassgo
mkdir -p internal/ui
mkdir -p internal/crypto
mkdir -p internal/database
mkdir -p pkg/kdbx
# Verifica struttura
tree -L 2La struttura dovrebbe essere:
keepassgo/
βββ cmd/
β βββ keepassgo/
βββ internal/
β βββ crypto/
β βββ database/
β βββ ui/
βββ pkg/
βββ kdbx/
go mod init github.com/tuousername/keepassgo# Fyne (GUI framework)
go get fyne.io/fyne/v2@latest
# gokeepasslib (Parser .kdbx)
go get github.com/tobischo/gokeepasslib/v3@latest
# Crypto (cifratura)
go get golang.org/x/crypto@latest
# Pulisci dipendenze
go mod tidyCopia i seguenti file nelle rispettive directory:
cmd/keepassgo/main.gopkg/kdbx/reader.gopkg/kdbx/writer.gopkg/kdbx/password_generator.gointernal/ui/main_window.go
(I file sorgente completi sono disponibili nel progetto)
# .gitignore
cat > .gitignore << 'EOF'
# Binaries
keepassgo
*.exe
*.dll
*.so
*.dylib
# Test
*.test
*.out
# Go workspace
go.work
# IDEs
.idea/
.vscode/
*.swp
# OS
.DS_Store
Thumbs.db
# Build
bin/
dist/
EOFkeepassgo/
βββ cmd/
β βββ keepassgo/
β βββ main.go # Entry point applicazione
βββ internal/ # Codice privato
β βββ crypto/ # (Futuro) Utility cifratura
β βββ database/ # (Futuro) Logica DB
β βββ ui/
β βββ main_window.go # Interfaccia grafica Fyne
βββ pkg/ # Codice pubblico riutilizzabile
β βββ kdbx/
β βββ reader.go # Parser database .kdbx
β βββ writer.go # Writer database .kdbx
β βββ password_generator.go # Generatore password sicure
βββ .gitignore
βββ go.mod # Dipendenze Go
βββ go.sum # Checksum dipendenze
βββ LICENSE # Licenza MIT
βββ README.md # Questo file
βββ keepassgo # Binario compilato (31MB)
| Directory | Descrizione | Righe Codice |
|---|---|---|
cmd/keepassgo/ |
Entry point, inizializza GUI | ~30 |
pkg/kdbx/ |
Parsing/writing .kdbx, generatore password | ~550 |
internal/ui/ |
Interfaccia grafica completa | ~415 |
| TOTALE | ~995 righe |
cd /home/gabriel1/ClaudeWorkspace/keepassgo
go build -o keepassgo ./cmd/keepassgogo build -ldflags="-s -w" -o keepassgo ./cmd/keepassgogo build -ldflags="-s -w" -o keepassgo ./cmd/keepassgo
upx --best --lzma keepassgo# Linux
GOOS=linux GOARCH=amd64 go build -o keepassgo-linux ./cmd/keepassgo
# macOS
GOOS=darwin GOARCH=amd64 go build -o keepassgo-macos ./cmd/keepassgo
# Windows
GOOS=windows GOARCH=amd64 go build -o keepassgo.exe ./cmd/keepassgo./keepassgo- File β Nuovo Database
- Scegli posizione e nome file (es.
passwords.kdbx) - Inserisci password master forte
- Il database viene creato con cifratura ChaCha20 + Argon2id
- File β Apri Database
- Seleziona file
.kdbx(anche da KeePassXC!) - Inserisci password master
- Visualizza tutte le password
- Click su Aggiungi Password
- Compila campi:
- Titolo: Nome servizio (es. "Gmail")
- Username: nome utente o email
- Password: usa "Genera Password" per sicurezza
- URL: sito web
- Note: informazioni extra
- Click Salva
- File β Salva per salvare su disco
- Click su Genera Password
- Visualizza password generata (20 caratteri, ~131 bit entropia)
- Click Copia per copiare negli appunti
- Usa in altri servizi
- Click su una password nella lista
- Visualizza dettagli nel pannello destro
- Click Copia Password o Copia Username
- Password copiata negli appunti (auto-clear dopo 30s)
Questo Γ¨ un progetto in sviluppo (v0.1.0) NON usare per dati reali fino al completamento del security audit. Per uso in produzione, usa KeePassXC ufficiale.
-
ChaCha20-Poly1305
- Cifratura simmetrica moderna (Google, Cloudflare)
- PiΓΉ veloce di AES su CPU senza AES-NI
- Resistenza quantistica: ~128 bit (algoritmo di Grover)
-
AES-256-GCM
- Standard NIST, ampiamente testato
- 256 bit β 128 bit post-quantistico (ancora sicuro)
-
Argon2id
- Vincitore Password Hashing Competition (2015)
- Resistente a GPU/ASIC/quantum attacks
- Parametri: 10 iterazioni, 1GB RAM, 4 thread
β Keylogger: protezione zero β Malware: se il sistema Γ¨ compromesso, nessun password manager Γ¨ sicuro β Shoulder surfing: usa in ambiente privato β Brute force password debole: usa password master forte (16+ caratteri)
β
Password Master: Minimo 16 caratteri, misto, unica
β
Backup: Copia regolare di .kdbx su dispositivo offline
β
2FA: Dove possibile, attiva autenticazione a due fattori
β
Aggiornamenti: Usa sempre l'ultima versione
# Linter
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
# Testing
go test ./...
# Coverage
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out- v0.2.0: Ricerca password, filtri
- v0.3.0: Auto-lock, timeout inattivitΓ
- v0.4.0: Import/Export CSV
- v0.5.0: Supporto allegati
- v1.0.0: Security audit, release stabile
- Fork del repository
- Crea branch feature (
git checkout -b feature/AmazingFeature) - Commit modifiche (
git commit -m 'Add AmazingFeature') - Push branch (
git push origin feature/AmazingFeature) - Apri Pull Request
Q: Γ compatibile con KeePassXC?
A: Sì, legge e scrive file .kdbx v4 compatibili.
Q: Posso usarlo su Android/iOS? A: No, solo desktop (Linux, macOS, Windows).
Q: Supporta YubiKey/FIDO2? A: Non ancora, previsto per v0.6.0.
Q: Γ sicuro quanto KeePassXC? A: No, KeePassXC ha oltre 10 anni di audit. Usa quello per dati reali.
Q: PerchΓ© 31MB di binario?
A: Fyne include le dipendenze grafiche. Usa upx per comprimere.
Q: Supporta cloud sync?
A: No, ma puoi mettere .kdbx su Dropbox/Google Drive manualmente.
MIT License
Copyright (c) 2025 KeePassGo Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- Fyne: fyne.io - GUI framework
- gokeepasslib: tobischo/gokeepasslib - Parser .kdbx
- KeePassXC: keepassxc.org - Ispirazione e formato .kdbx