UStackUStack
AxKeyStore favicon

AxKeyStore

AxKeyStore es una herramienta de línea de comandos que administra de forma segura secretos, claves y contraseñas utilizando su repositorio privado de GitHub como almacenamiento cifrado y no confiable.

AxKeyStore

¿Qué es AxKeyStore?

AxKeyStore: Gestión Segura de Secretos con Respaldo en GitHub

¿Qué es AxKeyStore?

AxKeyStore es una herramienta robusta de Interfaz de Línea de Comandos (CLI) de código abierto diseñada para desarrolladores y usuarios conscientes de la seguridad que necesitan una forma confiable de almacenar y administrar credenciales, claves y contraseñas sensibles. Su innovación principal radica en aprovechar su repositorio privado de GitHub existente como mecanismo de almacenamiento de backend. Este enfoque proporciona los beneficios del almacenamiento en la nube (accesibilidad, control de versiones y confiabilidad) sin sacrificar la seguridad, ya que GitHub se trata estrictamente como almacenamiento no confiable.

Fundamentalmente, AxKeyStore opera bajo el principio de cifrado absoluto del lado del cliente. Cada pieza de datos sensible, incluidos los secretos mismos y las claves utilizadas para cifrarlos, se procesa completamente en su máquina local antes de la transmisión. En consecuencia, ningún secreto en texto plano, clave maestra o contraseña atraviesa nunca la red ni reside sin cifrar en el servidor remoto o en el sistema de archivos local. Esta arquitectura de Confianza Cero (Zero Trust) garantiza que solo usted, poseyendo la Contraseña Maestra correcta, pueda descifrar y acceder a los datos de su bóveda.

Características Clave

  • Arquitectura de Confianza Cero (Zero Trust): Construida sobre el principio de que todos los sistemas externos, incluido GitHub, no son confiables. El cifrado es obligatorio y de múltiples capas.
  • Esquema de Cifrado de Tres Capas:
    • Cifrado de Secretos: Los secretos se cifran utilizando la Clave Maestra Remota (RMK).
    • Cifrado de RMK: La RMK se cifra utilizando su Contraseña Maestra (a través de cifrado del lado del cliente).
    • Cifrado de Credenciales Locales: Los detalles de configuración locales (como el token de GitHub y el nombre del repositorio) se protegen utilizando una Clave Maestra Local (LMK), que también está protegida por su Contraseña Maestra.
  • Criptografía Avanzada: Utiliza algoritmos modernos y seguros, incluidos XChaCha20-Poly1305 para cifrado autenticado y Argon2id para una derivación de claves robusta a partir de su Contraseña Maestra.
  • GitHub como Almacenamiento de Backend: Aprovecha el almacenamiento gratuito, versionado y confiable proporcionado por cualquier repositorio privado de GitHub que usted controle.
  • Soporte Multi-Perfil: Administre fácilmente varias bóvedas distintas, cada una con inicios de sesión únicos, Contraseñas Maestras y repositorios de GitHub asociados.
  • Organización Jerárquica: Los secretos se pueden organizar lógicamente utilizando rutas de categoría (ej. api/produccion/interno), mejorando la capacidad de descubrimiento y gestión.
  • Autenticación Unificada: Autentica el acceso de forma segura utilizando Aplicaciones de GitHub (GitHub Apps) y el mecanismo de Flujo de Dispositivo (Device Flow).

Cómo Usar AxKeyStore

Comenzar con AxKeyStore implica una instalación sencilla seguida de un proceso inicial de inicio de sesión y configuración. La herramienta está diseñada para facilitar su uso una vez configurada.

1. Instalación: Instale la herramienta CLI utilizando los scripts específicos de la plataforma proporcionados:

  • macOS/Linux: curl -sSL https://raw.githubusercontent.com/basilgregory/axkeystore/main/install.sh | bash
  • Windows (PowerShell): powershell -c "irm https://raw.githubusercontent.com/basilgregory/axkeystore/main/install.ps1 | iex" Estos scripts colocan automáticamente el binario en su PATH para acceso inmediato.

