Mes données sont-elles en sécurité ?

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 stockent uniquement une copie de votre projet pour la synchronisation entre vos appareils, mais comme vous seul avez accès aux clés de chiffrement, nous ne pouvons pas voir les données réelles — et il est tout à fait acceptable que vous bloquiez ces requêtes de synchronisation.

La seule chose que nous « voyons », ce sont les symboles de marché avec lesquels vous avez interagi — recherchés, ou dont vous avez récupéré les prix — mais nous ne les rattachons pas à votre compte.

Capitally est également un outil de suivi de portefeuille sans Plaid, Yodlee ni aucun autre agrégateur de connexion aux courtiers. Nous ne vous demandons pas votre identifiant et votre mot de passe de courtier, et nous ne lisons pas votre compte bancaire. Les imports se font uniquement via téléversement direct de fichiers (CSV/XLS/XML/JSON) ou saisie manuelle. C'est un choix de confidentialité, mais aussi un choix de précision — les exports CSV des courtiers remontent jusqu'au jour de l'ouverture du compte et conservent les opérations sur titres, les réinvestissements de dividendes et les conversions FX que les agrégateurs omettent généralement, ce qui est précisément le niveau de détail dont dépendent un prix de revient exact (et une déclaration fiscale).

Les projets sont chiffrés par défaut

Chaque projet Capitally utilise un chiffrement AES-256 côté client (AES-GCM) avec des clés dérivées de votre mot de passe via PBKDF2 et protégées par l'encapsulation de clé RSA-OAEP. Il s'agit d'un chiffrement à connaissance nulle : les clés de chiffrement ne quittent jamais votre appareil, et nos serveurs ne stockent que du texte chiffré.

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 effectuées dans nos bases de données ou sur l'appareil client
  • la détection de l'activité du projet — les métadonnées du projet, comme le type d'opération (transaction créée, modifiée, supprimée, etc.) et les horodatages (le moment où vous avez effectué la modification, pas la transaction elle-même) ne sont pas chiffrées

Comment fonctionne le chiffrement

Lors de la création d'un projet, vous avez le choix entre trois modes de chiffrement :

  1. Mot de passe utilisateur — lorsque vous vous connectez, nous utilisons PBKDF2 pour dériver deux mots de passe à partir de celui que vous saisissez, avec deux sels distincts. Le premier mot de passe vous authentifie, de sorte que nos serveurs d'authentification (Google Identity Platform) ne reçoivent jamais le mot de passe que vous tapez, et le second ne peut pas en être dérivé. Le second mot de passe chiffre (avec AES-GCM) un ensemble de clés privées utilisées pour le chiffrement du projet. Vous pouvez choisir de stocker cette clé de manière sécurisée dans votre navigateur pour ne pas avoir à la retaper.
  2. Mot de passe du projet — identique à ce qui précède, mais vous définissez un mot de passe de projet distinct qui sert à dériver la clé de chiffrement, différent de votre connexion.
  3. Clé distante — une fois connecté, l'application récupère une clé de chiffrement depuis le serveur. La clé n'est pas stockée en base de données ; elle est dérivée à la volée à partir de vos identifiants, d'un sel et de notre propre clé privée. L'endpoint qui détient cette clé privée est isolé de tous les autres endpoints.

Chaque utilisateur du projet (le système est prêt pour le partage de projet, même si un seul utilisateur est pris en charge aujourd'hui) possède une paire de clés RSA-OAEP. La clé privée est chiffrée avec la clé de chiffrement principale ci-dessus et sert à déchiffrer des clés de partage (autre AES-GCM), qui à leur tour chiffrent et déchiffrent les données du projet. Il peut y avoir plusieurs clés de partage par projet — par exemple une pour chaque ensemble de données partagées entre les mêmes utilisateurs.

La clé publique sert à chiffrer les clés de partage délivrées à l'utilisateur, et à signer les messages générés par le backend (par exemple les nouvelles transactions issues d'un courtier) afin que seul l'utilisateur destinataire puisse les lire.

Une fois que vous saisissez un mot de passe, il n'est ni stocké ni envoyé où que ce soit. Les clés de chiffrement dérivées peuvent être stockées dans votre navigateur, mais elles sont non exportables — elles peuvent déchiffrer vos données, mais le matériel cryptographique lui-même ne peut pas être relu, pas même par le code de l'application Capitally.

Hébergement, RGPD et résidence des données dans l'UE

Capitally est conçu en Europe pour les investisseurs du monde entier, et fonctionne dans le cadre de la législation européenne sur la vie privée.

  • Hébergé en Europe. Tous les serveurs et bases de données se trouvent dans des centres de données de l'UE — vos données chiffrées ne quittent jamais la juridiction européenne. Nous utilisons Google Cloud, Railway, Hetzner, MongoDB et Cloudflare.
  • Conforme au RGPD. Vous avez le droit d'exporter et de supprimer définitivement vos données à tout moment ; les deux opérations se font en un clic dans l'application, sans e-mail requis.
  • Hygiène serveur aux standards du secteur en complément du chiffrement de bout en bout : HTTPS pour tout le trafic, chiffrement au repos, accès restreint au strict nécessaire pour notre équipe, authentification à deux facteurs et journaux d'accès.
  • Aucun courtier de données tiers. Nous ne partageons pas de données avec des annonceurs, et aucun SDK d'analytics n'a accès à votre portefeuille — vous pouvez aussi désactiver entièrement les analytics (voir Analytics et suivi des erreurs ci-dessous).

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 toute la gestion des données se fait côté client. Toutes les communications réseau sont facilement vérifiables 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 sur le fait que nous (ou un pirate) ne modifierons pas secrètement ce code pour dérober les clés de chiffrement ou les mots de passe.

La plupart des autres outils de suivi de portefeuille se décrivent comme « chiffrés au niveau bancaire », ce qui signifie que le fournisseur détient vos clés et peut lire vos données. Capitally est chiffré de bout en bout, ce qui signifie que vous seul le pouvez — même nos propres ingénieurs ne le peuvent pas, par conception.

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