- Se descapó
- 19 de agosto de 2026 a las 18:38 UTC
- Autor
- Kamo
- Compromit
- e64cc8b
Cada cuerpo de notas en la producción era ilegible. NOTAS.MASTER.ENCRYPTION-KEY nunca se estableció en ninguna parte - no en el despliegue, y el ConfigMap desplegado no llevaba notas: bloque en absoluto - así que notes.master-encryption-key-llave resuelto a vaciar y getUserEncryptionKey generó una clave AES aleatoria en el montón en el primer uso. Eso La llave vivió exactamente tanto como la cápsula. Cada despliegue, OOM o node se mueven huérfanos cada nota escrita antes: descifrado tirado, el contenido fue anulado, y desde un Contenido guardar deliberadamente contenido de NULLsPlain no había nada legible. El La nota mantuvo su título y color y perdió su cuerpo. Una clave ausente detiene ahora el servicio en la construcción. Inventar uno es el fracaso modo, no un retroceso: un servicio de notas que no puede leer las notas de ayer es peor que una que no surge, porque la primera destruye los datos en silencio. La clave en sí viene del nuevo secreto de la clave de los billetes, conectado a través de ambos el ConfigMap y el despliegue, y no deben ser rotados sin re-encriptación. Las claves por miembros ahora vienen de HKDF-SHA256 en lugar de XOR contra una repetición "usuario-oid" cadena, que era reversible - una tecla de miembro filtrada más un identificador conocido Recuperó la llave maestra y con ella todas las notas de todos los demás miembros. Las llaves también están A la medida, a la membresía, que coincide con la forma en que se vislumbran las notas. Ni tampoco cambio cuesta una migración: no se legible para empezar ningún texto cifrado existente. decryptDTO deja de reportar un fallo como nota vacía y fija descifradoFailado, para que un cliente pueda negarse a escribir sobre lo que no podía leer.