KeePassXC: password manager sicuro, gratuito e open source

15/04/2021

Proteggersi su Internet è importante, oggi più che mai, soprattutto da quando è arrivata la pandemia. In questa guida il mio interesse è quello di partire da due cose semplici quanto efficaci, la scelta di un’adeguata password per ciascun sito al quale siamo iscritti e come queste si possano gestire adottando un buon password manager.

In questo articolo vorrei proporre un buon compromesso tra:

  • Comodità: la sicurezza massima si potrebbe avere in un modo soltanto, prendendo un foglio, scrivendo le password a mano, crittografandole con un algoritmo che conosciamo solo noi, e quando necessario, prendendo il foglio, decifrando la password e scrivendola al computer. Tuttavia, questo nell’uso quotidiano è improponibile;
  • Privatezza: sarebbe preferibile che le password rimanessero comunque in un computer locale, dentro casa mia, e che non andassero su un server remoto, che avrebbe chiaramente maggior probabilità di essere bucato.
  • Sicurezza: le password devono essere dunque affidate a un software sicuro, che abbia il minor numero di falle di sicurezza possibili;

Il risultato di questa ricerca è il software KeePassXC, nato come un fork di KeePassX, a sua volta fork dell’originale KeePass, nato nel 2003. Si tratta di un software gratuito e open source, disponibile per tutte le piattaforme.

Panoramica del funzionamento

KeePass conserva le password associate ai siti in un database dall’estensione .kdbx, il quale viene cifrato con una master password, l’unica che DEVE essere ricordata per poter sbloccare il database e accedere al contenuto. Oltre alla master password, è possibile scegliere dei metodi alternativi, come per esempio una chiavetta USB o un file di sblocco.

Il file .kdbx va poi conservato nel proprio computer, in un qualsiasi altro computer presente nella rete locale o sincronizzato con un software P2P come Syncthing. La presenza della master password garantisce che, nel caso in cui il file venisse rubato, questo non possa essere in alcun modo aperto senza che si conosca appunto la master password. Pertanto, essere in possesso del file .kdbx senza un metodo di sblocco dello stesso, non serve a niente.

Reperire KeePassXC

KeePassXC è reperibile al sito https://keepassxc.org/download/. Disponibile per tutte le principali distribuzioni Linux, per macOS, anche per Apple Silicon, Windows e sotto forma di codice sorgente.

Mentre su Windows la procedura di installazione è come al solito guidata, su Linux basta un semplicissimo comando da terminale, cioè quello per installare il pacchetto in base alla propria distribuzione.

Consiglio per Ubuntu

Per quanto concerne le distribuzioni Linux in generale, il software è già incluso nei repository ufficiali. Tuttavia, per Ubuntu, è consigliabile aggiungere il PPA fornito sul sito, in quanto la versione presente nei repository ufficiali è aggiornata più raramente. Basta semplicemente digitare in serie:

sudo add-apt-repository ppa:phoerious/keepassxc
sudo apt install keepassxc

Al primo avvio il software chiederà se controllare periodicamente la presenza di aggiornamenti, condizione che deve essere logicamente acconsentita.

Panoramica impostazioni

Le impostazioni del software sono accessibili da Strumenti → Impostazioni. Le impostazioni sono suddivise in 6 schede laterali, a loro volta suddivise in sottoschede orizzontali.

Generale

La scheda Generale ci permette, sotto la voce Avvio di:

  • Consentire l’esecuzione di una sola istanza di Keepass;
  • Scegliere se avviare automaticamente o meno il programma immediatamente dopo il login dell’utente;
  • Modificare il comportamento del programma dopo lo sblocco del data base;
  • Aprire automaticamente l’ultimo database sbloccato all’avvio di KeePass. Si noti che il database NON viene mai sbloccato automaticamente, ma anzichè darci la possibilità di scegliere un database da sbloccare, ci viene aperto direttamente il prompt in cui inserire la password per sbloccare l’ultimo database;
  • Cercare automaticamente nuovi aggiornamenti.

Sotto la voce Gestione dei file sarà possibile:

  • Imporre al software il salvataggio automatico del database dopo ogni modifica;
  • Consiglio personale, è sempre quello di attivare la spunta Effettua una copia di sicurezza del database prima di salvarlo. In tal modo, nella cartella in cui risiede il database verrà creata una copia con estensione .old. Nel caso in cui si dovessere corrompere il database originale, magari per crash improvviso del programma durante il salvataggio, sarà possibile ripristinarne una copia risalente all’istante prima dell’ultimo salvataggio.

