In breve
Sì, i tuoi dati non ci interessano. Vengono crittografati sul tuo dispositivo per impostazione predefinita, il che significa che i nostri server o database non li vedono né li registrano mai.
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:
- Password utente - al momento del login, utilizziamo
PBKDF2per 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 (conAES-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. - 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.
- 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.
Utilizziamo webcrypto per tutte le operazioni legate alla crittografia, inclusa la generazione di numeri casuali
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.
Lo usiamo noi stessi
Abbiamo scelto di implementare la crittografia end-to-end perché vogliamo mantenere privati i nostri dati finanziari. Facciamo il massimo per garantire che rimanga così.
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