Sécurité et confidentialité

Pourquoi la conversion côté client protège votre vie privée

Une promesse de confidentialité que vous pouvez vérifier vous-même vaut mieux qu’une politique de confidentialité qu’il faut croire sur parole. Voici comment vérifier qu’un convertisseur qui tourne dans le navigateur n’envoie jamais votre fichier nulle part, et un état des lieux honnête de ce qui quitte malgré tout la page.

Vérifiez avant d’y croire

Ouvrez les outils de développement de votre navigateur (F12 sous Windows, Cmd, Option et I sur Mac), passez à l’onglet réseau, effacez ce qui y figure déjà, puis convertissez un fichier et observez.

Vous verrez des requêtes. Ce que vous ne verrez pas, c’est votre fichier. Une requête transportant une photo de 8 Mo apparaîtrait comme une requête de 8 Mo, et si vous triez la liste par taille, cela saute aux yeux en une seconde environ. Il n’y a pas d’envoi, parce qu’aucun code ne s’en charge.

Passez ensuite à la version plus stricte du test. Coupez le wifi et convertissez quand même une image. Cela fonctionne toujours, parce qu’ici convertir une image consiste à la dessiner sur un canvas puis à appeler une fonction d’encodage, deux opérations que le navigateur effectue en local, sans passer par le réseau. Certains outils plus lourds téléchargent bel et bien une bibliothèque à la première utilisation, et ceux-là échoueront hors ligne tant que ce fichier n’est pas en cache. La distinction mérite d’être formulée précisément : du code qui descend vers votre machine, ce n’est pas la même chose que votre fichier qui monte. Chaque requête a une URL et un sens, et vous pouvez lire les deux.

Ce que « jamais envoyé » veut dire au niveau du code

Quand vous déposez un fichier sur une page web, le navigateur transmet à la page une référence vers ce fichier, et non son contenu. Le lire produit un tampon qui vit dans la mémoire de cet onglet. Tout ce que fait le convertisseur à partir de là, ce sont des calculs sur ces octets.

Dans un navigateur, rien n’envoie un fichier de lui-même. Les octets ne quittent une page que lorsqu’un code les joint explicitement à une requête réseau ou à l’envoi d’un formulaire. « Nous n’envoyons pas vos fichiers » est donc moins une promesse sur des intentions que la description d’un code qui n’existe pas, et l’intérêt d’un code absent, c’est que son absence s’observe de l’extérieur.

Le résultat revient par le même chemin. Le fichier terminé est gardé en mémoire sous forme de Blob, et le navigateur lui attribue une adresse temporaire qui ne fonctionne que dans cet onglet. Le lien de téléchargement pointe vers votre propre mémoire. Fermer l’onglet, c’est toute la politique de suppression : pas de durée de conservation à lire, pas de promesse que les fichiers sont effacés au bout d’une heure, et pas de système de sauvegarde qui pourrait, en silence, être d’un autre avis.

Pourquoi c’est important pour les fichiers que l’on convertit vraiment

Pensez aux documents qui poussent quelqu’un à chercher un convertisseur. Le scan d’un passeport pour une demande de visa. Des fiches de paie pour un prêt immobilier. Un courrier de l’hôpital. Un contrat signé. La photo d’un relevé bancaire. Le cas ordinaire d’un convertisseur de fichiers, c’est un document que vous n’enverriez pas par e-mail à un inconnu.

L’envoyer en ligne, c’est ajouter un tiers. Même si l’opérateur est soigneux et honnête, vous héritez de son exposition aux fuites de données, de ses sous-traitants, de la durée de conservation de ses sauvegardes, de ses journaux, et de toute procédure judiciaire qui peut le viser dans le pays où le fichier a atterri, quel qu’il soit. Rien de tout cela n’est visible de l’extérieur, et rien ne peut être audité après coup. Pour un service, les données les plus sûres sont celles qu’il n’a jamais reçues.

Ce qui quitte bel et bien la page

Vos fichiers restent où ils sont. D’autres choses, non, et un plaidoyer pour la confidentialité qui passerait cette partie sous silence vaudrait moins que rien.

  • Un outil de mesure d’audience se charge sur chaque page. Il enregistre qu’une conversion a eu lieu sur un outil donné, le nombre de fichiers du lot, leur taille totale en octets et la durée du traitement. Il ne reçoit jamais les noms ni le contenu des fichiers. Votre adresse IP et les informations habituelles du navigateur parviennent au fournisseur de mesure d’audience, comme sur la majeure partie du Web.
  • Des scripts publicitaires se chargent aussi. C’est du code tiers, avec son propre pistage, et que nous soyons francs avec vous sur le trajet de vos fichiers ne le fait pas disparaître.
  • Plusieurs outils téléchargent leurs bibliothèques depuis un CDN public la première fois que vous les utilisez. Le CDN apprend votre adresse IP et la bibliothèque demandée, ce qui donne une assez bonne idée de l’outil que vous avez ouvert. Du fichier, il n’apprend rien.

Si cela vous gêne, bloquez-les. Utilisez un bloqueur de contenu, ou ouvrez une fenêtre de navigation privée où un bloqueur est actif. La conversion fonctionne toujours, car aucun de ces scripts ne se trouve sur le chemin de la conversion. Le vérifier prend la même minute dans l’onglet réseau que tout le reste ici.

Ce que le traitement côté client ne résout pas

S’exécuter dans un onglet n’est pas une garantie de sécurité. C’est une surface d’attaque plus réduite. La page reste du code livré par le réseau, et du code livré par le réseau peut être altéré. Si ce site était compromis et servait du JavaScript malveillant, ce JavaScript s’exécuterait avec exactement le même accès à votre fichier que le convertisseur. Aucune architecture côté client, aussi soignée soit-elle, n’y peut rien.

Ce qui change, c’est à qui vous devez faire confiance, et à quel moment. Avec un service qui reçoit vos fichiers, vous faites confiance à une politique écrite qui décrit ce qu’il advient d’un fichier une fois qu’il vous a quitté, sans aucun moyen de vérifier quoi que ce soit. Avec un service qui fonctionne dans le navigateur, vous faites confiance au code qui s’exécute en ce moment même, et vous pouvez le regarder travailler pendant qu’il tourne. La confiance ne disparaît pas. Elle se déplace vers un endroit sur lequel vous pouvez braquer un outil de développement.

Il y a aussi des limites qui n’ont rien à voir avec la sécurité. Le travail se fait sur votre appareil, donc un vieux téléphone est lent là où un ordinateur portable ne l’est pas. Un onglet a un plafond de mémoire, si bien que les très gros fichiers échouent ici dans des cas où un serveur ayant accès au disque s’en sortirait. Et tout ce qui nécessite un moteur sous licence ou un très gros modèle représente soit un téléchargement conséquent, soit tout simplement une impossibilité. Ce sont de vrais compromis, et c’est le prix à payer pour que le fichier n’aille nulle part.

Si vous ne retenez qu’une chose, retenez le test plutôt que l’argument. L’onglet réseau est là, dans le navigateur que vous avez déjà ouvert. Quand un convertisseur prétend que vos fichiers restent en local, vous pouvez, si c’est faux, le prendre en défaut en moins d’une minute, sur ce site comme sur n’importe quel autre. Faites le test sur l’outil auquel vous alliez confier quelque chose qui compte pour vous.