Vai al contenuto

Quanto è sicuro Crunu?

Costruiamo Crunu partendo dal presupposto che il suo server verrà attaccato. Ecco cosa ottiene ogni attaccante previsto dal modello delle minacce del prodotto, cosa non ottiene e quale livello gli sbarra la strada, compresi i casi in cui Crunu non può aiutarti.

  • AES-256-GCM cifra ogni versione
  • X25519 sigilla le chiavi, Ed25519 firma
  • La chiave dell’account deriva dalla tua password (PBKDF2-SHA256, 1.000.000 di iterazioni) e da una Secret Key di circa 128 bit, e nessuna delle due viene inviata al server
  • Nessuna chiave di decifratura sul server, in nessun passaggio

Tre livelli di protezione, e rilasci che puoi verificare

Il modello delle minacce di Crunu indica per ogni difesa il livello che la fornisce. Conta soprattutto quando l’attaccante è il server stesso, perché in quel caso solo alcuni livelli continuano a funzionare.

  • Crittografia

    Chi possiede la chiave

    Le chiavi degli ambienti sono sigillate solo per le persone, le macchine e i token che autorizzi, e gli elenchi di accesso e le versioni sono firmati. Senza la chiave, il testo cifrato resta testo cifrato.

    Se qualcuno prende il controllo del serverContinua a funzionare.

  • Server

    A chi invia il testo cifrato e di chi accetta le modifiche

    Limiti agli accessi, scadenza delle sessioni, regole di rete, attesa del codice di recupero e taglio dell’accesso a chi hai rimosso.

    Se qualcuno prende il controllo del serverSmette di funzionare.

  • Client

    Cosa verificano il tuo browser e l’agente

    Firme, numeri di versione e impronte: i dispositivi rifiutano tutto ciò che non è firmato o è più vecchio di quanto hanno già visto. Anche nascondere i valori sullo schermo è una regola del client, e previene gli incidenti, non la copia.

    Se qualcuno prende il controllo del serverContinua a funzionare, a meno che il server non invii una pagina web manomessa.

  • Rilasci verificabili

    L’autenticità del codice che esegui

    Ogni rilascio dell’agente e dell’app web è firmato con Ed25519. La build web è riproducibile e la pagina non consente script di terze parti.

    Se qualcuno prende il controllo del serverGli aggiornamenti dell’agente continuano a essere verificati. L’app web verifica sé stessa dentro la pagina che verifica, quindi non può accorgersi di un server che modifica entrambe.

Esempio. Kiteline è un’azienda fittizia.

Attacco per attacco

