Il modello di sicurezza di KutunaCo

Ultimo aggiornamento:

In questa pagina

KutunaCo è un password manager offline e senza account per iOS e Android. Questa pagina spiega che cosa protegge KutunaCo 1.12.0, dove sono conservati i tuoi dati e da che cosa li difende, e dice chiaramente che cosa non può fare.

In breve

  • La scatola e le impostazioni sono crittografate sul telefono con AES-256; la chiave è conservata nel Keychain di iOS o nel Keystore di Android, solo su quel dispositivo.
  • Non ci sono account, server, sincronizzazione, pubblicità né strumenti di analisi. La versione per Android non ha nemmeno l'autorizzazione di accesso a Internet: l'app non può effettuare alcuna richiesta di rete.
  • I backup sono crittografati con AES-256-GCM con una chiave derivata dalla password del backup tramite Argon2id (64 MiB di memoria per i nuovi backup).
  • L'app si sblocca con la biometria, il codice del dispositivo o un PIN dell'app da 4 a 8 cifre.

Perché offline?

I password manager nel cloud conservano milioni di casseforti sugli stessi server, e quei server sono un unico grande bersaglio. Con KutunaCo non c'è un archivio centrale da cui possano trapelare dati, nessun server da attaccare e nessun account di cui impossessarsi. La tua scatola esiste solo sul tuo telefono e nei backup che crei.

Il rovescio della medaglia è altrettanto chiaro: non c'è sincronizzazione automatica tra i dispositivi. Per passare a un altro telefono, crei un backup crittografato e lo importi su quello nuovo.

Dove si trovano i tuoi dati

  • Elementi della scatola e impostazioni: nella cartella riservata dell'app, crittografati con AES-256 con una chiave a 256 bit generata casualmente.
  • Chiave della scatola: su iOS nel Keychain, con la protezione "solo questo dispositivo" (non viene mai inviata a iCloud né ripristinata su un altro dispositivo); su Android, crittografata a sua volta con una chiave custodita nel Keystore.
  • PIN dell'app: il PIN in sé non viene mai memorizzato, ma solo un hash PBKDF2-HMAC-SHA256 con salt (210.000 iterazioni). Dal quinto tentativo errato si applica un'attesa crescente, da 30 secondi fino a un'ora.
  • Copia per la compilazione automatica: vengono trasmessi solo gli elementi della categoria Password che non si trovano nel cestino. Le chiavi 2FA, le note e i dati delle carte e delle chiavi API non vengono mai scritti nell'archivio della compilazione automatica.
  • Backup: vengono salvati solo dove scegli tu; i file temporanei vengono eliminati dopo la condivisione.
  • Scansione dei codici QR 2FA: i fotogrammi della fotocamera non vengono mai memorizzati; la copia temporanea di uno screenshot che scegli viene eliminata dopo la lettura, e i codici scansionati da un trasferimento di Google Authenticator restano in memoria finché non li importi.

Blocco e autenticazione

  • L'app si sblocca con la biometria (Face ID, impronta digitale), il codice del dispositivo o il PIN dell'app. Su Android il blocco accetta solo la biometria forte (Classe 3) o il codice del dispositivo.
  • Se l'app è protetta solo dal PIN, per attivare Sblocco biometrico ti viene chiesto prima il PIN.
  • Opzioni del blocco automatico: subito, 30 secondi, 1 minuto, 5 minuti, 15 minuti o mai. Il tempo viene misurato in modo che non sia possibile aggirare il blocco spostando indietro l'orologio del dispositivo.
  • Le azioni sensibili, come l'esportazione, l'eliminazione di tutti i dati, la disattivazione del blocco e la modifica del PIN, ti chiedono di autenticarti di nuovo.
  • Se dimentichi il PIN, verifica la tua identità con il blocco schermo o la biometria del dispositivo e impostane uno nuovo. Funziona finché l'opzione Consenti reimpostazione del PIN con il blocco del dispositivo è attiva (impostazione predefinita). Disattiva l'opzione se vuoi che chi conosce il codice del tuo dispositivo non possa impostare un nuovo PIN; in quel caso, se dimentichi il PIN, devi eliminare tutti i dati e ripristinare un backup, come avviene su un dispositivo senza blocco schermo.

Compilazione automatica

  • Android: un elemento viene suggerito solo se il nome del pacchetto e il certificato di firma dell'app che lo richiede corrispondono all'app collegata, oppure se il dominio corrisponde in un browser noto la cui firma è verificata. Ogni compilazione richiede l'autenticazione e, se l'app è protetta solo dal PIN, chiede anche il PIN dell'app. Viene decrittografata solo la password da inserire. Senza un blocco schermo sicuro, la compilazione automatica non funziona.
  • iOS: senza l'autenticazione del proprietario del dispositivo (Face ID, Touch ID o il codice) non viene mostrato nulla. Al sistema vengono comunicati solo il dominio e il nome utente, mai la password.
  • Link 2FA: un link otpauth:// aperto da un sito web o da un'altra app viene mostrato con un avviso e salvato solo dopo la tua conferma; una chiave 2FA esistente non viene mai sostituita.

