Estoy en el proceso de cifrar los datos del usuario en mi aplicación y he adoptado el esquema en esta respuesta para proteger los correos electrónicos, contraseñas, nombres y otros detalles privados de los usuarios. Estoy usando una clave sustituta de AES y una clave de bloqueo generada a partir de la contraseña.
Hasta ahora, todo bien.
Sin embargo, me he dado cuenta de que cuando llego al estado del usuario (como un feed de Facebook), no es tan sencillo.
Por supuesto, puedo cifrar y recuperar el estado del usuario con el esquema anterior. Pero, ¿cómo obtengo el estado de sus amigos para que aparezcan en el feed del usuario? De acuerdo con el esquema anterior, necesitaría tener la contraseña de un amigo para descifrar esto. Por diseño, nunca veo la contraseña de un amigo, y el usuario solo conoce su propia contraseña.
La única forma que puedo encontrar es algo así como esta respuesta que utiliza una clave de documento y una implementación de clave de usuario.
¿Realmente tengo que esforzarme para implementar OpenPGP?
Cuando un usuario agrega amigos, ¿tengo que agregar su clave a todos los documentos previamente encriptados? No parece factible. ¿Cómo lo hacen las compañías de medios sociales?