Decisiones
Decisiones de ingeniería, con sus costos
Cada decisión significativa se registra de la misma forma: el contexto, la elección, y — con honestidad — lo que ganó y lo que cedió. Este índice crece a medida que se documentan decisiones.
Una decisión no está completa hasta que el costo que aceptaste también queda escrito.
Cifrado de PII a nivel de aplicación en lugar de cifrado solo en base de datos
Una plataforma de salud segura manejaba datos personales altamente sensibles bajo estrictos requisitos de privacidad y cumplimiento. El cifrado a nivel de base de datos, por sí solo, deja el texto plano expuesto a cualquier cosa con acceso a la base de datos.
Cifrar múltiples categorías de PII en la capa de aplicación mediante envelope encryption con X25519, derivar las llaves de cifrado de llaves del cliente con Argon2id, mantener las llaves privadas descifradas solo en memoria volátil del navegador y usar hashes determinísticos SHA-256 cuando los campos cifrados debían seguir siendo consultables. El acceso a los datos siguió el principio de mínimo privilegio.
- Defensa en profundidad más allá del límite de la base de datos
- Separación llaves/datos vía envelope encryption y una mejor postura de gestión de llaves
- Menor exposición por almacenamiento persistente de llaves en el cliente gracias a la retención solo en memoria
- Postura de cumplimiento y auditabilidad apropiada para PII de salud
- Mayor complejidad de implementación
- Los campos cifrados no pueden consultarse por igualdad normal — se necesitaron hashes determinísticos SHA-256, aceptando la filtración de igualdad donde las búsquedas eran necesarias
- El procesamiento asíncrono del intake y la operación de workers añadieron complejidad de implementación
- La retención solo en memoria exige autenticarse de nuevo tras recargar la página o cerrar la pestaña
La seguridad debe ser parte de la arquitectura desde el inicio — no puede añadirse al final.
Aparece en · Arquitectura privacy-first en una plataforma de salud