Appunti e schermo

  • Le password copiate vengono contrassegnate come sensibili: su Android 13 e versioni successive non compaiono nelle anteprime né nella cronologia degli appunti della tastiera, e su iOS non passano agli altri tuoi dispositivi tramite Appunti universali.
  • Gli appunti vengono svuotati dopo il tempo che scegli (30, 60 o 90 secondi, oppure mai) e quando l'app si blocca. Anche i codici 2FA copiati vengono contrassegnati come sensibili.
  • Su Android gli screenshot e la registrazione dello schermo sono bloccati. Su iOS il contenuto viene nascosto mentre l'app è in background e durante la registrazione dello schermo.
  • Nei campi sensibili l'apprendimento della tastiera e la correzione automatica sono disattivati.

Backup

  • La chiave viene derivata dalla password del backup con Argon2id (64 MiB di memoria, 3 iterazioni, parallelismo 4: l'impostazione raccomandata dalla RFC 9106); ogni file indica i propri parametri, quindi i backup creati prima della versione 1.8.0 con 19 MiB / 2 iterazioni continuano ad aprirsi; il contenuto è crittografato con AES-256-GCM e anche l'intestazione è autenticata, quindi un file manomesso non si apre.
  • La password del backup deve contenere almeno 10 caratteri. Le password facili da indovinare come "Password123!" vengono rifiutate, così come il nome del prodotto, KutunaCo.
  • Se dimentichi la password, nessuno può aprire il backup, nemmeno noi.
  • Un'esportazione non crittografata avviene solo se la confermi esplicitamente, e chiunque apra quel file può leggere i tuoi elementi.

Limiti noti

  • Il blocco dell'app è un blocco dell'interfaccia. La chiave della scatola non è legata alla biometria; la scatola è crittografata con una chiave disponibile dopo il primo sblocco del dispositivo.
  • Sblocco biometrico accetta anche il codice del dispositivo: chi conosce il tuo codice può aprire la tua scatola.
  • La scatola non passa a un nuovo telefono con un backup del dispositivo su iCloud o Google. Crea un backup crittografato di KutunaCo prima di cambiare o inizializzare il telefono.
  • Non c'è alcun controllo delle violazioni di dati (come Have I Been Pwned): l'app non si collega mai a Internet, quindi non può consultare un elenco esterno. Il rapporto sulla salute delle password viene calcolato interamente sul dispositivo.
  • Le passkey non sono supportate.
  • L'estensione di riempimento automatico di iOS non chiede il PIN dell'app, ma solo l'autenticazione del proprietario del dispositivo. Per questo, se l'app è protetta solo dal PIN e la reimpostazione del PIN è disattivata, nessuna password viene passata al riempimento automatico di iOS, che quindi lì non è disponibile.
  • Finché non verifichi la tua identità, i suggerimenti della compilazione automatica mostrano il titolo e il nome utente dell'elemento (QuickType su iOS; suggerimenti bloccati su Android). Su Android, Impostazioni › Sicurezza › Nascondi nomi utente nei suggerimenti nasconde il nome utente.
  • Su Android il lettore di codici QR è fornito da Google Play Services e legge anche gli screenshot che scegli; senza Google Play Services, digita o incolla la chiave di configurazione. Google Play Services può inviare a Google dati diagnostici anonimi su ogni utilizzo del lettore (il tipo di evento, la sua durata, un codice di errore e dati del dispositivo e dell'app, come il modello del telefono e la versione dell'app); l'immagine, il contenuto del codice QR e gli elementi della tua scatola non ne fanno mai parte.
  • Per mostrarti quando è disponibile una nuova versione, l'app per Android chiede all'app Play Store del tuo telefono se ci sono aggiornamenti (Google Play In-App Updates) a ogni avvio e, quando torni all'app, al massimo una volta all'ora. Per rispondere, Play Store può inviare a Google dati del dispositivo e dell'app, come il modello del telefono e la versione dell'app; gli elementi della tua scatola non ne fanno mai parte, e l'app in sé continua a non effettuare richieste di rete. Su iPhone l'app non controlla nulla: Impostazioni › Informazioni apre la pagina di KutunaCo nell'App Store.
  • Nessuna app può proteggere completamente i dati su un dispositivo con permessi di root, sottoposto a jailbreak o infettato da malware.

Segnalare una vulnerabilità

Se trovi un problema di sicurezza, scrivi a support@kutuna.co. Indica la versione interessata, la piattaforma e i passaggi per riprodurlo; non inviare mai dati reali della tua scatola né password. I recapiti sono indicati anche in security.txt.