Retour à la Knowledge Base
Référence

ip-protection-software

Mars 2026·Version : 1.0 — Mars 2026·Tout logiciel distribué (installeur, binaire, app desktop) par Gentle Designs ou ses clients

Version : 1.0 — Mars 2026 Scope : Tout logiciel distribué (installeur, binaire, app desktop) par Gentle Designs ou ses clients Objectif : Guider les décisions de protection de propriété intellectuelle dès la Phase 1 (Concevoir), avant que le code ne soit distribué


Le problème

Quand on distribue un logiciel (installeur, binaire, app desktop), l'utilisateur reçoit une copie complète du code exécutable. Selon la technologie, ce code est plus ou moins facile à reverse-engineer.

Niveau d'exposition par technologie

Technologie Reverse engineering Temps pour un dev motivé Résultat
Python (PyInstaller .pyc) Trivial 30 secondes (uncompyle6, decompyle3) Code source quasi-original, noms de variables inclus
JavaScript (bundle WebView/Electron) Facile 5 minutes (DevTools → Sources) Code lisible même minifié, routes API, structure de données
SQLite (fichier .db local) Trivial Instant (n'importe quel client SQLite) Schéma complet, données, relations
Rust (compilé natif) Difficile Jours/semaines (Ghidra, IDA Pro) Assembleur, peu lisible, noms de variables perdus
Code serveur (API hébergée) Impossible sans accès N/A Le client ne reçoit que les résultats, jamais la logique

Stratégies par niveau

Niveau 1 : Architecture (le plus efficace, coût zéro en vibe coding)

Principe : mettre la logique à valeur dans la couche la plus dure à reverse-engineer.

Stack Stratégie
Tauri (desktop) Déplacer les algorithmes critiques du Python vers des commandes Rust Tauri. Le Python ne garde que le serveur API/CRUD sans valeur propriétaire.
Electron (desktop) Isoler la logique métier dans un addon natif Node (C++/Rust via NAPI)
Web (Next.js) Logique métier dans les Server Components / API Routes / Server Actions — jamais dans le frontend
Mobile (React Native) Logique critique dans un module natif (Swift/Kotlin/Rust via FFI)

Leçon EVQuest : la quasi-totalité de la logique métier (algorithmes d'analyse poker, calcul de stats, heuristiques de catégorisation, DQS) était en Python — décompilable en 30 secondes. La migration de ces algorithmes en commandes Rust Tauri doit se faire AVANT la première distribution payante, pas après. Une fois le code Python dans la nature, l'IP est compromise de manière irréversible.

Niveau 2 : Obfuscation (ralentir, pas empêcher)

Stack Outil Effet Coût
Python Nuitka Compile en binaire natif C — protection solide Temps de build plus long
Python PyArmor Chiffre le bytecode Licence payante
JavaScript Terser (minification) Renomme variables, supprime whitespace Gratuit, inclus dans la plupart des bundlers
JavaScript javascript-obfuscator Aplatit le control flow, chiffre les strings Ralentit l'exécution
SQLite SQLCipher Chiffre la base de données au repos Intégration simple, gestion de clé nécessaire
Rust strip = true + opt-level = 3 dans Cargo.toml Supprime les symboles de debug Déjà fait par défaut en release

Niveau 3 : Legal

  • LICENSE.txt propriétaire dans chaque build distribué
  • CGU interdisant explicitement le reverse engineering (limitable contractuellement même si l'UE autorise par défaut pour interopérabilité)
  • Contrats de prestation Gentle Designs avec clause de propriété intellectuelle claire
  • Marque déposée si le nom du produit a de la valeur

Niveau 4 : Architecture hybride (produits matures)

Pour les produits ambitieux, le pattern le plus robuste :

  • Client léger distribué (UI + communication) — intrinsèquement exposé mais ne contient rien de valeur
  • Logique métier sur serveur (API cloud) — inaccessible
  • Nécessite connexion internet + infrastructure serveur
  • Modèle GTO Wizard, Poker Copilot cloud, etc.

Matrice de décision par type de projet

Type de projet Risque IP Stratégie recommandée
App desktop propriétaire (EVQuest) Élevé Architecture : logique métier en Rust. SQLCipher pour la BDD. Nuitka pour le Python restant.
Outil interne entreprise (AeroForge/SLICK) Moyen Logique critique en Rust, licence restrictive, distribution contrôlée
Site/app web client (Gentle Designs) Faible Logique côté serveur (naturellement protégée), minification frontend standard, contrat IP
Projet open-source N/A Licence MIT/Apache, pas de secret à protéger

Checklist Phase 1 (PRD) — Section IP

À inclure dans chaque PRD de projet distribué :

## Protection de la propriété intellectuelle

### Algorithmes à valeur propriétaire
- [Lister les 2-5 algorithmes/logiques qui font la valeur du produit]

### Couche d'implémentation cible
- [ ] Chaque algorithme listé est assigné à une couche protégée (Rust/natif/serveur)
- [ ] Le Python/JS ne contient que du CRUD et de la plomberie sans valeur propriétaire

### Mesures de protection
- [ ] SQLCipher ou BDD chiffrée si données locales sensibles
- [ ] Licence propriétaire dans le build
- [ ] Obfuscation du frontend (minification minimum)

Rappel vibe coding

Dans un workflow vibe coding, déplacer un algorithme de Python vers Rust via une commande Tauri n'est pas un "gros chantier d'ingénierie" — c'est une tâche Claude Code comme une autre. L'argument "c'est trop complexe à migrer" ne s'applique plus. Seule la décision d'architecture compte : si c'est la bonne cible, y aller.

Dernière mise à jour : mars 2026