Proton Authenticator è un’app di autenticazione a due fattori (2FA) open source che genera codici password one-time basati sul tempo (TOTP) sul tuo dispositivo, permettendoti di accedere ai servizi online con un ulteriore livello di sicurezza. Utilizza la stessa crittografia ben testata che protegge il resto dell’ecosistema Proton. Proton Authenticator è unico in quanto è stato progettato da zero per essere disponibile su quasi tutte le piattaforme preservando la tua privacy e dandoti la totale proprietà sui tuoi dati.

A differenza di altre app di autenticazione, Proton Authenticator protegge i tuoi dati con crittografia end-to-end, anche quando attivi la sincronizzazione del dispositivo.

Ciò significa che Proton Authenticator impedisce a chiunque, inclusa Proton stessa, di sapere con quali servizi online hai un account. Queste informazioni, proprio come le tue email o la cronologia di navigazione, possono rivelare molto su di te e proteggerle è essenziale per mantenere la tua privacy.

La crittografia end-to-end di Proton Authenticator garantisce che tutte le operazioni crittografiche, incluse la generazione delle chiavi e la crittografia dei dati, vengano eseguite localmente sul tuo dispositivo. Ciò significa che i tuoi dati non crittografati non possono essere accessibili a Proton o condivisi con terze parti. I server Proton non hanno mai accesso ai tuoi dati non crittografati, inclusa la password del tuo Proton Account.

Modello di crittografia

Proton Authenticator adotta un approccio completo per garantire la massima sicurezza e privacy per tutti i dati dell’Utente. Tutte le operazioni crittografiche avvengono localmente sul tuo dispositivo e qualsiasi dato trasmesso al server è sempre crittografato. Proton non ha mai accesso alle chiavi in testo in chiaro necessarie per decriptare i dati dell’Utente, rendendo impossibile per noi decriptare i dati archiviati, anche se richiesto da terze parti.

Proton Authenticator utilizza la stessa crittografia avanzata che usiamo per l’autenticazione in Proton Mail. Ciò include l’utilizzo di una versione rafforzata del protocollo Secure Remote Password (SRP) che offre garanzie di sicurezza più forti contro gli attacchi man-in-the-middle (MITM). La nostra implementazione significa che anche un aggressore che può leggere, modificare, ritardare, distruggere, ripetere o fabbricare arbitrariamente messaggi tra Proton e un Utente in modo non rilevabile è limitato a controllare solo un singolo tentativo di indovinare la password per ogni tentativo di login, l’equivalente di provare ad accedere direttamente. In questo modo, anche se Proton venisse compromessa e agisse in modo dannoso, le informazioni equivalenti alla password non verrebbero mai rivelate.

Leggi di più sulla crittografia dell’autenticazione di Proton

Crittografia dei dati

Proton Authenticator ti consente di archiviare in modo sicuro i tuoi codici 2FA, anche se non hai un Proton Account. Ciò significa che il processo di crittografia iniziale deve essere eseguito interamente sul tuo dispositivo locale. Quindi, se decidi di voler utilizzare il tuo Proton Account per sincronizzare i tuoi codici tra dispositivi, possiamo utilizzare le chiavi crittografiche archiviate sui server Proton per eseguire la sincronizzazione.

La crittografia di Proton inizia con il server Proton che fornisce la versione crittografata della chiave root che l’app di autenticazione utilizza per crittografare i dati dell’Utente. Ogni Utente Proton ha una Chiave Utente asimmetrica e Proton crittografa questa Chiave Utente sul tuo dispositivo come segue:

  • Account che utilizzano una password dell’account singola: Proton crittografa la Chiave Utente con un hash bcrypt della password dell’account e del salt dell’account.
  • Account che utilizzano la nostra funzionalità di password dell’account multiple: Proton crittografa la Chiave Utente con un hash bcrypt della password della chiave e del salt dell’account.

Proton Authenticator utilizza bcrypt e un salt dell’account per eseguire l’hash della tua password come ulteriore livello di protezione contro gli attacchi di forza bruta. Anche se un attore malintenzionato ottenesse l’accesso al database Proton, le chiavi del tuo account sarebbero al sicuro contro gli attacchi di forza bruta.

