I miei dati sono al sicuro?

I dati risiedono sul tuo dispositivo

Il concetto 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 anche se blocchi queste richieste di sincronizzazione.

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

Capitally è anche un portfolio tracker senza Plaid, Yodlee o altri aggregatori di collegamento al broker. Non ti chiediamo username e password del broker e non leggiamo il tuo conto corrente. Gli import avvengono solo tramite caricamento diretto di file (CSV/XLS/XML/JSON) o inserimento manuale. È una scelta di privacy, ma anche di precisione — gli export CSV dei broker risalgono al giorno di apertura del conto e mantengono le operazioni societarie, i reinvestimenti dei dividendi e le conversioni FX che gli aggregatori in genere perdono, cioè esattamente il dettaglio da cui dipendono un prezzo di carico accurato (e la dichiarazione fiscale).

I progetti sono crittografati per impostazione predefinita

Ogni progetto Capitally utilizza la crittografia AES-256 lato client (AES-GCM) con chiavi derivate dalla tua password tramite PBKDF2 e protette da key wrapping RSA-OAEP. Si tratta di crittografia zero-knowledge: le chiavi di crittografia non lasciano mai il tuo dispositivo e i nostri server memorizzano soltanto testo cifrato.

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 cancellazioni non autorizzate effettuate 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 (quando hai apportato la modifica, non la transazione effettiva) non sono crittografati

Come funziona la crittografia

Quando crei un progetto puoi scegliere tra tre modalità di crittografia:

  1. Password utente — al login, usiamo PBKDF2 per derivare due password da quella che inserisci, utilizzando due salt separati. La prima password ti autentica, così i nostri server di autenticazione (Google Identity Platform) non ricevono mai la password che digiti, e la seconda non può essere derivata da essa. La seconda password crittografa (con AES-GCM) un insieme di chiavi private usate per la crittografia del progetto. Puoi scegliere di memorizzare in modo sicuro quella chiave nel browser per non doverla digitare di nuovo.
  2. Password del progetto — come sopra, ma imposti una password di progetto separata che deriva la chiave di crittografia, distinta da quella di login.
  3. Chiave remota — una volta effettuato il login, l'app recupera una chiave di crittografia dal server. La chiave non è memorizzata nel database; viene derivata al volo dalle tue credenziali, da un salt e dalla nostra chiave privata. L'endpoint che detiene questa chiave privata è separato da ogni altro endpoint.

Ogni utente del progetto (il sistema è pronto per la condivisione dei progetti, anche se oggi è supportato un solo utente) ha una coppia di chiavi RSA-OAEP. La chiave privata è crittografata con la chiave di crittografia principale sopra descritta e viene usata per decifrare le share key (un'altra AES-GCM), che a loro volta crittografano e decifrano i dati del progetto. Possono esserci più share key per progetto — ad esempio una per ciascun 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 esempio nuove transazioni da un broker) in modo che solo l'utente designato possa leggerli.

Una volta inserita la password, non viene memorizzata né inviata da nessuna parte. Le chiavi di crittografia derivate possono essere memorizzate nel browser, ma sono non esportabili — possono decifrare i tuoi dati, ma il materiale della chiave stesso non può essere letto, nemmeno dal codice dell'applicazione di Capitally.

Hosting, GDPR e residenza dei dati nell'UE

Capitally è sviluppato in Europa per investitori di tutto il mondo e opera secondo il diritto europeo in materia di privacy.

  • Hosting in Europa. Tutti i server e i database si trovano in data center dell'UE — i tuoi dati crittografati non escono mai dalla giurisdizione europea. Utilizziamo Google Cloud, Railway, Hetzner, MongoDB e Cloudflare.
  • Conforme al GDPR. Hai il diritto di esportare e di eliminare definitivamente i tuoi dati in qualsiasi momento; entrambe le operazioni richiedono un solo clic all'interno dell'app, senza bisogno di inviare email.
  • Igiene dei server secondo gli standard del settore oltre alla crittografia end-to-end: HTTPS per tutto il traffico, crittografia a riposo, accesso su base need-to-know per il nostro team, autenticazione a due fattori e log degli accessi.
  • Nessun data broker di terze parti. Non condividiamo dati con inserzionisti e nessun SDK di analytics ha accesso al tuo portafoglio — puoi anche disattivare completamente gli analytics (vedi Analytics e tracciamento errori qui sotto).

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. Tutte le comunicazioni di rete sono facilmente verificabili negli strumenti per sviluppatori del browser.

Come con qualsiasi software, alla fine è una questione di fiducia. Devi fidarti del fatto che noi (o un hacker) non modificheremo di nascosto quel codice per rubare le chiavi di crittografia o le password.

La maggior parte degli altri portfolio tracker si descrivono come «crittografati a livello bancario», il che significa che il provider detiene le tue chiavi e può leggere i tuoi dati. Capitally è crittografato end-to-end, il che significa che solo tu puoi farlo — nemmeno i nostri ingegneri possono, per progettazione.

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