¿Pero qué pasa si alguien cambia su contraseña? Entonces su clave de contraseña
No podrá acceder a sus mensajes cifrados. Cual es la mejor manera
para ir sobre esto?
Cuando alguien cambia su contraseña, todos los sistemas con los que estoy familiarizado requieren que el usuario escriba tanto la contraseña anterior como la nueva.
simple
Si solo hay una pequeña cantidad de datos cifrados, y desea que su usuario pueda acceder a esos datos solo con la nueva contraseña, el método más simple es descifrar todos los datos con la contraseña anterior para recuperar el texto sin formato. y luego encripta el texto simple usando la nueva contraseña.
direccionamiento indirecto
Mi entendimiento es que muchos sistemas tienen varios niveles de direccionamiento indirecto.
Cuando alguien quiere leer el texto sin formato de un documento, lo que realmente sucede es que la contraseña ingresada se usa para descifrar un conjunto de claves que almacena (en forma cifrada) una clave maestra.
(por lo general, el archivo "~ / .ssh / id_rsa" o el archivo "~ / Library / Keychains /").
El documento cifrado normalmente se almacena en RFC 4880 OpenPGP Formato de mensaje o algo similar.
La clave maestra se utiliza para descifrar uno de los bloques en el encabezado correspondiente a esa clave maestra, dando la clave simétrica única utilizada solo para el cuerpo de este documento.
Luego esa clave simétrica se usa para descifrar el cuerpo del documento encriptado, produciendo el texto plano.
Cuando alguien cambia a una nueva contraseña, generalmente se usa la contraseña antigua descifra todo el anillo de claves, y luego el sistema cifra el anillo de claves con la nueva contraseña.
Todos los archivos aún son accesibles para ese usuario, porque la misma clave maestra se usa para descifrar ese archivo.
Alternativamente, para cada documento al que el usuario tiene permiso de acceso, se podría agregar otro bloque al encabezado de ese archivo cifrado que contiene una versión cifrada de la misma clave simétrica única del documento, cifrada con una nueva clave maestra nueva.
Idealmente, el usuario llevaría su propio llavero y nadie más tendría acceso a él.
En la práctica, muchos sistemas almacenan un anillo de claves (encriptado) para cada usuario.