Paolo Ronco
PORTFOLIO
Un password manager per Android costruito con privacy e sicurezza come vincoli non negoziabili. Sviluppato da Paolo Ronco in collaborazione con Claude AI (Anthropic).
La maggior parte dei password manager condivide un assunto implicito: i tuoi dati vivono nel cloud, sincronizzati tra dispositivi, accessibili ovunque. Quell’assunto richiede fiducia — nell’azienda, nei loro server, nella loro implementazione crittografica, nella loro risposta in caso di violazione.
Enclave nasce per eliminare quell’assunto alla radice.
L’obiettivo era semplice: un password manager dove l’unica persona in grado di accedere al vault sei tu, dove i dati non lasciano mai il dispositivo, e dove il modello di sicurezza è trasparente e verificabile. Nessun account, nessuna sincronizzazione, nessuna telemetria, nessun accesso a internet.
Il contesto non è teorico: la violazione di LastPass nel 2022 ha esposto vault cifrati di milioni di utenti. Quando succede a un servizio cloud, gli utenti pagano il prezzo di una fiducia che non avrebbero dovuto dover riporre.
Enclave è stato sviluppato interamente attraverso un workflow AI-assisted, usando Claude (Anthropic) come partner di sviluppo principale. L’intero codebase — decisioni architetturali, implementazione della sicurezza, interfaccia utente e documentazione — è stato progettato e raffinato attraverso conversazioni iterative con Claude.
Questo approccio ha permesso di:
Il progetto dimostra che uno sviluppatore singolo, lavorando con un collaboratore AI, può produrre un’applicazione Android di qualità production con un modello di sicurezza paragonabile a strumenti commerciali affermati.
Architettura MVVM a modulo singolo con separazione netta delle responsabilità:
android/app/src/main/java/com/paoloronco/codevault/├── data/│ ├── AccountEntity.kt # Entità Room — enum EntryType, Categorie│ ├── AccountDao.kt # DAO con query Flow-based│ └── AppDatabase.kt # Database Room (v3, migrazioni manuali)├── security/│ └── SecurityManager.kt # Hashing passcode, cifratura campi,│ # gestione chiavi Keystore, flag biometrico├── backup/│ └── BackupManager.kt # Export / import AES-256-GCM via SAF└── ui/ ├── MainViewModel.kt # ViewModel unico: stato auth, CRUD, │ # gestione clipboard, operazioni backup ├── Navigation.kt # Route come Sealed class └── screens/ ├── SetupScreen.kt # Setup passcode al primo avvio ├── LockScreen.kt # Sblocco PIN / password + biometrico ├── PinEntry.kt # Composable riutilizzabili PinDots + PinNumPad ├── HomeScreen.kt # Lista, ricerca, swipe-to-delete ├── AddEditScreen.kt # Form inserimento/modifica + generatore password ├── AccountDetailScreen.kt # Vista dettaglio, campi mascherati, copia └── SettingsScreen.kt # Auto-lock, biometrico, lingua, backup
La sicurezza è il prodotto principale, non una funzionalità aggiuntiva. Ogni decisione progettuale è stata presa con un threat model esplicito.
codevault_field_key
IS_SENSITIVE
FLAG_SECURE
allowBackup="false"
backup_rules.xml
Il database è memorizzato in /data/data/com.paoloronco.codevault/databases/codevault_secure.db — sandbox Android, inaccessibile ad altre app o a terze parti senza accesso root.
/data/data/com.paoloronco.codevault/databases/codevault_secure.db
Generatore integrato basato su SecureRandom (nessuna fonte pseudo-casuale):
SecureRandom
Esporta l’intero vault in un file .cvbak cifrato tramite Android Storage Access Framework. Il file di backup è cifrato in modo indipendente con una password scelta dall’utente — leggibile solo con il passcode corretto, anche se il file venisse acquisito da terze parti.
.cvbak
BiometricPrompt
Selettore lingua integrato nell’app, senza necessità di riavvio:
La maggior parte dei password manager open source sono port di strumenti web-first o wrapper sottili attorno a database cifrati. Enclave è stato progettato da zero per Android, usando le primitive di sicurezza native della piattaforma (Android Keystore, BiometricPrompt, EncryptedSharedPreferences) invece di implementare crittografia custom.
Differenziatori chiave:
INTERNET
Enclave è rilasciato sotto GNU Affero General Public License v3.0.
Questa licenza è stata scelta deliberatamente: qualsiasi fork o opera derivata — inclusa una offerta come servizio — deve essere rilasciata sotto gli stessi termini. Questo impedisce fork proprietari con modifiche non divulgate (come backdoor), garantendo che qualsiasi versione di questo codice che raggiunga gli utenti rimanga verificabile.
Sviluppato con Claude — Anthropic (2026)
Your email address will not be published. Required fields are marked *
Comment *
Name *
Email *
Website
Save my name, email, and website in this browser for the next time I comment.
Post Comment