Una scheda per ogni attaccante del modello delle minacce di Crunu. Il verdetto riguarda i valori nei tuoi ambienti; tutto il resto che un attaccante ottiene è elencato nella scheda.

  • ProtettoI tuoi valori restano illeggibili e invariati.
  • LimitatoL’attaccante ottiene qualcosa di concreto, indicato nella scheda.
  • Non protettoCrunu non può impedirlo. La scheda dice cosa aiuta.
  1. Trapela una copia del database

    Protetto

    Un backup trapelato, un disco rubato, la violazione di un altro servizio o un provider di hosting in malafede.

    Cosa ottiene

    • Il testo cifrato di ogni ambiente, le chiavi pubbliche e i record firmati
    • Metadati: nomi di progetti e ambienti, chi fa parte del team e quanto spesso cambiano le cose
    • I token, ma solo come hash con chiave (HMAC)

    Cosa non ottiene

    • I tuoi valori: nella copia non c’è alcuna chiave di decifratura
    • Una scorciatoia verso la tua password: ogni tentativo richiede anche la tua Secret Key, che non è mai stata sul server, quindi verificare un solo tentativo significa esplorare circa 2¹²⁸ possibilità
    • Token funzionanti: la chiave di quegli hash non è conservata nel database

    Tieni i segreti fuori dai nomi: un progetto che porta il nome di un accordo non ancora annunciato rivela l’accordo a chiunque legga la copia.

    Protetto daCrittografiaServer

  2. Qualcuno prende il controllo del server

    Limitato

    Il controllo del suo codice e del suo database: un intruso, un operatore disonesto o un account cloud sottratto. Su app.crunu.com quel server lo gestisce Crunu; su un tuo server, lo gestisci tu.

    Cosa ottiene

    • Tutto ciò che c’è in una copia del database, più chi ha scaricato quale versione e quando
    • Il potere di rifiutare il servizio o di perdere le tue modifiche
    • La possibilità di inviare una pagina web manomessa che cattura la tua password e la tua Secret Key mentre accedi. È il principale rischio residuo.

    Cosa non ottiene

    • Un posto tra i destinatari: le chiavi degli ambienti sono sigillate solo per chiavi certificate dalla tua organizzazione, e i tuoi dispositivi verificano l’elenco di accesso firmato
    • Una chiave sostituita o dati alterati: le chiavi sono fissate in record firmati, e ogni versione è firmata e legata al suo ambiente e al suo numero
    • Un ritorno silenzioso a uno stato precedente su un dispositivo che ha visto dati più recenti. Un dispositivo che non li ha mai visti non può accorgersene.

    A ogni caricamento l’app si verifica rispetto al manifest firmato di Crunu, e la pagina non consente script di terze parti. Quella verifica gira dentro la stessa pagina, quindi non può accorgersi di un server che modifica entrambe.

    Protetto daCrittografiaClient

  3. Qualcuno intercetta la connessione

    Limitato

    Un certificato TLS falsificato o un proxy malevolo tra il tuo dispositivo e il server.

    Cosa ottiene

    • Ciò che il server vede su quella connessione: testo cifrato e metadati
    • La stessa possibilità di un server violato di inviare una pagina web manomessa

    Cosa non ottiene

    • La tua password o la tua Secret Key: nessuna delle due attraversa la rete, in nessuna forma
    • Un accesso da riutilizzare: ogni firma di accesso contiene l’indirizzo del server e un valore monouso (nonce), quindi funziona una volta sola e solo su quel server

    Protetto daCrittografiaClient

  4. Un collega se ne va in cattivi rapporti

    Limitato

    Una persona che hai rimosso dall’organizzazione e che ha tenuto tutto ciò che poteva.

    Cosa ottiene

    • Tutto ciò che ha visto prima che la rimuovessi. Quei valori continuano a funzionare presso i tuoi fornitori finché non li riemetti.

    Cosa non ottiene

    • Nient’altro dal server: smette subito di fornirle i dati
    • Le nuove versioni: ogni chiave d’ambiente che possedeva viene ruotata, quindi le sue vecchie chiavi non aprono nulla di nuovo, nemmeno con testo cifrato rubato

    Il report di esposizione mostra quali versioni ha ricevuto, e la checklist di riemissione elenca i valori da cambiare presso ciascun fornitore.

    Protetto daServerCrittografia

  5. Un collega guarda oltre il suo ruolo

    Protetto

    Un membro onesto ma curioso: uno sviluppatore con accesso a development, o un Operator che configura le macchine.

    Cosa ottiene

    • Gli ambienti che gli sono stati concessi, che può copiare. Nascondere i valori nell’app è una scelta di visualizzazione, non cifratura.

    Cosa non ottiene

    • Production, partendo dall’accesso a development: non ne ha la chiave
    • Nessun valore, se è Operator: gli Operator non possiedono alcuna chiave d’ambiente
    • Altri file con il ruolo Specific files: riceve una copia sigillata dei soli file scelti

    Protetto daCrittografia

  6. Viene rubato un token di sessione

    Limitato

    Copiato dalla memoria del browser o dal log di un proxy.

    Cosa ottiene

    • Ciò che il server consente a quell’account fino alla fine della sessione: dopo 12 ore di inattività, o al massimo 7 giorni

    Cosa non ottiene

    • I tuoi valori: per decifrarli servono chiavi che il token non contiene
    • Modifiche firmate: un elenco di accesso o una versione richiede la tua chiave di firma
    • Il controllo del tuo account: cambiare la password o la Secret Key richiede entrambe

    Il tuo account elenca ogni dispositivo e ogni sessione, e puoi terminarne una o tutte.

    Protetto daServerCrittografia

  7. Ti rubano il portatile

    Limitato

    Un dispositivo su cui hai effettuato l’accesso, preso con l’app aperta o bloccata.

    Cosa ottiene

    • La tua Secret Key, che il browser conserva per impostazione predefinita, così l’unica barriera che resta è la password
    • Ciò che è aperto, finché l’app non si blocca dopo 10 minuti di inattività (impostazione predefinita)

    Cosa non ottiene

    • Le tue chiavi una volta che l’app si è bloccata: senza la tua password restano cifrate
    • Il tuo account: una sessione aperta non può cambiare la password, la Secret Key o le chiavi dell’account

    Da un altro dispositivo, rimuovi quello rubato o usa «Device compromised»: sostituisce le chiavi del tuo account e ruota ogni ambiente di cui avevi la chiave.

    Protetto daCrittografiaServer

  8. Qualcuno ottiene root su una macchina con l’agente

    Limitato

    Un server su cui gira l’agente crunu è un destinatario legittimo, e lo è anche chiunque lo controlli.

    Cosa ottiene

    • Tutto ciò che è stato consegnato a quella macchina. Un programma già in esecuzione mantiene le sue variabili fino al riavvio.

    Cosa non ottiene

    • Altre macchine o altri ambienti: ogni macchina ha le proprie chiavi e riceve solo ciò che le è stato concesso
    • Un accesso duraturo: un lease scade dopo 24 ore senza contatto, e una macchina revocata elimina i propri ambienti entro pochi minuti, mentre è online

    Protetto daCrittografiaServer

  9. Trapela un codice di registrazione

    Protetto

    Il codice monouso che passi a crunu enroll su una nuova macchina.

    Cosa ottiene

    • La possibilità di registrare una propria macchina, se usa il codice prima della tua

    Cosa non ottiene

    • L’approvazione: un amministratore approva una macchina solo dopo aver confrontato l’impronta che crunu enroll stampa su quella vera
    • Un secondo tentativo silenzioso: il codice dura 15 minuti per impostazione predefinita, vale una sola volta e un codice riutilizzato fa scattare un avviso

    Protetto daCrittografiaServer

  10. Trapela un token CI

    Limitato

    Un token di servizio copiato dall’archivio dei segreti di una pipeline.

    Cosa ottiene

    • Esattamente ciò che è stato concesso al token, spesso un solo ambiente, finché non lo revochi o non scade

    Cosa non ottiene

    • Qualsiasi altro ambiente: la chiave di production non viene mai sigillata per un token a cui production non è stato concesso
    • Un accesso da qualsiasi altro luogo, se il token è legato tramite OIDC: senza il token del tuo provider CI per il repository e il branch giusti, non entra

    Protetto daCrittografiaServer

  11. Qualcuno prova a indovinare le password sul server

    Protetto

    Tentativi di accesso da un solo indirizzo o distribuiti su molti.

    Cosa ottiene

    • 10 tentativi falliti per indirizzo IP e 5 per account ogni 15 minuti

    Cosa non ottiene

    • Un indizio che un account esista: un’email sconosciuta e una password sbagliata ricevono la stessa risposta
    • L’accesso con la sola password: per accedere serve anche la tua Secret Key, e un nuovo dispositivo richiede il tuo secondo fattore, una volta che lo attivi
    • Una scorciatoia tramite codici e link: contengono almeno 128 bit casuali e sono conservati come hash con chiave

    Protetto daServerCrittografia

  12. Qualcuno manomette un rilascio dell’agente

    Protetto

    Un binario crunu o uno script di installazione modificato.

    Cosa ottiene

    • Una via d’ingresso solo se controlla anche l’app web che mostra il tuo comando di installazione, come quando qualcuno prende il controllo del server

    Cosa non ottiene

    • Un’installazione silenziosa: il comando di installazione nell’app web include i checksum SHA-256 del manifest di rilascio, e l’app web verifica la firma Ed25519 del manifest
    • Un aggiornamento silenzioso: crunu self-update verifica la firma del rilascio con una chiave integrata nell’agente

    Protetto daCrittografiaClient

  13. Un malware gira sul tuo dispositivo

    Non protetto

    Un keylogger, un’estensione del browser malevola o qualcuno con root sul tuo computer.

    Cosa ottiene

    • La tua password e la tua Secret Key mentre le digiti, e tutto ciò che quel dispositivo decifra

    Cosa non ottiene

    • Gli ambienti che il tuo account non può aprire

    Nessuna cifratura può proteggere un dispositivo da sé stesso. Usa dispositivi che controlli e, dopo una compromissione, usa «Device compromised» da un dispositivo pulito e riemetti i valori che poteva raggiungere.

    Protetto daNessun livello di Crunu

