Files
dtic-DIIAA/tools/ns8-candados

🔐 ns8-candados: Gestión de Secretos y Autorización SSH

Resumen Ejecutivo

ns8-candados es una herramienta de seguridad robusta diseñada para centralizar, cifrar y gestionar secretos operativos del ecosistema srv-ns8. Utiliza el algoritmo industrial AES-256-GCM para garantizar la integridad y confidencialidad de las credenciales. Su arquitectura implementa un sistema de Candado Temporal (MFA) que requiere una autorización explícita para liberar secretos, protegiendo la información incluso si el servidor se ve comprometido.


🔍 Análisis Estructural

  • Tipo de Proyecto: Utilidad de seguridad CLI escrita en Ruby.
  • Organización: Estructura modular centrada en la protección del dato:
    • Cripto: Motor criptográfico AES-256-GCM con IV aleatorio.
    • Boveda: Persistencia cifrada en .boveda.json.
    • MFA / Autorización: Sistema de sesiones temporales basadas en archivos con permisos restringidos.
  • Archivos Fundamentales:
    • ns8-candados.rb: Lógica central.
    • .master.key (Local): La semilla de cifrado (permisos 600).
    • .boveda.json: Almacén de secretos cifrados (permisos 600).
    • .session: Token de autorización temporal (vida: 5 min, permisos 600).

⚙️ Configuración y Dependencias

  • Tecnologías: Ruby, OpenSSL.
  • Seguridad de Archivos: Todos los archivos sensibles se manejan con chmod 600, asegurando que solo el propietario de la herramienta pueda operar.
  • Comandos de Gestión:
    • ruby ns8-candados.rb authorize: Abre el candado. Habilita el acceso a secretos durante 5 minutos.
    • ruby ns8-candados.rb cerrar: Cierra el candado manualmente eliminando la sesión activa.
    • ruby ns8-candados.rb list: Lista las claves guardadas (requiere autorización).
    • ruby ns8-candados.rb get <clave>: Recupera el valor descifrado (requiere autorización).

🧠 Contexto para IA

  • Flujo Obligatorio: Los agentes de IA DEBEN ejecutar authorize antes de intentar recuperar cualquier clave.
  • Captura Segura: Capturar siempre la salida en variables silenciadas:
    ruby tools/ns8-candados/ns8-candados.rb authorize
    PASS=$(ruby tools/ns8-candados/ns8-candados.rb get clave)
    # Operar y luego cerrar:
    ruby tools/ns8-candados/ns8-candados.rb cerrar
    

🚀 Próximos Pasos

Propuestas de Mejora

  • Auditoría: Implementar un access.log para trazar quién y cuándo abrió el candado.
  • Notificación: Enviar un mensaje (ej. Telegram/Mail) cada vez que se ejecute authorize.

Generado siguiendo docs/prompt/documentacion.md