Sécurité
Comment vos données sont protégées
Des faits plutôt que des adjectifs : ce qui est en place, comment cela fonctionne et où sont les limites. Tout ce qui figure ici décrit l'application telle qu'elle fonctionne aujourd'hui. Si quelque chose n'est pas clair ou si vous trouvez un problème, l'adresse en bas de cette page arrive à une personne.
Où sont stockées vos données
- Vos données sont stockées dans une base Postgres gérée par Supabase. Les connexions sont chiffrées en transit et Supabase chiffre ses bases de données au repos.
- L'accès est contrôlé par des politiques de sécurité au niveau des lignes dans la base elle-même : seules les personnes d'un foyer peuvent lire ou modifier ses lignes, quoi que demande le code de l'application. Les membres ont des rôles (propriétaire, membre, lecteur) et la base vérifie le rôle à chaque écriture.
- Le site est hébergé chez Vercel et servi uniquement en HTTPS.
Connexions bancaires
- Les connexions passent par Plaid. Vous vous connectez à votre banque sur l'écran de Plaid ; votre identifiant et votre mot de passe bancaires n'atteignent jamais nos serveurs et nous ne les stockons jamais.
- Le jeton d'accès fourni par Plaid est chiffré en AES-GCM avant d'être stocké, avec une clé qui n'existe que comme secret côté serveur. La base de données seule ne suffit pas pour l'utiliser.
- Déconnecter une banque dans les réglages supprime aussi la connexion chez Plaid, pas seulement dans notre base. Supprimer votre compte fait de même pour toutes vos banques connectées.
Connexion
- Connectez-vous avec Google, avec Apple ou avec une adresse e-mail et un mot de passe.
- Les nouveaux mots de passe sont comparés aux fuites connues via l'API par plages de Have I Been Pwned : seuls les cinq premiers caractères d'un hachage quittent votre navigateur, jamais le mot de passe.
- Les codes de vérification et de réinitialisation sont générés par un générateur aléatoire cryptographiquement sûr, vérifiés en temps constant et limités en nombre d'essais par compte et par adresse réseau, pour qu'ils ne puissent pas être devinés par force brute.
- Un e-mail lorsque votre compte est ouvert depuis un appareil inconnu, avec un lien « ce n'était pas moi » qui ferme toutes les sessions et lance une réinitialisation du mot de passe. C'est un avis de sécurité, il ne peut donc pas être désactivé.
- Historique des connexions et sessions actives dans les réglages, avec déconnexion des autres appareils.
- Déconnexion automatique après 30 minutes d'inactivité, avec un avertissement 5 minutes avant. Le compteur ne tourne que lorsque l'application est à l'écran : un onglet masqué ou un téléphone verrouillé ne l'épuise pas.
Authentification à deux facteurs
- Authentification à deux facteurs avec n'importe quelle application d'authentification.
- Une fois activée, la base de données elle-même l'exige. Chaque table contenant des données financières porte une politique qui refuse une session n'ayant pas validé le second facteur : même un mot de passe volé avec une session valide ne permet pas de lire vos soldes ou vos opérations.
- Si vous perdez votre authentificateur, vous pouvez le retirer en prouvant que vous contrôlez votre adresse e-mail avec un code à usage unique. Vous avez cinq essais par code. Il n'existe pas encore de codes de secours imprimables : protégez donc aussi votre compte e-mail.
Sur votre téléphone
- Les applications iOS et Android peuvent se verrouiller avec Face ID, Touch ID ou la biométrie de l'appareil. C'est facultatif, dans Réglages → Sécurité, et le verrou s'active à l'ouverture et après 1, 5 ou 15 minutes en arrière-plan, selon votre choix.
- Masquez tous les soldes sur l'appareil que vous utilisez d'un simple geste, si quelqu'un regarde par-dessus votre épaule.
Accès des assistants IA
- Connecter Claude, ChatGPT ou un autre assistant utilise un jeton d'accès personnel que vous créez dans les réglages. Nous ne stockons qu'un hachage SHA-256, jamais le jeton lui-même.
- Les jetons sont en lecture seule sauf si vous en décidez autrement ; avec un jeton en lecture seule, les outils qui modifient des données n'existent tout simplement pas. Les connexions autorisées par OAuth sont toujours en lecture seule.
- Chaque requête s'exécute en votre nom, avec les mêmes règles de base de données que l'application : un assistant ne peut jamais voir plus que vous. Les jetons peuvent expirer et vous pouvez en révoquer un à tout moment.
Dans votre navigateur
- Strict Transport Security avec préchargement, pour que les navigateurs ne se connectent qu'en HTTPS.
- Une politique de sécurité du contenu qui limite les connexions de la page à une courte liste de services nommés (notre base de données, Plaid, l'API de vérification des fuites et notre suivi des erreurs) et n'autorise que le cadre de Plaid.
- Le site ne peut pas être intégré dans une autre page, ce qui bloque le détournement de clic, et le navigateur n'accorde pas l'accès à la caméra, au micro, à la localisation ni aux paiements.
Rapports d'erreurs et statistiques
- Les rapports de plantage sont envoyés à Sentry et ne vous identifient que par un identifiant de compte interne, jamais par votre e-mail. Avant tout envoi, les valeurs qui ressemblent à des jetons, mots de passe, codes, adresses e-mail ou numéros de téléphone sont retirées des URL.
- Les visites sont comptées par Vercel Web Analytics, sans cookies. Aucun traceur publicitaire, ni Google Analytics, ni pixel Facebook.
Vous gardez la main
- Exportez vos dettes, comptes, opérations, objectifs et réglages à tout moment depuis les réglages : un fichier JSON complet, plus un CSV pour les dettes, comptes, opérations et objectifs. Il ne couvre pas encore les budgets, les règles de catégorisation, les étiquettes ni l'historique de valeur nette.
- Supprimez votre compte depuis les réglages. C'est un bouton, pas une demande au support : vos banques sont déconnectées chez Plaid, vos données et votre photo de profil sont supprimées et votre accès est retiré.
Ce que nous ne faisons pas
- Vendre vos données ou afficher des publicités. Les revenus viennent des abonnements Pro.
- Stocker vos identifiants bancaires. Nous ne les voyons jamais.
- Revendiquer des certifications que nous n'avons pas. C'est un petit produit ; il n'a pas fait l'objet d'un audit SOC 2 et ne prétendra pas le contraire.
Signaler un problème de sécurité
Si vous pensez avoir trouvé une faille, écrivez-moi directement. Je préfère nettement l'apprendre de vous en premier.
Quoi inclure
- Ce que vous avez trouvé, et la gravité que vous lui donnez.
- Les étapes pour le reproduire, avec l'URL ou la requête utilisée.
- Tout ce que vous avez vu qui ne vous appartenait pas. Dites-le, et arrêtez-vous là.
Si vous cherchez de bonne foi, n'accédez pas aux données d'autres personnes et me laissez un délai raisonnable pour corriger ce que vous trouvez, je ne vous poursuivrai pas et ne vous signalerai pas.
Il existe un bug bounty rémunéré. Le périmètre, les règles et le fonctionnement des primes sont sur la page du bug bounty.
Comptez quelques jours pour une réponse.