Ogni limite noto e cosa fare al riguardo

La crittografia

Componenti standard in due implementazioni: la WebCrypto integrata nel browser e la libreria standard di Go nell’agente. Entrambe sono testate con gli stessi vettori di test condivisi.

La crittografia
AlgoritmoCosa fa in CrunuDove gira
AES-256-GCMCifra ogni versione di un ambiente. I dati autenticati aggiuntivi (AAD) legano il testo cifrato alla sua organizzazione, al suo ambiente e al numero di versione, così non può essere spacciato per un altro.Browser e agente
X25519Sigilla la chiave di un ambiente per un destinatario: una persona, una macchina o un token di servizio. Ogni copia sigillata usa una nuova coppia di chiavi.Browser e agente
Ed25519Firma elenchi di accesso, versioni, link di condivisione e rilasci. I dispositivi verificano ogni firma prima di fidarsi di un record.Browser e agente; Crunu firma i rilasci
HKDF-SHA256Deriva da un unico segreto una chiave separata per ogni compito, così nessuna chiave serve a due scopi.Browser, agente e server
PBKDF2-SHA256, 1.000.000 di iterazioni, e la Secret KeyTrasforma la tua password in una metà della chiave del tuo account. La tua Secret Key, circa 128 bit casuali, è l’altra metà. Nessuna delle due lascia il tuo dispositivo.Il tuo browser, o crunu nel terminale
SHA-256Collega le voci del registro di audit in una catena di hash e produce impronte delle chiavi che puoi confrontare a occhio.Il server scrive la catena; il tuo browser e i tuoi strumenti possono ricalcolarla
Riempimento fino a 4.096 byteArrotonda ogni versione cifrata a blocchi interi da 4 KB, così la sua dimensione esatta non si vede.Browser e agente, prima della cifratura
  • Una chiave per ogni ambiente. L’accesso a development non apre nulla in production. Ogni persona, macchina e token riceve la propria copia sigillata delle sole chiavi che gli sono consentite.
  • Ogni formato dichiara la propria versione. Ogni record indica la versione del suo formato ("v": 2), e la derivazione della chiave ha la sua (kdf.v). I dispositivi rifiutano le versioni che non conoscono, così il server non può ridurre il costo per indovinare la tua password né infilare un formato più vecchio.

