En résumé
Oui, vos données ne nous intéressent pas. Elles sont chiffrées sur votre appareil par défaut, ce qui signifie que nos serveurs ou bases de données ne les voient ni n'enregistrent jamais.
Les données restent sur votre appareil
Le principe fondamental de Capitally est que toutes vos données sont chiffrées et conservées sur votre appareil. Nos serveurs ne stockent qu'une copie de votre projet à des fins de synchronisation entre appareils, mais comme vous seul possédez les clés de chiffrement, nous ne pouvons pas accéder aux données réelles — et il est tout à fait normal de bloquer ces requêtes.
La seule chose que nous « voyons » est avec quels symboles de marché vous avez interagi — recherchés ou dont vous avez consulté les prix — mais nous ne les associons pas à votre compte.
Les projets sont chiffrés par défaut
En chiffrant vos données, nous cherchons à les protéger contre :
- tout accès non autorisé aux données stockées dans nos bases de données, que ce soit par des employés, des pirates informatiques ou des administrations publiques
- tout accès non autorisé sur votre appareil, mais uniquement si vous protégez le profil de votre navigateur contre tout accès direct, ou si vous ne choisissez pas l'option « Se souvenir de moi » lors de la connexion
Nous ne pouvons pas protéger contre :
- les attaques de la chaîne d'approvisionnement ou les attaques de l'homme du milieu, dans lesquelles des attaquants remplacent notre code source
- les écritures ou suppressions non autorisées dans nos bases de données ou sur l'appareil client
- la détection de l'activité d'un projet — les métadonnées du projet, telles que le type d'opération (Transaction créée, mise à jour, supprimée, etc.) et les horodatages (le moment où vous avez effectué la modification, et non la transaction elle-même) ne sont pas chiffrées
Modes de chiffrement
Lors de la création d'un projet, vous pouvez choisir de le chiffrer avec :
- Mot de passe utilisateur — lors de la connexion, nous utilisons
PBKDF2pour dériver deux mots de passe à partir de celui que vous saisissez, en utilisant deux sels distincts. Le premier mot de passe sert à vous authentifier — ainsi, nos serveurs d'authentification (Google Identity Platform) ne reçoivent jamais le mot de passe que vous avez tapé, ce qui rend impossible la dérivation du second mot de passe à partir de celui-ci. Ce second mot de passe est utilisé pour chiffrer (avecAES-GCM) un ensemble de clés privées qui seront utilisées pour le chiffrement du projet. Une option permet de stocker de manière sécurisée cette clé de chiffrement dans votre navigateur, afin que vous n'ayez pas à la saisir à nouveau. - Mot de passe du projet — identique au mode précédent, si ce n'est qu'un mot de passe de projet distinct vous sera demandé pour dériver la clé de chiffrement.
- Clé distante — une fois connecté, l'application récupère une clé de chiffrement depuis le serveur. Cette clé n'est pas stockée dans la base de données ; elle est dérivée d'une combinaison d'identifiants utilisateur, d'un sel et de notre propre clé privée. Le point d'accès est isolé des autres points d'accès et est le seul à avoir accès à la clé.
Chaque utilisateur d'un projet (il ne peut actuellement y en avoir qu'un seul, mais le système est prêt pour introduire le partage de projet) dispose d'un ensemble de clés privées et publiques (RSA-OAEP). La clé privée est chiffrée avec la clé de chiffrement principale mentionnée précédemment. Elle est utilisée pour déchiffrer une clé de partage (un autre algorithme AES-GCM) qui, à son tour, sert à chiffrer et déchiffrer les données du projet. Un projet peut comporter plusieurs clés de partage (par exemple, pour chaque ensemble de données partagées entre les mêmes utilisateurs).
La clé publique est utilisée pour chiffrer les clés de partage émises à l'intention de l'utilisateur, et pour signer les messages générés par le backend (par exemple, de nouvelles transactions provenant d'un courtier) — de sorte que seul l'utilisateur puisse les lire.
Il convient de noter qu'une fois votre mot de passe saisi, il n'est ni stocké ni transmis où que ce soit. Les clés de chiffrement peuvent être conservées, mais ne sont pas exportables, ce qui signifie qu'elles peuvent être utilisées pour déchiffrer les données, mais que la clé elle-même ne peut pas être lue — l'application n'y a littéralement pas accès.
Nous utilisons webcrypto pour toutes les opérations liées au chiffrement, y compris la génération de nombres aléatoires
Le code est-il open source et vérifié ?
Capitally est un projet à code source fermé, mais l'application cliente est écrite en TypeScript et tout le traitement des données s'effectue côté client. L'ensemble des communications réseau est également facilement vérifiable dans les outils de développement du navigateur.
Comme pour tout logiciel , tout repose en fin de compte sur la confiance. Vous devez nous faire confiance, en espérant que ni nous ni un éventuel pirate ne modifierons subrepticement ce code pour dérober les clés de chiffrement ou les mots de passe.
Nous l'utilisons nous-mêmes
Nous avons choisi de mettre en œuvre le chiffrement de bout en bout parce que nous souhaitons préserver la confidentialité de nos propres données financières. Nous mettons tout en œuvre pour qu'il en reste ainsi.
Analytique et suivi des erreurs
Nous ne cherchons pas à connaître le détail de vos finances, mais afin d'améliorer l'application et de vous aider en cas de problème, nous collectons certaines données d'utilisation si vous nous y autorisez. Plus précisément, nous collectons actuellement :
- votre ID utilisateur
- l'URL de la page, qui peut contenir l'ID de l'actif
- les URL des requêtes réseau (qui contiendront les ID des actifs du marché)
- les éléments sur lesquels vous cliquez (leur ID système uniquement)
- les messages du journal système (qui peuvent contenir des ID d'actifs du marché)
Si vous ne nous autorisez pas à vous identifier, nous ne stockerons aucun des ID mentionnés ci-dessus. Dans ce cas, nous enregistrons uniquement les erreurs et quelques données d'utilisation très limitées, de manière totalement anonyme, sans ID ni journaux détaillés.
Ce que nous ne collectons jamais :
- la taille ou la valeur de vos investissements
- les noms, notes ou tout texte que vous créez vous-même
- les sources de cours personnalisées