UStackUStack
AxKeyStore icon

AxKeyStore

AxKeyStore é um CLI seguro e open-source que gerencia segredos e senhas com criptografia no cliente e armazena apenas dados criptografados no seu GitHub privado.

AxKeyStore

O que é AxKeyStore?

AxKeyStore é uma ferramenta de interface de linha de comando (CLI) segura e open-source para gerenciar segredos, chaves e senhas. Seu propósito principal é permitir que você use seu próprio repositório privado do GitHub como armazenamento criptografado, tratando o GitHub como armazenamento não confiável.

Com o AxKeyStore, a criptografia ocorre no lado do cliente. Apenas dados criptografados são armazenados no repositório remoto do GitHub, e os segredos não ficam em texto plano no repositório. A ferramenta também evita armazenar segredos, chaves mestras ou senhas em formato não criptografado no sistema de arquivos local.

Principais Recursos

  • Repositório privado do GitHub como backend criptografado: Armazena segredos em um repositório privado sob seu controle, usando blobs binários criptografados.
  • Criptografia no lado do cliente para todo gerenciamento de segredos: Os segredos são criptografados na sua máquina antes do upload; nenhum segredo em texto plano é enviado pela rede.
  • Modelo Zero Trust / criptografia em múltiplas camadas: Usa uma Chave Mestra Local (LMK) para criptografar a configuração local (incluindo o token de acesso do GitHub e o nome do repositório) e uma Chave Mestra Remota (RMK) para criptografar os segredos armazenados.
  • Criptografia autenticada moderna e derivação de chaves: A criptografia LMK usa Argon2id e XChaCha20-Poly1305; o esquema em três camadas garante que apenas artefatos criptografados cheguem ao GitHub.
  • Autenticação unificada via GitHub Apps e Device Flow: Autentica de forma segura usando GitHub Apps junto com o Device Flow.
  • Fluxo CLI para inicialização e operações: Inclui comandos para fazer login, inicializar um repositório para armazenamento e gerenciar segredos via conjunto simples de comandos.
  • Organização hierárquica por categorias: Organize segredos em categorias como api/production/internal.
  • Suporte a múltiplos perfis: Gerencie múltiplos vaults com logins, senhas mestras e repositórios do GitHub diferentes.

Como Usar o AxKeyStore

  1. Instale o CLI: No macOS/Linux, execute o script de instalação shell fornecido. No Windows, execute o script de instalação PowerShell fornecido. Os scripts baixam o binário, o colocam em $HOME/.axkeystore/bin e configuram seu PATH.
  2. Faça login com sua conta do GitHub: Execute axkeystore login. No primeiro login, defina uma Senha Mestra; essa senha é usada para criptografar o token de acesso local sensível do GitHub.
  3. Instale o GitHub App necessário: Durante o login, o CLI fornece um link para instalar o GitHub App para seu usuário ou organização. Você deve instalar o app para conceder acesso ao repositório.
  4. Inicialize um repositório de armazenamento: Execute axkeystore init --repo <repo-name> (ou inclua uma organização/dono como my-org/my-secret-store). Se o repo foi inicializado anteriormente em outra máquina, o AxKeyStore solicitará durante a inicialização.

Após a inicialização, você pode usar o CLI para armazenar e recuperar credenciais que vivem como blobs criptografados no seu repositório privado do GitHub.

Casos de Uso

  • Armazene credenciais hospedadas no GitHub sem mantê-las em texto plano: Mantenha chaves de API, senhas e outros segredos em um repositório privado onde apenas dados criptografados são armazenados.
  • Separe segredos por ambiente ou domínio usando categorias: Organize segredos em categorias hierárquicas como api/production/internal para facilitar a navegação entre ambientes diferentes.
  • Gerencie múltiplos vaults em repositórios do GitHub diferentes: Mantenha perfis separados para repositórios e senhas mestras diferentes, útil ao trabalhar em múltiplos projetos ou organizações.
  • Bloqueie o armazenamento local de credenciais: Garanta que o token de acesso do GitHub e o nome do repositório (credenciais locais) sejam criptografados com a Chave Mestra Local e protegidos pela Senha Mestra do usuário.
  • Uso entre máquinas com armazenamento remoto não confiável: Inicialize o mesmo repositório criptografado em outra máquina (solicitado durante a init) para que o remoto contenha apenas blobs criptografados, enquanto cada cliente gerencia a criptografia.

FAQ

  • O AxKeyStore armazena segredos sem criptografia no GitHub? Não. Os segredos são criptografados no lado do cliente e apenas blobs binários criptografados são armazenados no repositório privado do GitHub.

  • Chaves de criptografia ou senhas mestras são enviadas pela rede? O projeto descreve que nenhum segredo, chave mestra ou senha em texto plano toca a rede. A criptografia ocorre puramente na sua máquina.

  • Que autenticação o AxKeyStore usa? Ele usa GitHub Apps e o Device Flow para autenticação.

  • Como o AxKeyStore protege os dados localmente? Ele usa uma Chave Mestra Local (LMK) criptografada com sua Senha Mestra usando Argon2id e XChaCha20-Poly1305, e a LMK é usada para criptografar a configuração local, como o token de acesso do GitHub e o nome do repositório.

  • Quais sistemas operacionais são suportados para instalação? O repositório fornece scripts de instalação para macOS/Linux (via install.sh) e Windows (via install.ps1).

Alternativas

  • Outros gerenciadores de segredos baseados em CLI com criptografia no cliente: Procure ferramentas que criptografem segredos localmente e armazenem apenas o texto cifrado em um backend remoto (modelo similar de armazenamento não confiável), tipicamente usando S3, Git ou outro armazenamento.
  • Gerenciadores de senhas dedicados (aplicativos baseados em vault): Use um app local ou vault desktop/mobile que gerencie criptografia e sincronização; o fluxo de trabalho difere porque o backend é gerenciado pelo gerenciador de senhas em vez de um repositório GitHub privado que você controla.
  • Armazenamento de segredos baseado em Git com ferramentas de criptografia: Algumas abordagens armazenam arquivos criptografados no Git e dependem das suas ferramentas de criptografia; comparado ao AxKeyStore, você gerenciaria o fluxo de criptografia você mesmo em vez de usar o CLI dedicado e seu modelo de chaves.
  • Gerenciadores de segredos em nuvem com criptografia gerenciada: Serviços que armazenam segredos em um sistema gerenciado; diferente do modelo descrito do AxKeyStore, a abordagem de armazenamento não confiável no cliente pode não ser o padrão de design principal.