Computer quantistici

Un computer quantistico abbastanza grande romperebbe alcuni di questi componenti e ne scalfirebbe appena altri. Oggi un computer del genere non esiste. Ecco a che punto è Crunu, senza azzardare previsioni su quando potrebbe arrivare.

Computer quantistici
AlgoritmoAttacco quantisticoCosa significherebbe per Crunu
AES-256-GCMAlgoritmo di Grover: una ricerca più veloce della chiaveRestano circa 128 bit di robustezza. Il NIST prevede che AES-256 resti sicuro ancora per moltissimo tempo.
SHA-256 e HMACRicerca alla GroverResta un ampio margine per la catena di hash del registro di audit e per gli hash con chiave. Il NIST usa SHA-256 come riferimento per i suoi livelli di sicurezza post-quantistica.
PBKDF2 e la Secret KeyRicerca alla Grover; l’algoritmo di Shor non si applicaIndovinare richiede comunque i 128 bit casuali della Secret Key, la dimensione di una chiave AES-128, che secondo il NIST dovrebbe restare sicura per decenni. Né la password né la Secret Key arrivano al server.
X25519Algoritmo di Shor: la chiave privata da quella pubblicaViolato. Le chiavi degli ambienti sigillate con esso potrebbero essere aperte.
Ed25519Algoritmo di ShorViolato. Le firme potrebbero essere falsificate, ma solo al momento di un attacco. I dati passati non sono esposti.