2. Inicio de Sesión Inicial y Configuración: Ejecute el comando de inicio de sesión para iniciar la secuencia de configuración: axkeystore login Durante esta primera ejecución, se le pedirá que cree y confirme su Contraseña Maestra. Esta contraseña es la clave definitiva para descifrar su bóveda y asegurar su configuración local. Después de configurar la contraseña, la CLI le guiará a través de la instalación de la Aplicación de GitHub necesaria en su cuenta u organización, otorgando a AxKeyStore los permisos requeridos para leer/escribir en su repositorio privado designado.

3. Gestión de Secretos: Una vez que haya iniciado sesión y configurado, puede usar comandos sencillos para almacenar y recuperar credenciales. Por ejemplo, almacenar un nuevo secreto podría implicar especificar la categoría y el nombre de la clave, mientras que la recuperación utiliza el comando correspondiente, asegurando que los datos se descifren solo localmente después de obtener el blob cifrado de GitHub.

Casos de Uso

  1. Asegurar Secretos de Pipelines CI/CD: Los desarrolladores pueden almacenar claves API sensibles, tokens de implementación y variables de entorno necesarias para compilaciones y despliegues automatizados en su bóveda privada de AxKeyStore, asegurando que estos secretos nunca se codifiquen de forma rígida ni se expongan en archivos de configuración registrados en el control de versiones.
  2. Administración de Credenciales de Desarrollador Personal: Los desarrolladores individuales pueden centralizar todas sus claves SSH, claves de acceso de proveedores de la nube (AWS, Azure, GCP) y contraseñas de bases de datos. Al usar su repositorio de GitHub, obtienen un historial de versiones sobre los eventos de rotación de credenciales.
  3. Entornos de Desarrollo Multiplataforma: Dado que el almacenamiento está basado en la nube (GitHub) y la herramienta se controla mediante CLI, los usuarios pueden cambiar sin problemas entre su máquina local, un servidor de desarrollo o una estación de trabajo temporal, accediendo de forma segura a los secretos requeridos después de realizar el inicio de sesión/configuración inicial.
  4. Uso Compartido de Credenciales en Equipos Pequeños (Controlado): Aunque está diseñado principalmente para la seguridad individual, los equipos pueden utilizar un repositorio privado dedicado y compartido para el intercambio básico de credenciales no relacionadas con la producción, confiando en el conocimiento compartido de la Contraseña Maestra (aunque se recomienda la gestión individual para máxima seguridad).

Preguntas Frecuentes (FAQ)

P: ¿Qué sucede si olvido mi Contraseña Maestra? A: Dado que AxKeyStore utiliza un esquema de cifrado robusto, de múltiples capas y del lado del cliente, asegurado por su Contraseña Maestra, olvidarla significa que los datos son permanentemente inaccesibles. No existe un mecanismo de recuperación, adhiriéndose estrictamente al modelo de seguridad de Confianza Cero.

P: ¿Están mis datos realmente seguros si GitHub es la ubicación de almacenamiento? A: Sí. GitHub solo almacena blobs binarios cifrados. Incluso si GitHub fuera comprometido, los atacantes solo recuperarían datos cifrados, ya que las claves de descifrado (RMK y LMK) están protegidas por su Contraseña Maestra y nunca abandonan su máquina local sin cifrar.

P: ¿Puedo usar un repositorio público para el almacenamiento? A: No. AxKeyStore requiere explícitamente un repositorio privado de GitHub. Usar un repositorio público expondría todos sus secretos cifrados al mundo, lo que anularía el propósito de la arquitectura de seguridad.

P: ¿Cómo maneja AxKeyStore la autenticación y la autorización? A: Utiliza una Aplicación de GitHub dedicada que usted debe instalar. Esta aplicación facilita la autenticación segura a través del Flujo de Dispositivo y otorga a la CLI los permisos necesarios (lectura/escritura) solo al repositorio específico designado como su bóveda.

P: ¿Cuesta dinero esta herramienta? A: AxKeyStore es un proyecto de código abierto lanzado bajo la Licencia MIT. La herramienta en sí es de uso gratuito. Sin embargo, utilizar GitHub para el almacenamiento requiere que usted tenga una cuenta de GitHub, la cual ofrece repositorios privados gratuitos.

AxKeyStore | UStack