Informations légales
Politique de confidentialité
Ce que l'application MiExpenses et ce site font des données. Ce texte a été écrit en lisant l'application et le serveur, et non en remplissant un modèle : il nomme donc les choses qu'un modèle aurait laissées de côté.
Dernière mise à jour :
1Qui est responsable
MiExpenses est développée et exploitée par une seule personne, Alexander Volkov. Il n'y a aucune société derrière. C'est lui le responsable du traitement pour tout ce qui est décrit ici, et les questions, les demandes de copie de vos données et les demandes de suppression vont toutes à la même adresse : contacts@mve.suxlv2.space.
2Ce que couvre ce document
Il couvre l'application Android MiExpenses et ce site. Le site est fait de pages statiques : il n'exécute aucun script, ne charge aucune police, image ou fichier depuis un autre hôte, et n'adresse de requête à personne d'autre qu'au serveur qui vous remet la page. Le lire ne dépose aucun cookie et n'apprend à personne que vous êtes venu. Tout ce qui suit concerne l'application.
3Ce que vous nous donnez
L'application exige un compte : la première chose qu'elle demande est donc une adresse e-mail et un mot de passe, ou une connexion Google. Se connecter avec Google nous donne le même champ unique : l'application ne lit que l'adresse e-mail dans les identifiants Google, et le jeton Google lui-même reste sur le téléphone. Le reste, c'est ce que vous choisissez pendant la configuration initiale.
Conservé sur le compte :
- Votre adresse e-mail. C'est le nom du compte, et la clé sous laquelle tout le reste est conservé.
- Votre pays. Choisi pendant la configuration initiale, ou renseigné par la recherche décrite plus bas.
- Votre devise. Les montants saisis dans d'autres devises y sont convertis pour les totaux.
- Votre unité de distance : kilomètres ou miles.
- Votre unité de volume : litres, gallons impériaux ou gallons US.
- Si MiExpenses Premium est actif sur le compte.
4Ce que vous enregistrez dans l'application
Tout ce que vous saisissez sur un véhicule et sur ses coûts est conservé sur notre serveur, et pas seulement sur votre téléphone. Cela vaut aussi pour des champs dont on suppose souvent qu'ils restent sur l'appareil.
- Véhicule : nom, type, marque, modèle, année, cylindrée, volumes de réservoir et types de carburant, relevé de compteur et, si vous les renseignez, la plaque d'immatriculation et le VIN.
- Dépense : date, catégorie et sous-catégorie, compteur, montant et devise, ainsi que le commentaire en texte libre.
- Plein : en plus de cela, le prix unitaire, le volume, le type de carburant, et les marques « plein complet » et « exclure des statistiques ».
- Les rappels, les sous-catégories de dépense que vous créez, et les enregistrements de partage.
- Les avis envoyés depuis l'application : la note en étoiles, votre texte et votre identifiant d'utilisateur.
- Les limites mensuelles et les modèles de dépense se comportent autrement. Ils n'atteignent le serveur que tant que MiExpenses Premium est actif sur le compte ; sans lui, ils restent sur le téléphone, ce qui explique aussi qu'un deuxième téléphone ne les affiche pas.
5Ce que l'application collecte d'elle-même
Trois choses se produisent sans que vous les ayez demandées, et deux d'entre elles ne peuvent pas être désactivées depuis l'application.
- Un jeton push. Firebase Cloud Messaging délivre un jeton pour votre installation, et l'application l'envoie à notre serveur avec votre adresse e-mail, qui est la clé sous laquelle il est conservé. Il est envoyé après votre connexion, lorsque le jeton change, et après un redémarrage, que vous ayez autorisé les notifications ou non.
- Une recherche de pays d'après l'adresse IP. Pendant la configuration initiale, et à chaque ouverture de l'écran d'accueil avec une connexion qui fonctionne, l'application demande à un service de géolocalisation tiers à quel pays appartient votre adresse IP. Il existe trois services de ce genre et l'application les essaie tour à tour jusqu'à ce que l'un réponde ; aucun d'eux n'est le nôtre, et chacun d'eux voit votre adresse IP. Ce document ne les nomme pas : lequel répond est un détail de mise en œuvre, alors que ce qui quitte votre téléphone est le même dans tous les cas. Rien ne demande votre consentement, aucun réglage ne permet de le désactiver, et la réponse n'est inscrite dans votre profil que lorsque votre pays n'est pas encore défini.
- La publicité. Le SDK Google Mobile Ads est démarré à chaque ouverture de l'écran d'accueil, y compris lors des sessions où aucune publicité n'est jamais demandée. Il existe exactement un emplacement dans l'application : une vidéo plein écran avec récompense avant l'ouverture de la liste des statistiques mondiales, montrée aux comptes qui ne portent pas la marque « payant ». La requête est construite avec les réglages par défaut : elle n'est donc pas marquée comme non personnalisée, et aucun formulaire de consentement n'est affiché. Ce que ce SDK recueille va à Google et non à nous, et ce sont les conditions de Google qui s'y appliquent.
6Analytique et rapports de plantage
Le SDK Firebase Analytics fait partie de la version publiée, mais un indicateur du manifeste de l'application désactive la collecte de données. L'application n'envoie par ailleurs aucun événement analytique qui lui soit propre : il n'y a pas un seul appel d'événement ni de propriété d'utilisateur dans son code source.
Il n'y a aucun rapport de plantage ni aucun suivi des performances : ni Crashlytics, ni équivalent tiers, ni gestionnaire de plantage maison. Si l'application plante sur votre téléphone, aucune pile d'appels ne nous parvient et nous n'en apprenons rien. La seule façon dont nous entendons parler d'un problème, c'est que vous nous écriviez.
7Les statistiques mondiales
L'application comporte un écran qui place un véhicule à côté des mêmes marque et modèle possédés par d'autres personnes. Cela fonctionne parce que notre serveur conserve une ligne pour chaque véhicule qui remplit les conditions et montre cette liste aux autres personnes qui utilisent l'application.
Un véhicule n'entre dans la liste qu'après au moins dix entrées, trente jours d'historique, une activité au cours des soixante derniers jours et au moins mille unités de distance. Sa marque et son modèle doivent en outre figurer au catalogue du serveur, et le compte doit porter la marque « payant » de notre côté. Les lignes ne sont pas moyennées entre elles : chaque ligne est un véhicule.
Ce que porte une ligne, et ce qu'elle ne porte pas :
- Un identifiant numérique de propriétaire, le pays, la marque, le modèle et l'année de fabrication.
- Les totaux de ce véhicule : distance, volume de carburant et coût.
- Elle ne porte ni la plaque d'immatriculation, ni le VIN, ni votre adresse e-mail, ni aucune dépense prise individuellement.
- Il n'existe dans l'application aucun réglage qui tienne votre véhicule à l'écart de cette liste.
8L'achat de Premium
Si vous achetez MiExpenses Premium, le paiement lui-même est traité par Google Play : nous ne voyons ni votre carte ni vos coordonnées bancaires, et aucun argent ne passe par nous. Deux choses nous concernent tout de même. Google Play reçoit le numéro sous lequel votre compte est enregistré, afin de pouvoir indiquer à notre serveur à quel compte appartient un achat ; et l'application envoie à notre serveur le jeton d'achat délivré par Google Play, que le serveur vérifie auprès de Google avant de marquer le compte comme payant. Cette marque est conservée sur votre compte, et c'est elle qui ouvre les fonctions payantes sur chaque appareil où vous vous connectez.
9Où vont les données
Tout ce que l'application conserve part vers les serveurs du développeur lui-même, en HTTPS. Il y a deux points d'entrée ; l'application choisit seule entre eux, et vous pouvez en fixer un dans les paramètres. Aucun stockage en ligne tiers ne figure dans la chaîne : ni Google Drive, ni Dropbox, ni aucun service de fichiers d'aucune sorte. Ce document ne nomme ni les adresses de ces serveurs, ni un pays de stockage : les adresses relèvent de l'infrastructure et peuvent changer sans que rien ne change pour vous, et le pays est une affirmation que nous ne pourrions étayer par rien que vous puissiez vérifier.
Les données quittent votre téléphone vers :
- Notre propre serveur, en HTTPS. Votre compte, vos véhicules, vos dépenses, vos rappels, vos catégories et vos enregistrements de partage y vivent.
- Firebase Authentication, pour la connexion par e-mail et la connexion Google.
- Firebase Cloud Messaging, pour le jeton push et pour les messages de réveil, qui ne portent aucune donnée personnelle qui leur soit propre.
- Google AdMob, pour l'unique vidéo avec récompense décrite plus haut.
- L'un de trois services de géolocalisation tiers, pour la recherche de pays d'après l'adresse IP.
- Google Play, pour l'achat de MiExpenses Premium et pour vérifier qu'il tient toujours.
10Comment tout cela est protégé
Le trafic entre l'application et le serveur passe en HTTPS, et la version publiée refuse le HTTP en clair. Les mots de passe sont pris en charge par Firebase Authentication et n'atteignent jamais notre serveur, qui n'a ni champ ni colonne de mot de passe ; pour la connexion par e-mail, Firebase exige en outre une adresse confirmée. Sur le téléphone, la copie en cache de votre enregistrement de compte dans le fichier de paramètres est chiffrée en AES/GCM sous une clé créée et détenue dans l'Android Keystore : elle ne peut donc pas être lue à partir d'un fichier de paramètres copié.
Voilà toute la liste, et il vaut la peine d'être précis sur ce qu'elle n'est pas. Ce n'est pas un chiffrement de bout en bout et ce n'est pas du zero knowledge : les données sont lisibles sur le serveur, et le développeur peut les lire. La base des dépenses sur votre téléphone est une base ordinaire, non chiffrée, protégée par le bac à sable applicatif d'Android et par le chiffrement de l'appareil lui-même. L'épinglage de certificat n'est pas utilisé. Si un détail est assez sensible pour que cela compte, la réponse sûre est de ne pas le saisir.
11Le partage d'un véhicule
Vous pouvez donner à une autre personne inscrite l'accès à l'un de vos véhicules, à l'un des trois niveaux : consultation, ajout de dépenses, ou cession de la propriété. Le partage porte sur un véhicule entier. Aucune entrée ne peut en être retenue à part.
- L'invitation est créée à partir d'une adresse e-mail que vous saisissez, et cette adresse est conservée sur notre serveur au sein de l'enregistrement de partage.
- Une invitation en attente déplace déjà des données. Dès l'instant où l'invitation existe, le serveur considère que ce compte a l'accès : le téléphone de cette personne télécharge donc le véhicule et ses entrées à sa prochaine synchronisation, et les conserve. L'application lui masque le véhicule tant qu'elle n'a pas accepté, mais les données sont déjà sur son appareil à ce moment-là.
- Une fois qu'elle a accepté, cette personne voit la fiche du véhicule, chaque dépense et chaque rappel qui y sont rattachés, y compris les entrées faites par les autres participants, ainsi que vos catégories de dépenses.
- Une entrée cochée Exclure des statistiques n'est pas une entrée privée. Elle est conservée et synchronisée comme n'importe quelle autre, elle est visible par toutes les personnes avec qui le véhicule est partagé, et elle figure dans l'export CSV.
- Révoquer l'accès retire immédiatement le véhicule de l'application de l'autre personne et l'empêche de modifier quoi que ce soit de plus. Cela n'atteint pas ce que son téléphone a déjà téléchargé, et l'enregistrement de partage lui-même reste sur notre serveur, marqué comme supprimé.
- Le transfert de propriété est définitif et ne peut pas être annulé. Le code PIN qui le confirme est conservé en clair sur notre serveur et comparé sans tenir compte de la casse : voyez-le comme une poignée de main, pas comme un mot de passe.
12La sauvegarde de l'appareil
Depuis la version 5.0.0, l'application se retire du dispositif de sauvegarde d'Android : la sauvegarde en ligne vers votre compte Google comme le transfert d'appareil à appareil sont désactivés pour chaque partie des données de l'application. Les versions jusqu'à 4.1.0 incluse ne s'en retiraient pas : si vous utilisez l'application depuis un certain temps, une copie de sa base de données locale et de ses paramètres peut donc déjà se trouver dans une sauvegarde Google. Cette copie est dans votre compte Google et non dans le nôtre, et elle se supprime de la façon dont Google vous permet de supprimer les sauvegardes d'applications. Les outils de transfert conçus par les fabricants de téléphones fonctionnent en dehors du dispositif de sauvegarde d'Android et ne sont pas couverts par ce réglage.
13Combien de temps c'est conservé, et la suppression
Les données restent sur le serveur aussi longtemps que le compte existe. Supprimer un véhicule, une dépense, un rappel, une catégorie ou un enregistrement de partage depuis l'application est une suppression logique sur le serveur : la ligne cesse d'être affichée et cesse d'être synchronisée, mais elle est conservée et marquée comme supprimée.
Il n'y a pas d'écran de suppression de compte dans l'application, et le serveur n'a pas non plus de point d'accès pour cela. La suppression est une demande par e-mail à contacts@mve.suxlv2.space, à laquelle répond la seule personne qui lit cette adresse. Voilà toute la procédure : prétendre le contraire serait plus facile à écrire qu'à tenir.
Concrètement :
- Supprimer depuis l'application : l'entrée quitte votre application et celle des personnes avec qui vous partagez, et elle est conservée sur le serveur, marquée comme supprimée.
- Se déconnecter : rien n'est supprimé nulle part. Les entrées encore en file d'attente d'envoi sont perdues si vous vous déconnectez avant qu'elles ne partent, et l'application vous en avertit au préalable.
- Désinstaller : la copie locale s'en va. Se reconnecter ramène ce que détient le serveur, y compris les limites mensuelles et les modèles de dépense si Premium les y avait enregistrés ; tout ce qui n'a jamais atteint le serveur est perdu.
- Supprimer le compte et ses données côté serveur : écrivez à contacts@mve.suxlv2.space.
14Vos droits
Vous pouvez demander ce qui est conservé à votre sujet, demander une rectification, demander une copie, demander la suppression, ou vous opposer à une partie du traitement. Il y a une seule adresse pour tout cela : contacts@mve.suxlv2.space. Écrivez depuis l'adresse sous laquelle le compte est enregistré, car cette adresse est le seul identifiant que nous ayons de vous.
- Accès et copie. L'application exporte un véhicule à la fois en CSV ou en rapport PDF, et le CSV est le plus complet des deux. Pour tout ce que l'export ne couvre pas, faites la demande par e-mail.
- Rectification. La plupart des champs peuvent être corrigés dans l'application elle-même. Là où ils ne le peuvent pas, faites la demande par e-mail.
- Suppression. Par e-mail, comme décrit à la section précédente.
- Opposition. Par e-mail, y compris l'opposition à ce que votre véhicule figure dans la liste des statistiques mondiales : il n'y a aucun réglage pour cela dans l'application, il faut donc en faire la demande.
15Modifications de cette politique
Lorsque ce document change, la date en haut de la page change avec lui, et cette date est le seul repère : l'application ne vous pousse pas de mises à jour de la politique. Si un changement devait un jour signifier qu'une nouvelle donnée est collectée, il sera décrit ici avec le même détail que tout le reste, avant que ce changement n'atteigne l'application.