Raccogli ora, decifra dopo

Ogni chiave d’ambiente è sigillata con le chiavi pubbliche X25519 dei suoi destinatari, e le copie sigillate sono conservate sul server accanto a quelle chiavi pubbliche. Chi conserva una copia del database potrebbe, quando esisterà un computer quantistico abbastanza grande, aprire quelle copie sigillate e leggere le versioni salvate in quella copia del database. Il NIST chiama questa minaccia «harvest now, decrypt later» (raccogli ora, decifra dopo).

Arriva solo a ciò che contiene quella copia. Le versioni salvate dopo che la copia è stata presa non ci sono, e una credenziale che hai riemesso presso il suo fornitore non vale nulla per chi decifra quella vecchia.

La tua password, la Secret Key e la chiave dell’account non sono esposte in questo modo: non arrivano mai al server, e su di esse si usano solo funzioni simmetriche. L’attacco, del resto, non ne ha bisogno, perché punta direttamente alle chiavi X25519.

Firme

Le firme Ed25519 proteggono elenchi di accesso, versioni e rilasci. Un computer quantistico permetterebbe di falsificarne di nuove, ma una falsificazione conta solo quando viene creata e accettata, quindi è un rischio per il giorno in cui un computer del genere esisterà, non per i dati registrati oggi. Il NIST sottolinea lo stesso punto: le firme non sono a rischio per «harvest now, decrypt later».

Cosa usa Crunu oggi, e cosa viene dopo

Oggi Crunu non usa algoritmi post-quantistici. Il NIST ha pubblicato i suoi primi standard post-quantistici nell’agosto 2024: ML-KEM per stabilire le chiavi (FIPS 203) e ML-DSA per le firme (FIPS 204). Il suo piano di transizione, finalizzato nell’ottobre 2026, include l’accordo di chiavi su curve ellittiche ed EdDSA tra gli algoritmi che deprecherà dopo il 2030 e non ammetterà più negli standard NIST dopo il 2035.

Il passaggio alla crittografia post-quantistica è nella roadmap di Crunu. Non annunciamo algoritmi o date su cui non possiamo ancora impegnarci: quando la crittografia di Crunu cambierà, questa pagina lo dirà.

Cosa puoi fare ora

  • Pensa a quanto a lungo ogni segreto resta prezioso. Una chiave che riemetti ogni pochi mesi perde poco se una copia viene decifrata anni dopo; una credenziale root di lunga durata perde di più.
  • Riemetti periodicamente presso i fornitori i valori di lunga durata, e salva ogni nuovo valore come nuova versione.
  • Se ti preoccupa una copia del database in mano ad altri, gestisci un tuo server. Il database e i suoi backup restano così presso di te.

Verifica tu stesso

