Mode hors-ligne ElectroCAD : heartbeat, grace period et HWID expliqués
Un logiciel SaaS qui exige une connexion permanente est inutilisable sur chantier. ElectroCAD utilise un système de grace period 14+7 jours, un heartbeat toutes les 5 minutes et un identifiant matériel à 4 composants. Voici comment ça marche en détail.
Le problème des licences SaaS pour les pros du terrain
De nombreux logiciels professionnels modernes utilisent un modèle SaaS : abonnement mensuel, vérification cloud à chaque démarrage. C'est pratique pour l'éditeur (paiement récurrent, anti-piratage), mais c'est catastrophique sur le terrain :
- Pas de réseau sur un chantier en sous-sol
- Internet en panne au bureau pendant 4h
- Déplacement chez un client qui n'a pas de Wi-Fi invité
- Connexion 4G coupée intermittente
- Voyage en train, en avion, à l'étranger sans roaming
Pour un dessinateur électrique en pleine livraison, perdre l'accès à AutoCAD pendant 30 minutes parce que le serveur de licence est inaccessible n'est pas une option.
ElectroCAD résout ce problème avec un cache local DPAPI + grace period extensible.
Le HWID — Hardware ID à 4 composants
Pour identifier de manière unique chaque poste autorisé, ElectroCAD calcule un HWID (Hardware ID) à partir de 4 composants matériels indépendants :
| Composant | Source | Stabilité |
|---|---|---|
| Disk | Numéro de série du disque système (WMI Win32_DiskDrive.SerialNumber) | Élevée — change si remplacement disque |
| Motherboard | Numéro de série carte mère (WMI Win32_BaseBoard.SerialNumber) | Très élevée — ne change qu'avec un nouveau PC |
| Machine | Nom de l'ordinateur (Environment.MachineName) | Moyenne — peut être changée par admin |
| SID Windows | Identifiant utilisateur (WindowsIdentity.GetCurrent().User.Value) | Élevée — propre à chaque utilisateur Windows |
Chacun des 4 composants est hashé en SHA-256 avant d'être envoyé au serveur. Le serveur ne reçoit donc jamais le numéro de série brut de votre matériel — uniquement des empreintes irréversibles.
Le serveur exige que au moins 2 des 4 composants HWID correspondent à ceux enregistrés lors de l'activation. Cette tolérance permet :
- De remplacer un disque dur sans devoir réactiver
- De renommer son ordinateur sans perdre sa licence
- De faire un upgrade matériel partiel
Mais si vous changez à la fois la carte mère ET le disque, le score tombe à 0/4 et la réactivation est requise. C'est volontaire : un nouveau PC = une activation, ce qui empêche le partage de licence.
Le token JWT RS256 — 30 jours de validité
Lors de l'activation, le serveur retourne un token JWT signé en RS256 (RSA + SHA-256). Le token contient :
- L'ID utilisateur
- Le plan (essentiel, pro, ultimate)
- La date d'expiration (30 jours à compter de l'activation)
- Le HWID combiné
- Les produits autorisés
Le client ElectroCAD vérifie la signature du token en local avec la clé publique RSA embarquée dans le plugin. Pas besoin de contacter le serveur à chaque démarrage pour valider — la cryptographie suffit.
Stockage local DPAPI
Le token est stocké localement dans %LOCALAPPDATA%\ElectroCAD\electrocad.lic. Le fichier est chiffré avec DPAPI (Data Protection API de Windows) en mode CurrentUser :
var encrypted = ProtectedData.Protect(
Encoding.UTF8.GetBytes(tokenJson),
optionalEntropy: null,
DataProtectionScope.CurrentUser);
File.WriteAllText(_storagePath,
DPAPI_PREFIX + Convert.ToBase64String(encrypted));
DPAPI utilise les credentials Windows de l'utilisateur courant comme clé de chiffrement. Conséquence : seul cet utilisateur peut déchiffrer le fichier. Si quelqu'un copie le fichier electrocad.lic sur un autre poste, ou même sur le même poste sous un autre compte Windows, il sera incapable de le lire.
Cela rend le partage du fichier de licence techniquement inutile, sans empêcher l'utilisateur légitime de l'utiliser hors ligne.
Le heartbeat toutes les 5 minutes
Une fois ElectroCAD démarré et connecté, un timer envoie un heartbeat au serveur toutes les 5 minutes :
private const int HEARTBEAT_MINUTES = 5;
_heartbeatTimer = new Timer(_ => SendHeartbeatAsync(),
null,
TimeSpan.FromMinutes(HEARTBEAT_MINUTES),
TimeSpan.FromMinutes(HEARTBEAT_MINUTES));
Le heartbeat envoie : version plugin, version AutoCAD, statut courant. Le serveur retourne :
- Confirmation que la licence est toujours valide
- Si elle expire dans < 7 jours : nouveau token JWT renouvelé (30 jours fresh)
- Éventuels événements push (force update, message admin)
Le renouvellement automatique évite à l'utilisateur de devoir s'authentifier manuellement quand son token approche de l'expiration. Tant qu'il se connecte au moins une fois tous les 23 jours, sa licence ne se "fâche" jamais.
La grace period — 14 jours full + 7 jours readonly
C'est ici que le système devient vraiment utilisateur-friendly. Si le heartbeat ne peut pas joindre le serveur (pas de réseau, serveur down, firewall), ElectroCAD ne plante pas. Il entre en mode dégradé :
| Période | Mode | Comportement |
|---|---|---|
| 0 - 14 jours sans connexion | Offline FULL | Toutes les fonctionnalités disponibles. Heartbeat retenté discrètement en arrière-plan. |
| 14 - 21 jours | Readonly | Lecture seule. L'utilisateur peut consulter ses fichiers mais pas dessiner. Avertissement à chaque démarrage. |
| > 21 jours | Expiré | ElectroCAD bloque. Réactivation requise (nécessite connexion). |
Le code de validation grace period :
var daysSince = (DateTime.UtcNow - lastSuccessfulHeartbeat).TotalDays;
if (daysSince <= 14) {
mode = "offline";
IsValid = true;
}
else if (daysSince <= 21) {
mode = "readonly";
IsValid = true;
ShowWarning("Mode lecture seule. Reconnectez-vous d'ici 7 jours.");
}
else {
mode = "expired";
IsValid = false;
}
Pourquoi 21 jours et pas 30 ou 90 ? C'est un équilibre :
- Trop court (ex: 7 jours) → frustrant en cas de vraie déconnexion durable
- Trop long (ex: 90 jours) → permettrait à un utilisateur abusif de partager une licence pendant 3 mois sans payer
21 jours couvre 99% des cas légitimes (vacances, missions terrain, problèmes réseau) tout en gardant l'éditeur protégé.
La commande ECSTATUS
À tout moment, vous pouvez vérifier l'état de votre licence avec :
Command: ECSTATUS
Affiche dans la ligne de commande :
[ECSTATUS] Plan: PRO [ECSTATUS] Statut: ACTIF [ECSTATUS] Mode: full (ou offline / readonly / expired) [ECSTATUS] Token expire dans: 23 jours [ECSTATUS] Dernier heartbeat: il y a 3 minutes
C'est aussi le moyen rapide de diagnostiquer une licence qui semble bloquée ou en mode dégradé.
Que se passe-t-il si vous changez de matériel ?
Trois scénarios courants :
1. Remplacement du disque dur (HWID Disk différent)
3/4 composants restent identiques (motherboard, machine, SID) → score 3/4 → licence valide automatiquement. Aucune action requise.
2. Réinstallation Windows (HWID SID différent)
Si vous gardez votre nom de PC et votre matériel, 3/4 composants restent identiques → licence valide automatiquement.
3. Nouveau PC (HWID quasi-totalement différent)
1/4 ou 0/4 composants identiques → score insuffisant → réactivation requise. Vous devrez vous connecter via ECACTIVATE et l'ancienne machine sera désactivée si vous dépassez votre quota de postes.
Force-deactivate à distance
Depuis votre dashboard ElectroCAD web, vous pouvez forcer la désactivation d'une licence sur un poste distant. Pratique si :
- Un employé quitte l'entreprise et a oublié de désactiver
- Un PC est volé ou hors d'usage
- Vous voulez transférer une licence rapidement
La force-deactivate a un cooldown de 24h pour éviter les abus de ping-pong entre 2 postes.
Conclusion
Le système de licence d'ElectroCAD est conçu pour être strict côté serveur, mais permissif côté utilisateur légitime :
- HWID 4 composants + score ≥ 2/4 : empêche le partage tout en tolérant les changements matériels mineurs
- Token JWT RS256 stocké en DPAPI : sécurité cryptographique sans sacrifice sur l'expérience utilisateur
- Heartbeat 5 min + renouvellement < 7j : reconnexion transparente
- Grace period 14j full + 7j readonly : 3 semaines de tolérance pour les déconnexions imprévues
- 3 transferts par mois : flexibilité pour les utilisateurs nomades
Résultat : vous pouvez utiliser ElectroCAD pendant 3 semaines sans connexion internet, sur un chantier perdu, en avion, ou pendant une panne réseau. C'est ce qu'on attend d'un outil professionnel en 2026.
Une licence souple pour les pros du terrain
ElectroCAD fonctionne 3 semaines hors ligne. Aucune surprise quand vous êtes loin du bureau.
Commencer l'essai gratuit Voir la FAQ complète