Una volta attivata la sincronizzazione, Proton Authenticator genera una Chiave Authenticator casuale a 32 byte. Questa chiave è crittografata e firmata con la tua Chiave Utente, garantendo che solo tu possa decriptarla: nessuno (nemmeno Proton) può leggere o creare una nuova Chiave Authenticator. Una volta che hai accesso alla Chiave Authenticator, tutte le voci in Proton Authenticator vengono crittografate utilizzando AES-GCM a 256 bit.

Poiché Proton Authenticator non richiede un Proton Account, abbiamo anche bisogno di uno schema di crittografia separato che archivi in modo sicuro i tuoi dati quando esistono solo sul tuo dispositivo. Alla fine, il modo più semplice per implementarlo è trattare il Proton Account come un fornitore di chiavi separato. Alla fine, appare come segue:

Un diagramma della crittografia di Proton Authenticator senza un Proton Account

Per l’archiviazione locale delle chiavi sul tuo dispositivo, ci affidiamo ai fornitori di archiviazione sicura delle chiavi di ciascun sistema:

  • Android: Archiviamo in modo sicuro la chiave nell’Android Keystore(nuova finestra), che viene poi utilizzata per crittografare una Chiave Casuale Locale che archiviamo nel filesystem protetto dell’app. Quella chiave viene utilizzata per crittografare simmetricamente tutte le voci di Proton Authenticator sul tuo dispositivo.
  • iOS/iPadOS/macOS: Generiamo una Chiave Casuale Locale e la archiviamo nel servizio Keychain(nuova finestra). Quella chiave viene utilizzata per crittografare simmetricamente tutte le voci di Proton Authenticator sul tuo dispositivo.
  • Windows: Generiamo una Chiave Casuale Locale e la archiviamo nel Windows Credential Manager(nuova finestra). Quella chiave viene utilizzata per crittografare simmetricamente tutte le voci di Proton Authenticator sul tuo dispositivo. Se la connessione a WCM non è disponibile, consentiamo all’Utente di crittografare la propria Chiave Casuale Locale con una password.
  • Linux: Generiamo una Chiave Casuale Locale e la archiviamo nel DBUS Secret Service disponibile. Quella chiave viene utilizzata per crittografare simmetricamente tutte le voci di Proton Authenticator sul tuo dispositivo. Se non è configurato alcun servizio segreto DBUS, consentiamo all’Utente di crittografare la propria Chiave Casuale Locale con una password.

Crittografia del backup

Uno dei principali punti di forza di Proton Authenticator è che controlli sempre i tuoi dati. Ciò include la possibilità di eseguire periodicamente il backup dei tuoi codici sul tuo dispositivo locale e impostare una password che crittografa questi dati sensibili.

Per implementare questo backup locale sicuro, utilizziamo la password che hai fornito per derivare una chiave di crittografia sicura usando Argon2 come KDF (Funzione di Derivazione della Chiave). Una KDF viene utilizzata per generare chiavi crittografiche da input segreti, come le password inserite dall’Utente, e il suo scopo principale è migliorare la sicurezza rendendo più difficile e dispendioso in termini di tempo per gli aggressori crackare le password. Utilizzando questa chiave di crittografia generata dalla tua password, serializziamo tutte le tue voci e le crittografiamo per garantire che i tuoi dati rimangano crittografati in modo sicuro, anche se il backup trapela. E utilizzando tecnologie note e aperte, sei in grado di decriptare i tuoi dati senza utilizzare Proton Authenticator, permettendoti di rimanere in controllo anche se decidi di passare a un’altra app di autenticazione.

Più sicurezza grazie alla trasparenza

Come tutti i servizi Proton, Proton Authenticator è open source. Chiunque può consultare il nostro codice sorgente per verificare il nostro modello di sicurezza. Come per gli altri nostri servizi, anche Proton Authenticator sarà sottoposto a regolari audit di sicurezza indipendenti e condivideremo pubblicamente questi rapporti di audit non appena saranno disponibili.

Infine, per i ricercatori di sicurezza interessati, Proton Authenticator è idoneo per il programma bug bounty di Proton che offre premi fino a 100.000 $ per la scoperta di bug nel software di Proton.