Almacenamiento de datos sensibles Seguir
El navegador Brave se basa en el proyecto Chromium y hay ciertos comportamientos del navegador que heredamos al utilizar ese código en Brave. Por ejemplo, Chromium almacena tus datos sensibles (contraseñas, cookies/sesiones web, etc.) encriptados localmente.
Cómo funciona
En el código, el navegador utiliza la función OSCrypt para realizar esta tarea.
Durante el proceso de encriptación, OSCrypt vincula tus datos al usuario de tu sistema operativo para garantizar que sólo se puedan desencriptar con la contraseña de tu SO.
OSCrypt tiene tres implementaciones diferentes en el escritorio: una para cada plataforma soportada:
-
macOS:
- Crea la entrada
Brave Safe Storage
en tu llavero y le añade una secuencia aleatoria de bytes codificada en base64, que utilizará como clave de cifrado (consulta tu llavero deinicio de sesión
en la sección Acceso a Llaveros ).
- Crea la entrada
-
Ventanas:
- Se guarda una clave de encriptación similar en
os_crypt.encrypted_key
(en el archivo deestado local
, ubicado en%userprofile%/AppData/Local/BraveSoftware/Brave-Browser/Datos de usuario
), que se encripta con la API de protección de datos de Windows(DPAPI/CriptarProtegerDatos()
).
- Se guarda una clave de encriptación similar en
-
Linux:
- La llave de encriptación será añadida a un backend de almacenamiento de contraseñas, que por defecto se infiere del entorno de escritorio que uses (por ejemplo
GNOME Libsecret
para GNOME,KWallet 5
para KDE 5, etc.).
- La llave de encriptación será añadida a un backend de almacenamiento de contraseñas, que por defecto se infiere del entorno de escritorio que uses (por ejemplo
Las causas más comunes de pérdida de datos
-
Independiente de la plataforma:
- Copiar perfiles de navegador entre máquinas (por ejemplo, a través de una memoria USB, Time Machine copia de seguridad, rsync, etc.): Dado que la instalación del navegador en la máquina de destino creará una clave de encriptación diferente a la que se está utilizando en la máquina de origen, es imposible desencriptar cualquiera de los datos originales en la nueva máquina — la forma preferida de migrar datos de perfil es a través de la Sincronización.
-
Dependiente de la plataforma:
-
macOS:
- Si un administrador restablece la contraseña de la cuenta de macOS del usuario, cualquier intento posterior de descifrar datos previamente cifrados fallará.
-
Ventanas:
- Igual que en el caso anterior de macOS (por ejemplo, mediante
net user <username> *
), pero el descifrado también fallará siempre que se restablezca la contraseña de un usuario sin proporcionar la contraseña antigua. Así, aunque los usuarios cambien sus propias contraseñas a través de lusrmgr.msc en la Consola de administración de Microsoft, por ejemplo, se comportarán como si las hubiera restablecido un administrador. El motivo es que antes de que la DPAPI vuelva a cifrar susClaves Maestras
con la nueva contraseña, primero necesitaría la antigua para descifrar las claves. En circunstancias normales, si un usuario cambia de nuevo a su antigua contraseña, todo volverá a funcionar, pero si Chromium se entera del primer cambio de contraseña antes (es decir, la primera vez queCryptUnprotectData()
falla enos_crypt.encrypted_key
), eliminará inmediatamente la antigua clave de encriptación y generará una nueva. En ese punto, cualquier dato que haya sido encriptado con la antigua clave de encriptación será irrecuperable, sin importar si el usuario restaura su contraseña anterior de la cuenta de Windows después.
- Igual que en el caso anterior de macOS (por ejemplo, mediante
-
Linux:
- Cambiar entre entornos de escritorio que no tienen el mismo backend de almacenamiento de contraseñas por defecto (por ejemplo, cambiar de GNOME a KDE) sin que Chromium lo sepa (mediante
--password-store=gnome-libsecret
en este ejemplo).
- Cambiar entre entornos de escritorio que no tienen el mismo backend de almacenamiento de contraseñas por defecto (por ejemplo, cambiar de GNOME a KDE) sin que Chromium lo sepa (mediante
-
macOS:
Causas menos comunes/más oscuras de la pérdida de datos
-
macOS:
- El campo
Fecha de modificación
de la entrada del llavero deBrave Safe Storage
(que debería ser tan antigua como el navegador) cambia (sin que la contraseña del usuario sea restablecida por un administrador), lo que sugiere que o bien:- Chromium sobrescribió la clave de encriptación en algún momento por error, o
- La API del llavero de Apple ha informado inadvertidamente de que
Brave Safe Storage
no está presente (lo que acabará provocando que Chromium sobrescriba la clave de cifrado), o bien - otra aplicación (incluida en la lista de control de acceso de
Brave Safe Storage
) realizó cambios en la entrada.
- La Cuenta de Apple del usuario se encuentra en un estado defectuoso en su máquina.
- El campo
-
Ventanas:
-
CryptUnprotectData()
devuelveFALSE
, fallando con un error inesperado/no documentadoGetLastError()
lo que provoca que Chromium cambie a otra clave de encriptación enEstado Local
.
-
Conclusión
La lista anterior no es completa ni mucho menos. Puesto que tanto Brave como Chrome se basan en Chromium, todo lo anterior se aplica a Brave tanto como a Chrome.
Como regla general:
- Utiliza
Brave
Sync: como la clave de encriptación de Sync se deriva delCódigo de Sincronización
, Sync no se verá afectado si la clave de encriptación de OSCrypt se pierde/sobrescribe/corrompe/no se puede acceder a ella/se informa de que no está presente, etc., por lo que puedes utilizar Sync para copiar los tipos de datos que hayas activado enbrave://settings/braveSync/setup
(enAjustes de Sincronización
) desde otro dispositivo. - Ten cuidado con el hecho de que las cosas fuera del ámbito de Chromium pueden inutilizar las cosas dentro de Brave/Chrome, es decir, es demasiado fácil dispararse en el pie haciendo cosas aparentemente inocentes.
Además de localizar los errores específicos de la plataforma que afectan a OSCrypt, esperamos que Chromium considere la posibilidad de ofrecer a los usuarios una forma de hacer copias de seguridad y restaurar las claves de encriptación.