I miei dati sono al sicuro?

I dati risiedono sul tuo dispositivo

Il principio fondamentale di Capitally è che tutti i tuoi dati sono crittografati e conservati sul tuo dispositivo. I nostri server memorizzano solo una copia del tuo progetto per la sincronizzazione tra dispositivi, ma poiché solo tu hai accesso alle chiavi di crittografia, non possiamo vedere i dati effettivi — e va benissimo se blocchi quelle richieste.

L'unica cosa che «vediamo» è con quali simboli di mercato hai interagito — cercati o per cui hai richiesto i prezzi — ma non li colleghiamo al tuo account.

I progetti sono crittografati per impostazione predefinita

Crittografando i tuoi dati, vogliamo proteggerli da:

  • accesso non autorizzato ai dati archiviati nei nostri database, sia da parte di dipendenti, hacker o agenzie governative
  • accesso non autorizzato sul tuo dispositivo, ma solo finché proteggi il profilo del tuo browser dall'accesso diretto, o non scegli l'opzione «Ricordami» durante il login

Non siamo in grado di proteggerli da:

  • attacchi alla supply chain o man-in-the-middle in cui gli aggressori sostituiscono il nostro codice sorgente
  • scritture o eliminazioni non autorizzate nei nostri database o sul dispositivo client
  • rilevamento dell'attività del progetto — i metadati del progetto, come il tipo di operazione (transazione creata, aggiornata, eliminata, ecc.) e i timestamp (il momento in cui hai apportato la modifica, non la transazione effettiva) non sono crittografati

Modalità di crittografia

Durante la creazione di un progetto puoi scegliere di crittografarlo con:

  1. Password utente - al momento del login, utilizziamo PBKDF2 per derivare due password da quella che inserisci, usando due salt separati. La prima password viene usata per autenticarti — in questo modo i nostri server di autenticazione (Google Identity Platform) non ricevono mai la password che hai digitato, rendendo impossibile derivare la seconda password da essa. Questa seconda password viene usata per crittografare (con AES-GCM) un insieme di chiavi private che verranno utilizzate nella crittografia del progetto. È disponibile un'opzione per memorizzare in modo sicuro la chiave di crittografia nel browser, così non dovrai digitarla di nuovo.
  2. Password del progetto - identica alla precedente, ma ti verrà chiesta una password separata per il progetto, che verrà usata per derivare la chiave di crittografia.
  3. Chiave remota - dopo il login, l'applicazione recupera una chiave di crittografia dal server. La chiave non è memorizzata nel database, ma viene derivata da una combinazione di credenziali utente, salt e nostra chiave privata. L'endpoint è separato dagli altri ed è l'unico ad avere accesso alla chiave.

Ogni utente di un progetto (al momento può essercene solo uno, ma il sistema è pronto per introdurre la condivisione dei progetti) dispone di un insieme di chiavi private e pubbliche (RSA-OAEP). La chiave privata è crittografata con la chiave di crittografia principale già menzionata. Viene usata per decrittare una share key (un'altra AES-GCM) che a sua volta viene usata per crittografare/decrittare i dati del progetto. Possono esistere più share key per progetto (ad es. per ogni insieme di dati condivisi tra gli stessi utenti).

La chiave pubblica viene usata per crittografare le share key rilasciate all'utente e per firmare i messaggi generati dal backend (ad es. nuove transazioni da un broker) — in modo che solo l'utente possa leggerli.

Vale la pena sottolineare che, una volta inserita la password, questa non viene memorizzata né inviata da nessuna parte. Le chiavi di crittografia possono essere archiviate, ma non sono esportabili: possono essere usate per decrittare i dati, ma la chiave stessa non è leggibile — l'applicazione non vi ha letteralmente accesso.

Il codice è open source e verificato?

Capitally è un progetto closed-source, ma l'app client è scritta in TypeScript e tutta la gestione dei dati avviene lato client. Anche tutte le comunicazioni di rete sono facilmente verificabili negli strumenti per sviluppatori del browser.

Come per qualsiasi software, tutto si riduce alla fiducia. Devi fidarti di noi, che né noi né un hacker modificheremo di nascosto quel codice per sottrarre le chiavi di crittografia o le password.

Analytics e tracciamento degli errori

Non vogliamo conoscere i tuoi dati finanziari, ma per migliorare l'app e aiutarti in caso di problemi, raccogliamo alcuni dati sull'utilizzo se ci dai il permesso. Nello specifico, raccogliamo attualmente:

  • il tuo ID utente
  • l'URL della pagina, che può contenere l'ID dell'asset
  • gli URL delle richieste di rete (che conterranno gli ID degli asset di mercato)
  • gli elementi su cui clicchi (solo il loro ID di sistema)
  • i messaggi di log di sistema (che possono contenere ID degli asset di mercato)

Se non ci consenti di identificarti, non memorizzeremo nessuno degli ID sopra menzionati. In tal caso, registriamo solo gli errori e un utilizzo minimo delle funzionalità, in modo completamente anonimo, senza ID né log dettagliati.

Cose che non raccogliamo mai:

  • la dimensione o il valore dei tuoi investimenti
  • nomi, note o qualsiasi testo che crei tu stesso
  • fonti di quotazione personalizzate