UStackUStack
AxKeyStore icon

AxKeyStore

AxKeyStore è una CLI open source sicura che gestisce segreti e password cifrandoli lato client e salvando solo dati cifrati nel tuo GitHub privato.

AxKeyStore

Cos'è AxKeyStore?

AxKeyStore è uno strumento CLI sicuro e open source per la gestione di segreti, chiavi e password. Il suo scopo principale è consentirti di utilizzare il tuo repository GitHub privato come archiviazione crittografata, trattando GitHub come archiviazione non fidata.

Con AxKeyStore, la crittografia avviene lato client. I dati crittografati sono ciò che viene salvato nel repository GitHub remoto e i segreti non sono conservati in chiaro nel repository. Lo strumento evita anche di salvare segreti, chiavi master o password in forma non crittografata sul filesystem locale.

Caratteristiche Principali

  • Repository GitHub privato come backend crittografato: Salva i segreti in un repository privato che controlli, utilizzando blob binari crittografati.
  • Crittografia lato client per tutta la gestione dei segreti: I segreti vengono crittografati sulla tua macchina prima del caricamento; nessun segreto in chiaro viene trasmesso via rete.
  • Modello Zero Trust / crittografia multi-livello: Utilizza una Local Master Key (LMK) per crittografare la configurazione locale (inclusi il token di accesso GitHub e il nome del repository) e una Remote Master Key (RMK) per crittografare i segreti effettivamente salvati.
  • Crittografia autenticata moderna e derivazione chiavi: La crittografia LMK usa Argon2id e XChaCha20-Poly1305; lo schema a tre livelli è progettato in modo che solo artefatti crittografati raggiungano GitHub.
  • Autenticazione unificata tramite GitHub Apps e Device Flow: Si autentica in modo sicuro usando GitHub Apps insieme al Device Flow.
  • Flusso CLI per inizializzazione e operazioni: Include comandi per il login, l'inizializzazione di un repository per l'archiviazione e la gestione dei segreti tramite un set di comandi semplice.
  • Organizzazione gerarchica per categorie: Organizza i segreti in categorie come api/production/internal.
  • Supporto multi-profilo: Gestisci più vault con login, password master e repository GitHub diversi.

Come Usare AxKeyStore

  1. Installa la CLI: Su macOS/Linux, esegui lo script di installazione shell fornito. Su Windows, esegui lo script di installazione PowerShell fornito. Gli script scaricano il binario, lo posizionano in $HOME/.axkeystore/bin e configurano il tuo PATH.
  2. Effettua il login con il tuo account GitHub: Esegui axkeystore login. Al primo login, imposta una Master Password; questa password viene usata per crittografare il token di accesso GitHub locale sensibile.
  3. Installa l'app GitHub richiesta: Durante il login, la CLI fornisce un link per installare l'app GitHub per il tuo utente o organizzazione. Devi installare l'app per concedere l'accesso al repository.
  4. Inizializza un repository di archiviazione: Esegui axkeystore init --repo <repo-name> (o includi un'organizzazione/proprietario come my-org/my-secret-store). Se il repo è stato inizializzato in precedenza su un'altra macchina, AxKeyStore ti guiderà durante l'inizializzazione.

Dopo l'inizializzazione, puoi usare la CLI per salvare e recuperare credenziali che vivono come blob crittografati nel tuo repository GitHub privato.

Casi d'Uso

  • Salva credenziali GitHub-hosted senza mantenerle in chiaro: Mantieni chiavi API, password e altri segreti in un repository privato dove sono salvati solo dati crittografati.
  • Separa i segreti per ambiente o dominio usando categorie: Organizza i segreti sotto categorie gerarchiche come api/production/internal per navigare facilmente ambienti diversi.
  • Gestisci più vault su repository GitHub diversi: Mantieni profili separati per repository diversi e password master diverse, utile quando lavori su più progetti o organizzazioni.
  • Proteggi l'archiviazione locale delle credenziali: Assicura che il token di accesso GitHub e il nome del repository (credenziali locali) siano crittografati con la Local Master Key e protetti dalla Master Password dell'utente.
  • Uso cross-macchina con archiviazione remota non fidata: Inizializza lo stesso repository crittografato su un'altra macchina (guidato durante l'init) così il remoto contiene solo blob crittografati mentre ogni client gestisce la crittografia.

FAQ

  • AxKeyStore salva i segreti non crittografati in GitHub? No. I segreti vengono crittografati lato client e solo blob binari crittografati sono salvati nel repository GitHub privato.

  • Le chiavi di crittografia o le password master vengono inviate via rete? Il progetto specifica che nessun segreto in chiaro, chiave master o password tocca la rete. La crittografia avviene esclusivamente sulla tua macchina.

  • Che autenticazione usa AxKeyStore? Usa GitHub Apps e il Device Flow per l'autenticazione.

  • Come protegge AxKeyStore i dati localmente? Usa una Local Master Key (LMK) crittografata con la tua Master Password tramite Argon2id e XChaCha20-Poly1305, e la LMK crittografa la configurazione locale come il token di accesso GitHub e il nome del repository.

  • Quali sistemi operativi sono supportati per l'installazione? Il repository fornisce script di installazione per macOS/Linux (tramite install.sh) e Windows (tramite install.ps1).

Alternative

  • Altri gestori di segreti basati su CLI con cifratura lato client: Cerca tool che cifrano i segreti localmente e salvano solo il ciphertext in un backend remoto (modello di storage non fidato simile), tipicamente usando S3, Git o altro storage.
  • Gestori di password dedicati (app basate su vault): Usa un'app locale o vault desktop/mobile che gestisce cifratura e sincronizzazione; il workflow differisce perché il backend è gestito dal gestore di password anziché da un repository GitHub privato sotto il tuo controllo.
  • Storage di segreti basato su Git con tool di cifratura: Alcuni approcci salvano file cifrati in Git e si affidano ai tuoi tool di cifratura; rispetto ad AxKeyStore, gestiresti tu il workflow di cifratura anziché usare la CLI dedicata e il suo modello di chiavi.
  • Gestori di segreti cloud con cifratura gestita: Servizi che salvano segreti in un sistema gestito; a differenza del modello descritto di AxKeyStore, l'approccio lato client con storage non fidato potrebbe non essere il pattern di design principale.