Sotto Interfaccia utente consiglio inoltre di attivare:

  • Minimizzare invece di uscire dall’app;
  • Visualizza icona nell’area di notifica del sistema
  • Nascondi finestra nell’area di notifica del sistema quando viene minimizzata

Sicurezza

  • Poichè possibile copiare negli appunti una password, è possibile impostare la pulizia automatica della clipboard dopo il tempo impostato in questa schermata;
  • Il database può essere bloccato dopo periodo impostato. Opzione che consiglio di abilitare;
  • Sotto riservatezza è possibile attivare un’opzione che consente di scaricare le icone dei siti web. Tale caratteristica ha più che altro un fattore estetico, per ogni voce viene visualizzata l’icona del sito web specifico. Alla fine attivarla non costa nulla.

Integrazione con i browser

La schermata Integrazione con i browser è importantissima, poichè ci consente di andare a definire tutti quei parametri che permettono di usare KeePassXC col browser per eseguire il login nei siti.

L’estensione di KeePassXC è disponibile per i principali browser, tra cui Chrome, Firefox e Microsoft Edge.

L’integrazione con browser va abilitata manualmente, spuntando l’opzione dedicata, dopodichè bisognerà selezionare i browser sui quali è stata installata l’estensione.

Personalmente, le altre opzioni vanno benissimo, per cui lascio a voi approfondirle e impostarle come meglio crediate. A questo punto possiamo passare al pratico e vedere come si comporta il software. Per uscire dalle impostazioni e salvare le modifiche, è sufficiente cliccare su OK.

Creazione di database

La schermata iniziale del programma permette di:

  • Creare un nuovo database
  • Aprire un database esistente
  • Importare database dal KeePass originale, 1Password o da un file CSV

Supponiamo chiaramente di non avere ancora un database e quindi di volerlo creare. Selezionando dunque Crea un nuovo database, ci viene chiesto di scegliere arbitrariamente un nome e una descrizione.

Cliccando su Continua, nella schermata successiva è possibile:

  • Modificare il tempo di decrittazione: che è sostanzialmente il tempo richiesto per decifrare il database dal momento in cui abbiamo inserito la password al momento in cui il database è leggibile. Di default è importato a 1 secondo, aumentandolo aumenta la protezione, poichè l’algoritmo diventa di ordine più complesso, a discapito di una maggior potenza di calcolo richiesta.
  • Nelle impostazioni avanzate è possibile in particolare modificare l’algoritmo, che di default è l’AES a 256 bit, che è abbastanza sicuro e allo stesso tempo adeguato per una potenza di calcolo media, quindi va benissimo.

Nella schermata successiva è possibile:

  • Scegliere la master password: non è obbligatoria, ma consigliatissima. Si può inserire in qualunque momento;
  • Inoltre è possibile associare un file di sblocco e una YubiKey.

Per semplifica, procederemo con l’inserimento della sola master password.

A questo punto, continuando, ci viene chiesto dove salvare il database. È consigliabile creare una cartella apposita, in modo tale che tutti i contenuti relativi a KeePass, tra cui i backup, vadano in essa.

Salvato il database, la fase di creazione del database è terminata. In qualsiasi momento è possibile modificare i parametri visti precedentemente da Database → Impostazioni database.

Gestione del database

Il database viene rappresentato:

  • A sinistra con una struttura ad albero, contenente la radice, con cartelle dette gruppi, contenenti le voci;
  • A destra con le voci appartenenti al gruppo selezionato. La radice stessa è considerabile il gruppo dei gruppi e può ovviamente contenere voci.

Creazione di un gruppo

Per creare un gruppo è sufficiente cliccare col tasto destro sulla radice o su un gruppo già esistente nella schermata di sinistra e selezionare Nuovo gruppo. Al nuovo gruppo è possibile impostare opzioni come:

  • Un nome;
  • Una nota, ovvero, una descrizione.

Per creare il gruppo, cliccare quindi OK.

Creazione di una voce

