# 馃攼 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 `: 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: ```bash 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*