Archiviazione di dati sensibili Segui
Il browser Brave è basato sul progetto Chromium e ci sono certi comportamenti del browser che ereditiamo utilizzando quel codice in Brave. Ad esempio, Chromium archivia i tuoi dati sensibili (password, cookie/sessioni web, ecc.) localmente crittografati.
Come funziona
Nel codice, il browser utilizza il componente OSCrypt per svolgere questo compito.
Durante il processo di crittografia, OSCrypt lega i tuoi dati al tuo utente del sistema operativo per assicurarsi che siano decrittografabili solo con la password del tuo OS.
OSCrypt ha tre diverse implementazioni su desktop – una per ciascuna piattaforma supportata:
-
macOS:
- Crea la voce
Brave Safe Storage
nel tuo portachiavi e aggiunge una sequenza casuale di byte codificata in base64, che sarà utilizzata come chiave di crittografia (consulta il tuo portachiavilogin
nell'app Accesso Portachiavi).
- Crea la voce
-
Windows:
- Una chiave di crittografia simile viene salvata in
os_crypt.encrypted_key
(nel fileLocal State
, situato in%userprofile%/AppData/Local/BraveSoftware/Brave-Browser/User Data
), che è crittografata con il Data Protection API di Windows (DPAPI/CryptProtectData()
).
- Una chiave di crittografia simile viene salvata in
-
Linux:
- The encryption key will be added to a password store backend, which by default is inferred from the desktop environment you use (e.g.
GNOME Libsecret
for GNOME,KWallet 5
for KDE 5, etc.).
- The encryption key will be added to a password store backend, which by default is inferred from the desktop environment you use (e.g.
Le cause più comuni di perdita di dati
-
Indipendenti dalla piattaforma:
- Copiare i profili del browser tra le macchine (ad es. tramite una chiavetta USB, backup di Time Machine, rsync, ecc.): dato che l'installazione del browser sulla macchina di destinazione creerà una chiave di crittografia diversa da quella utilizzata sulla macchina di origine, è impossibile decrittografare qualsiasi dato originale sulla nuova macchina — il modo preferito per migrare i dati del profilo è tramite Sync.
-
Dipendenti dalla piattaforma:
-
macOS:
- Se un amministratore reimposta la password dell'account macOS dell'utente, eventuali tentativi successivi di decrittografare dati precedentemente crittografati falliranno.
-
Windows:
- Come per macOS sopra (ad es. tramite
net user <username> *
), ma la decrittografia fallirà anche ogni volta che la password di un utente viene reimpostata senza fornire la vecchia password. Quindi anche se gli utenti cambiano le proprie password tramite lusrmgr.msc nella Microsoft Management Console, si comporterà proprio come se fossero state reimpostate da un amministratore. Il motivo di ciò è che prima che il DPAPI re-crittografi le sueChiavi Maestre
con la nuova password, avrebbe bisogno della vecchia per decrittografare le chiavi. In circostanze normali, se un utente torna alla sua vecchia password, può continuare a lavorare, ma se Chromium viene a sapere del primo cambio di password prima (cioè la prima volta cheCryptUnprotectData()
fallisce suos_crypt.encrypted_key
), eliminerà immediatamente la vecchia chiave di crittografia e ne genererà una nuova. A quel punto, qualsiasi dato che è stato crittografato con la vecchia chiave di crittografia è irrecuperabile — indipendentemente dal fatto che l'utente ripristini successivamente la precedente password dell'account Windows.
- Come per macOS sopra (ad es. tramite
-
Linux:
- Cambiare tra ambienti desktop che non predefiniscono lo stesso backend di archiviazione delle password (ad esempio, passando da GNOME a KDE) senza informare Chromium (tramite
--password-store=gnome-libsecret
in questo esempio).
- Cambiare tra ambienti desktop che non predefiniscono lo stesso backend di archiviazione delle password (ad esempio, passando da GNOME a KDE) senza informare Chromium (tramite
-
macOS:
Cause meno comuni/più oscure per la perdita di dati
-
macOS:
- Il campo
Date Modified
della voce del portachiavi diBrave Safe Storage
(che dovrebbe essere vecchio quanto il browser) cambia (senza che la password dell'utente venga reimpostata da un amministratore), il che suggerisce che o:- Chromium ha sovrascritto per errore la chiave di crittografia a un certo punto, oppure
- L'API del portachiavi di Apple ha erroneamente segnalato che
Brave Safe Storage
non era presente (il che alla fine porterà Chromium a sovrascrivere la chiave di crittografia), oppure - un'altra app (elencata nell'elenco di controllo degli accessi di
Brave Safe Storage
) ha apportato modifiche alla voce.
- L'account Apple dell'utente è in uno stato difettoso sulla loro macchina.
- Il campo
-
Windows:
-
CryptUnprotectData()
restituisceFALSE
, fallendo con unGetLastError()
inaspettato/non documentato, risultando nel passaggio di Chromium a un'altra chiave di crittografia inLocal State
.
-
Conclusione
L'elenco sopra riportato non è completo in alcun modo. Poiché sia Brave che Chrome sono costruiti su Chromium, tutto quanto sopra si applica a Brave, così come si applica a Chrome.
Come regole generali:
- Utilizzare Brave Sync — poiché la chiave di crittografia di Sync è derivata dal
Codice Sync
, Sync non sarà influenzato se la chiave di crittografia di OSCrypt viene persa/sovrascritta/danneggiata/non accessibile/segnalato come non presente, ecc., quindi potete utilizzare Sync per copiare i tipi di dati che avete abilitato inbrave://settings/braveSync/setup
(inImpostazioni di Sync
) da un altro dispositivo. - Si tenga presente che le cose al di fuori del regno di Chromium possono rendere inutilizzabili le cose all'interno di Brave/Chrome, cioè è troppo facile mettersi nei guai facendo cose apparentemente innocenti.
Oltre a rintracciare i bug specifici della piattaforma che interessano OSCrypt, speriamo che Chromium prenda in considerazione la possibilità di fornire agli utenti un modo per eseguire backup e ripristino delle chiavi di crittografia.