Saltar al contenido

Elegir entre plugins, y el caso Stronghold

El ecosistema ofrece más de una opción para guardar secretos. El criterio para elegir una dependencia crítica, aplicado a un caso real donde la respuesta cambió con el tiempo.

Los cinco criterios

Para cualquier dependencia que guarde secretos, no solo para ésta:

El caso concreto

El plugin en cuestión envuelve un motor de almacenamiento cifrado que no es del sistema operativo: guarda un fichero propio, cifrado con una clave derivada de una contraseña. Aplicando los criterios:

  • La clave raíz sale de una contraseña, que tú tienes que proporcionar. Y aquí está el nudo: si esa contraseña la introduce el usuario, funciona —es la opción legítima del nivel 34.2— y el precio es que la escriba. Si la genera tu aplicación, tiene que guardarla en algún sitio… que acaba siendo el llavero del sistema, con lo que has añadido una capa para acabar dependiendo de lo que ibas a evitar.
  • No usa el almacén del sistema, así que pierdes la integración con el inicio de sesión, la exclusión de las copias y —en macOS— la identidad de aplicación.
  • Y el proyecto del que depende dejó de mantenerse activamente, lo que en una dependencia criptográfica no es un detalle: es la señal más clara de las cinco.

La conclusión razonable para una aplicación de escritorio normal es el almacén del sistema con la librería del nivel 38.1. Y no porque el plugin esté mal hecho, sino porque resuelve un problema distinto del que tienes.

Cuándo un almacén propio sí tiene sentido

Para ser justos, hay tres casos donde un almacén cifrado propio es la respuesta correcta:

Y fíjate en que los tres casos legítimos tienen la misma forma: hay una contraseña que alguien aporta. Eso es lo que hace que el cifrado propio valga algo, y es lo que falta cuando se usa para «recordar la sesión sin molestar al usuario».

El criterio que sobrevive al ecosistema

Lo que hay que llevarse, porque los plugins concretos cambian:

Ante cualquier opción de almacenamiento seguro, la primera pregunta es siempre de dónde sale la clave raíz. Si la respuesta es el sistema operativo o el usuario, la opción es real. Si es cualquier otra cosa, es contención — que a veces basta, y hay que saber que lo es.

Y la segunda: ¿podría leer estos datos si esta librería desapareciera mañana? Con el almacén del sistema, sí: los datos están en un formato del sistema y hay otras formas de llegar. Con un formato propio de una librería sin mantenimiento, no.