Non abbiamo ancora badge o certificati da mostrare. Ecco cosa puoi verificare oggi, e cosa manca.

  • Rilasci firmati.Ogni rilascio dell’agente e dell’app web è firmato con una chiave di rilascio Ed25519. crunu self-update verifica la firma con una chiave integrata nell’agente, e l’app web mostra «Signed build» dopo essersi verificata rispetto al manifest firmato.
  • Una build web riproducibile.Un commit del codice sorgente produce sempre gli stessi file, byte per byte. Il codice sorgente non è pubblicato, quindi oggi solo Crunu può ricostruire un rilascio e confrontarlo.
  • Nessuno script di terze parti.La content security policy (CSP) della pagina consente solo il codice di Crunu, che carica con checksum di integrità (SRI).
  • Poche dipendenze.L’agente usa solo la libreria standard di Go, e il codice del browser include un solo pacchetto npm, yaml.
  • Un registro di audit che puoi verificare fuori da Crunu.Owner e Admin possono esportare il registro in JSONL e ricalcolarne la catena di hash SHA-256 con i propri strumenti.
  • Cosa manca.Nessun audit di sicurezza esterno, nessuna certificazione SOC 2 o ISO 27001 e nessun codice sorgente pubblicato. Crunu è in accesso anticipato; Audit e documentazione elenca i documenti che abbiamo.
  • Hai trovato un problema?Scrivi a security@crunu.com. Lo stesso contatto si trova nel nostro security.txt, e Limitazioni note elenca ogni limite che già conosciamo.
Esempio. Kiteline è un’azienda fittizia.

Domande sulla sicurezza di Crunu

Crunu può leggere i miei segreti?

No. Il server, gestito da Crunu su app.crunu.com o da te su un tuo server, conserva solo testo cifrato e non ha alcuna chiave in grado di decifrarlo. Vede però i metadati: nomi, indirizzi email, il registro di audit e il momento in cui è stata salvata ogni versione. Per arrivare ai tuoi valori bisognerebbe modificare il codice sul tuo dispositivo, ad esempio con una pagina web manomessa, che è il principale rischio residuo descritto in questa pagina.

Cosa succede se il server di Crunu viene violato?

Chi riesce a entrare ottiene testo cifrato, chiavi pubbliche, hash con chiave dei token e metadati. Non può decifrare i tuoi valori, aggiungersi a un elenco di accesso o modificare una versione senza che i tuoi dispositivi se ne accorgano. Può smettere di servirti o inviare una pagina web manomessa. Se app.crunu.com viene violato, invieremo un’email ai titolari degli account coinvolti senza ingiustificato ritardo.

E se dimentico la password?

Nessuno può reimpostarla, nemmeno noi, perché non riceviamo mai né la tua password né la tua Secret Key. L’Emergency Kit stampato e un codice di recupero sono le vie per rientrare. Se li perdi tutti, il tuo account non può essere aperto, anche se Owner e Admin possono comunque aprire gli ambienti condivisi dell’organizzazione.

Crunu protegge dai computer quantistici?

In parte. AES-256 e SHA-256 dovrebbero reggere. X25519 ed Ed25519 cederebbero a un computer quantistico abbastanza grande, che oggi non esiste. Oggi Crunu non usa algoritmi post-quantistici, quindi una copia del database conservata per anni potrebbe un giorno esporre le versioni che contiene. Il passaggio alla crittografia post-quantistica è nella roadmap di Crunu.

Crunu è stato sottoposto ad audit?

No. Crunu è in accesso anticipato, non ha certificazioni SOC 2 o ISO 27001 e non è stato pubblicato alcun audit di sicurezza esterno. Nemmeno il suo codice sorgente è pubblicato. Ciò che puoi verificare oggi si trova sopra, in «Verifica tu stesso».

Gestire un mio server è più sicuro di app.crunu.com?

Cambia di chi ti fidi, non la cifratura. Un tuo server tiene presso di te il database e i suoi backup e invia la pagina web da un’infrastruttura che controlli. In cambio, backup, aggiornamenti e il segreto del server stesso diventano compito tuo. Il server è disponibile su richiesta a support@crunu.com.

Come segnalo una vulnerabilità?

Scrivi a security@crunu.com con i passaggi per riprodurla, e non includere segreti reali nella segnalazione. Lo stesso contatto si trova nel nostro file security.txt, e la pagina Modello di sicurezza elenca le regole per i test.

Tieni i segreti del tuo team su un server che non può leggerli

Crea il tuo account su app.crunu.com. Le tue chiavi vengono create nel browser, e il server riceve solo testo cifrato.

Gratis durante l’accesso anticipato. Leggi il modello di sicurezza