Per creare una voce è sufficiente cliccare sol tasto destro su uno spazio vuoto a destra e selezionare Nuova voce. Per ogni voce è possibile impostare:

  • Il titolo, arbitrario, che può semplicemente corrispondere al nome del sito web al quale assegnare la voce;
  • Il nome utente che si ha su quel sito web. Può essere anche l’indirizzo email, qualora l’accesso a quel sito web richiedesse un indirizzo email;
  • La password, cosa che ora vedremo nel dettaglio;
  • L’URL del sito web, questo importantissimo, in particolare quando si va ad usare l’estensione del browser, per identificare il sito web in tempo reale. Un piccolo consiglio è infatti quello di NON limitarsi a mettere solo l’URL del sito web, per dire www.facebook.com, ma di mettere l’URL che conduce alla schermata in cui eseguire il login. Ad esempio, se il link dove si fa il login è login.sitoweb.it, allora si deve mettere questo e non semplicemente www.sitoweb.it. Questo è un piccolo consiglio che vi do, poichè alcune volte mi è capitato che non venissero inserite automaticamente le credenziali nei campi di login, e molto spesso ciò era dovuto all’impostazione errata dell’URL. URL aggiuntivi possono essere impostati, ad ogni modo, nella scheda Integrazione con i browser;
  • La scadenza ed eventuali note.

Generatore di password

Approfittiamo della voce password per vedere il generatore di password integrato, che si può aprire cliccando l’icona accanto a quella dell’occhio sbarrato.

Per ogni password è possibile impostare:

  • La lunghezza;
  • Il tipo di caratteri da includere. Alcuni di questi selezionabili solo abilitando le scelte avanzate;
  • Quali parole includere, conteggiare, ecc.

La qualità della password è misurata sulla base di due parametri:

  • Qualità della password: la quale specifica semplicemente in italiano se la password è forte o debole
  • Entropia: misura quanto è casuale la password generata. Per essere sintetici, più la password è meno comune, più è alta l’entropia. Ad esempio, l’entropia di una password del tipo aaaa è di 4 bit, poichè aaaa è abbastanza prevedibile, mentre una password generata a caso e con tanti caratteri avrà un’entropia molto alta.

Prima di selezionare Applica password, consiglio di:

  1. Modificare leggermente la password, anche sostituendo o aggiungendo numeri, lettere e simboli a caso;
  2. Verificare se la password viene accettata sul sito, sulla base del numero di caratteri minimi e massimi richiesti, nonchè sul tipo di caratteri che è possibile inserire.
  3. A questo punto, è possibile selezionare Applica password per inserirla automaticamente nell’apposito campo.

Ci sono altre opzioni che è possibile impostare per ciascuna voce, che però non approfondiremo in questo video, quanto visto finora è più che sufficiente per utilizzare il programma. Per aggiungere una voce al gruppo è sufficiente cliccare su OK.

Gestione di una voce

Selezionando una qualsiasi voce, in basso a destra saranno visualizzati:

  • Nella scheda Generale: il nome utente, la password (di default nascosta), le note, l’URL e l’eventuale scadenza;
  • Altre schede avanzate e inerenti al completamento automatico.

Facendo tasto destro su una voce è possibile:

  • Copiare il nome utente o la password;
  • Copiare uno degli attributi, ad esempio l’URL;
  • Gestire l’autenticazione OTP, che vedremo tra poco;
  • Modificare, clonare o eliminare la voce;
  • Aprire l’URL correlato o scaricare la favicon dall’URL ai fini della personalizzazione.

Eliminare una voce

Per eliminare una voce è sufficiente cliccare col tasto destro su di essa e selezionare Elimina voce. Di default, le voci saranno spostate in un cestino creato appositamente per consentire l’eventuale ripristino di voci eliminate erroneamente. Il cestino può ad ogni modo essere svuotato dal tasto destro e, in generale, il comportamento dell’eliminazione delle voci può essere modificato dalle impostazioni del database.

Integrazione col browser

Vediamo a questo punto come si comporta l’integrazione col browser. Per questa prova su strada utilizzeremo Firefox con già installata l’estensione KeePassXC.

La prima cosa che bisogna fare, appena installata l’estensione, è connettere il database con questa.

  1. Facciamo click sull’icona della chiavetta e selezioniamo Connessione. Qualora al suo posto vi fosse un errore, evidentemente non viene rilevato il database. Provare a riavviare il programma e il browser e accertarsi che il database sia sbloccato;
  2. Nella finestra di associazione, inserire arbitrariamente un nome univoco per il computer, quindi clicchiamo su Salva e permetti l’accesso.
  3. L’estensione è ora collegata.

