+++ title = "Concetti" date = 2026-11-05T00:00:00Z description = "Le tre cose su cui si basa HardenedPass, in parole semplici: pass salva le password come file, OpenPGP le cifra, git le sincronizza." weight = 10 draft = false +++ HardenedPass si basa su tre strumenti. Non serve padroneggiarli, ma sapere cosa fa ciascuno rende facili da seguire tutte le altre pagine. ## pass: un file per ogni password [pass](https://www.passwordstore.org/) è un gestore di password per sistemi Unix. Non ha un database: ogni password è un piccolo file cifrato, e le cartelle le raggruppano. Questo albero di cartelle si chiama **archivio**. ``` store/ ├── .gpg-id ├── example.org.gpg ├── otp/ │ └── example.com.gpg └── work/ └── mail.example.org.gpg ``` Una volta decifrata, una voce è testo semplice. La prima riga è la password, tutto quello che sta sotto sono informazioni aggiuntive: ``` hunter2 username: alice url: https://example.org ``` HardenedPass legge queste righe e le mostra come campi separati. Qualsiasi programma che capisce `pass` può aprire lo stesso archivio, quindi le tue password non restano mai bloccate dentro questa app. ## OpenPGP: il lucchetto su ogni file Ogni voce è cifrata con [OpenPGP](https://www.gnupg.org/), usando una **coppia di chiavi**: - La **chiave pubblica** chiude i file. Non è segreta. - La **chiave privata** li apre. Non lascia mai i tuoi dispositivi. - La **passphrase** protegge la chiave privata: una copia del file della chiave, da sola, non serve a nulla a chi la trova. Il file `.gpg-id`, in cima all'archivio, dice per quali chiavi sono cifrate le voci. {{< callout type="danger" title="Fai un backup della chiave privata" >}} Se perdi la chiave privata o dimentichi la sua passphrase, nessuno potrà più decifrare il tuo archivio. Non esiste un reset. Tienine una copia in un posto sicuro e offline. {{< /callout >}} ## git: sincronizzazione e cronologia [Git](https://git-scm.com/) registra ogni modifica all'archivio e la copia tra i dispositivi attraverso un **remote**, cioè un repository su un server. Modifichi una voce sul telefono, l'app registra la modifica e la invia al remote, e gli altri dispositivi la scaricano da lì. Le vecchie versioni restano nella cronologia, quindi un errore si può annullare. Il server contiene solo file cifrati, ma ne può leggere i **nomi**. Chi lo gestisce può vedere che hai una voce chiamata `example.org`. Usa un repository privato, su un server di cui ti fidi. ## Come si incastra il tutto 1. Su un computer crei una coppia di chiavi, un archivio e un remote. 2. Sul telefono, HardenedPass clona l'archivio dal remote. 3. Importi la chiave privata nell'app. 4. L'app decifra le voci quando le apri e sincronizza le modifiche con git.