Sécurité · Transparence réseau
Chaque connexion que cette application peut établir.
Pour les examinateurs sécurité IT, les délégués à la protection des données, les achats — et quiconque veut vérifier la promesse local-first plutôt que de la croire sur parole. Maintenu au rythme du code : quand une version ajoute ou modifie une connexion, cette page change dans la même version.
Dernière vérification contre la v0.6.20 · 10.06.2026
La promesse fondamentale
L'audio des réunions, les transcriptions, les résumés et les empreintes vocales ne quittent jamais l'appareil. La transcription (whisper.cpp), la séparation des intervenants (pyannote/ONNX), l'appariement des voix et les résumés LLM s'exécutent entièrement en local. Le tableau ci-dessous est la liste complète du trafic réseau que l'application peut générer — ce que chaque connexion transporte et comment la couper.
S'applique à la v0.6.20 et ultérieures. Dans les versions antérieures (≤ 0.6.19), le journal réseau n'enregistre pas encore les appels de licence et de parrainage et le mode hors ligne strict ne les bloque pas ; la CSP stricte de la webview et le panneau « Vos données » arrivent aussi avec la v0.6.20.
Comment le vérifier vous-même
- Journal réseau intégré : Réglages → Confidentialité → Journal réseau affiche chaque tentative sortante (horodatage, hôte, objet, autorisée/bloquée) et s'exporte en JSON-lines. Le fichier sous-jacent :
%APPDATA%/<app-id>/network-audit.jsonl. - Le mode hors ligne strict (Réglages → Confidentialité) bloque chaque connexion du tableau avant toute résolution DNS ou ouverture de socket (destinations loopback/LAN exceptées). La télémétrie, qui utilise le transport propre du SDK Sentry, est désactivée d'office par le mode hors ligne à sa propre barrière.
- Ou observez le réseau : lancez Wireshark ou Process Monitor sur le processus de l'application. Mode hors ligne actif — ou simplement aucune fonction cloud configurée — vous ne devriez voir aucun trafic au-delà de la vérification de mise à jour optionnelle.
Connexions
| # | Objet | Destination | Quand | Ce qui est envoyé | Désactivation |
|---|---|---|---|---|---|
| 1 | Vérification + téléchargement des mises à jour | GitHub Releases (dépôt public de versions) | Démarrage de l'app / « Rechercher les mises à jour » manuel | GET HTTP uniquement ; aucune donnée utilisateur. Les métadonnées HTTP habituelles (IP, user agent) parviennent à GitHub. Les mises à jour sont vérifiées par signature ed25519 avant installation. | Le mode hors ligne strict la suspend ; drapeau auto-update par marque |
| 2 | Téléchargement des modèles IA | GitHub (dépôt public de modèles) | Assistant de premier lancement, changement de modèle, réparation — toujours à votre initiative | GET HTTP des fichiers de modèles ; aucune donnée utilisateur | Ne lancez pas de téléchargement ; le mode hors ligne bloque |
| 3 | Activation de licence / heartbeat quotidien / désactivation | API de licence (localtranscript.com) | Seulement si une clé de licence est enregistrée. Les installations activées par domaine (entreprise) et les installations Free n'envoient rien | Clé de licence, empreinte machine (SHA-256 des identifiants matériels — aucun numéro de série en clair), nom de machine, OS, version de l'app, e-mail du compte | N'activez pas en ligne (jeton hors ligne disponible) ; le mode hors ligne strict bloque (délai de grâce de 90 jours) |
| 4 | Programme de parrainage | API de parrainage (localtranscript.com) | Seulement après adhésion explicite au programme | E-mail, code de parrainage, empreinte machine, bit de consentement marketing | N'adhérez pas ; le mode hors ligne strict bloque |
| 5 | Télémétrie de plantage + performance | Sentry, région UE (*.ingest.de.sentry.io) | Opt-in, désactivée par défaut. Seulement dans les builds compilés avec un DSN, seulement après votre consentement (assistant ou Réglages) | Rapports de plantage expurgés + mesures de temps : version de l'app, classe de matériel, piles d'erreurs avec noms d'utilisateur caviardés sur l'appareil. Jamais d'audio, de transcriptions, de noms ni de contenus de fichiers | Désactivée par défaut ; interrupteur dans les Réglages ; le mode hors ligne strict force l'arrêt |
| 6 | Transcription cloud / IA cloud (fournisseurs optionnels) | OpenAI, Anthropic ou Infomaniak (Suisse) — votre choix | Seulement si vous configurez explicitement un fournisseur cloud avec votre propre clé API. Le local est le défaut | Audio des réunions (transcription cloud) ou texte des transcriptions (Actions IA cloud) — vers le fournisseur que vous avez choisi, sous votre propre compte | Ne configurez jamais de fournisseur ; « local » est le défaut ; le mode hors ligne strict bloque |
| 7 | Récupération de calendrier (iCal) | Votre propre URL de calendrier | Seulement si vous configurez une URL de calendrier | GET HTTP du flux iCal | Ne configurez pas ; le mode hors ligne bloque (URL LAN toujours autorisées) |
Ce qui n'a jamais de chemin réseau
Enregistrement, transcription, séparation des intervenants, appariement intervenants/contacts, création d'empreintes vocales, recherche sémantique et résumés LLM locaux — il n'existe aucun chemin de code qui téléverse du contenu de réunion, sauf si vous avez configuré vous-même la connexion n° 6.
La base des réunions (SQLite), les fichiers audio et les empreintes vocales des contacts vivent dans le dossier de données local de l'application (Réglages → Confidentialité → « Vos données » l'affiche et l'ouvre ; « Supprimer toutes les données » l'efface). L'application ne chiffre pas ce dossier elle-même — il est protégé par votre compte utilisateur Windows ; nous recommandons le chiffrement de disque BitLocker.
Application dans le code (pour les examinateurs)
Tout le HTTP du tableau passe par un point de contrôle unique (net_guard) : il écrit la ligne d'audit et, en mode hors ligne strict, rejette les destinations non-LAN avant toute résolution DNS. Exceptions par conception : n° 1 (mise à jour — suspendue par le mode hors ligne au point d'appel) et n° 5 (transport du SDK Sentry — verrouillé à l'initialisation et à l'envoi). La webview s'exécute sous une Content-Security-Policy restrictive : même compromis, le code frontend ne peut pas contacter d'hôtes arbitraires.
Pour les RSSI et les DPO
Minimisation des données par l'architecture : dans la configuration par défaut, le contenu des réunions n'est traité que sur l'appareil — il n'y a aucun sous-traitant cloud à évaluer au sens LPD/RGPD. La reconnaissance des intervenants est une biométrie purement locale : les empreintes vocales sont créées, stockées et comparées sur la machine. Le mode hors ligne strict et le journal d'audit exportable sont conçus comme démonstration pour les appels d'offres — y compris pour les communes et administrations qui veulent un procès-verbal automatique de leurs séances.
Des builds en marque blanche et des installations managées (MSI pour SCCM / Intune / stratégie de groupe) sont disponibles, avec réglages par défaut préconfigurés. Questions, appui AIPD ou pilote : hello@localtranscript.com.
Gratuit pour toujours · sans carte · sans compte