Aggiunta di una nuova voce dal browser

È possibile aggiungere una nuova voce, o manualmente, oppure automaticamente, lasciando che sia il programma a rilevare quando si sta eseguendo l’accesso a un sito con delle credenziali mai rilevate prima d’ora.

Andando sul sito e inserendo gli appositi dati, comparirà immediatamente in alto un popup che avvisa del rilevamento di credenziali inserite, e ci propone di aggiungerle. Sarebbe possibile anche la modifica, qualora almeno il campo nome utente fosse già esistente. Cliccando su Nuovo, le credenziali vengono aggiunte automaticamente e sarà possibile visualizzarle nel database.

C’è purtroppo un piccolo problema: il popup compare solo se il database è già sbloccato. Per ovviare a questo problema, le strade da intraprendere sono queste:

  • Quando si è intenzionati ad aggiungere una nuova voce, si sblocca prima il database in modo manuale;

oppure

  • Si disattiva il blocco automatico del database.

Come terza opzione, forse meno comoda, è l’aggiunta manuale di una voce, della quale vedremo tra poco il comportamento.

Accedere con voci già create

Per fare il login con voci già esistenti, basta semplicemente cliccare sull’icona accanto al campo. Qualora il database fosse bloccato, ci verrà chiesto automaticamente di sbloccarlo.

A questo punto, verrà inserita automaticamente l’ultima voce relativa a quell’URL. In alternativa, cliccando su uno dei campi, è possibile visualizzare tutte le voci correlate a tale URL.

Un esempio pratico: qualora avessimo più account appartenenti al sito iliad.it, queste appariranno in elenco e saranno selezionabili.

Accedere con voci aggiunte da KeePass

Supponendo di non aver aggiunto la voce mediante l’estensione, ma intervenendo sul database stesso, si può notare che prima di poter inserire le credenziali dei campi, ci viene chiesto di verificare che il sito al quale vogliamo accedere sia quello corretto. Mettiamo quindi la spunta alle voci associabili, quindi su Ricorda e selezioniamo Consenti selezionati. A questo punto sarà possibile selezionare la voce desiderata dall’elenco.

Gestire l’autenticazione OTP

Come già saprete, OTP, che sta per One Time Password, è appunto una password temporanea che viene inviata presso un dispositivo per l’autenticazione a due fattori su un sito, una banca, ecc. KeePassXC può essere configurato per fungere da app di autenticazione, tipo Google Authenticator, per la gestione degli OTP in un sito. Ciò rappresenta una caratteristica molto interessante, in quanto l’autenticazione OTP è memorizzata sul database, per cui è accessibile automaticamente da qualsiasi postazione che abbia una copia di quel database. Vediamo dunque come si configura:

  1. Clicchiamo col tasto destro sulla voce per la quale ci interessa configurare l’autenticazione a due fattori e andiamo su TOTP → Configura TOTP;
  2. Bisognerà inserire la chiave segreta, che consiste in un codice fornito dal sito web stesso nel momento in cui andiamo a configurare l’autenticazione a due fattori per un’app di autenticazione, quale che sia.
  3. Tipicamente le impostazioni sono conformi all’RFC 6238, che per essere sintetici, gli RFC definiscono i protocolli di funzionamento di internet. Ci sono però alcune eccezioni, come il token di Steam. Sulla base di ciò, potrebbero essere richieste delle impostazioni personalizzate, ad ogni modo, quelle predefinite vanno bene nel 99% dei casi.
  4. Clicchiamo su OK e a questo punto l’autenticazione a due fattori è configurata.

Quando dovremo inserire il codice a due fattori nel login di un sito, sarà sufficiente fare tasto destro sulla voce, TOTP → Copia TOTP oppure Visualizza TOTP.

Come potete vedere, niente di più semplice.

Tiriamo le somme

Per tirare le somme, KeePassXC rappresenta un ottimo password manager, non ha nulla da invidiare ai servizi commerciali quali LastPass o 1Password, anzi direi meglio sotto certi punti di vista, visto che la memorizzazione delle password è esclusivamente offline o comunque su un computer a noi fidato.

Personalmente lo promuovo a pieni voti. Certo, non manca quale bug, ma sono cose che vanno in secondo piano rispetto alle funzionalità offerte da questo software. Inoltre è gratuito e open source, quindi massima trasparenza e costo nullo.