PB BZH Concept PB BZH Concept Applications métier et automatisation
PB BZH Concept - Applications sur mesure, déploiement sécurisé, solutions numériques
← Retour aux réalisations

Étude de cas · Licensing · Sécurité logicielle · WPF

PB BZH License Generator WPF

Application Windows développée en C# / .NET 10 pour générer, administrer et signer cryptographiquement des licences logicielles à partir d’une interface WPF moderne.

C# .NET 10 WPF RSA JSON PEM Licensing Obfuscation ILSpy

Présentation

Moderniser un générateur de licences tout en renforçant son architecture

PB BZH License Generator WPF est une application Windows conçue pour générer et administrer les licences logicielles utilisées par plusieurs applications PB BZH Concept.

Le projet reprend le cœur métier d’un générateur de licences existant et le transpose dans une interface WPF moderne. Chaque licence peut regrouper les informations du produit, du client, du site, de la machine, les périodes de validité et de maintenance ainsi que les fonctionnalités autorisées.

Une attention particulière a également été portée à la séparation entre l’interface utilisateur, le moteur de licensing et les composants sensibles liés à la signature cryptographique et à la protection du code .NET.

Fonctionnalités

Générer et administrer les licences depuis une interface unique

L’application centralise les informations nécessaires à la création des licences et les opérations associées à leur signature et à leur réutilisation.

01

Génération de licences

Création de licences associées à un produit, un client, un site, une machine et des périodes de validité définies.

02

Signature RSA

Signature numérique du contenu des licences afin de permettre aux applications clientes d’en vérifier l’authenticité.

03

Liaison à une machine

Possibilité d’associer une licence à une empreinte machine pour limiter son utilisation à un poste déterminé.

04

Validité et maintenance

Gestion indépendante de la durée de validité de la licence et de la période de maintenance, avec modes illimités.

05

Profils JSON

Enregistrement et rechargement de profils pour préparer rapidement les licences destinées aux différents produits.

06

Import de clé privée

Chargement d’une clé privée au format PEM utilisée par le générateur pour produire les signatures cryptographiques.

07

Fonctionnalités autorisées

Intégration dans la licence de la liste des fonctions ou modules que l’application cliente est autorisée à activer.

08

Thèmes clair / sombre

Interface WPF personnalisable avec deux apparences sélectionnables depuis le menu Options.

Chaîne de génération

De la configuration du client jusqu’à la licence signée

La génération suit une chaîne simple et contrôlée : préparation des données, sérialisation, signature et production du fichier de licence.

01 Profil Produit et client
02 Paramètres Validité et maintenance
03 Machine Empreinte du poste
04 Licence Données JSON
05 Signature Clé privée RSA
06 Distribution Fichier .lic signé

Architecture

Séparer l’interface du moteur de licensing

Le découpage du projet limite les dépendances entre l’interface WPF, les règles métier et les composants sensibles de signature.

Interface utilisateur WPF / XAML Saisie, profils, thèmes et génération
Logique métier Licensing Core Modèles, règles et préparation des licences
Sérialisation JSON Données de licence structurées
Cryptographie RSA / PEM Signature et vérification d’authenticité

Cryptographie

Garantir l’intégrité et l’authenticité des licences générées

La licence contient des données structurées et une signature cryptographique permettant à l’application cliente de vérifier qu’elles n’ont pas été altérées.

Données métier Licence Produit, client, machine, dates et fonctionnalités
Représentation JSON Structure déterministe des informations
Génération Clé privée RSA Calcul de la signature numérique
Application cliente Clé publique Vérification de la licence sans exposer la clé privée

Protection du logiciel

Réduire l’exposition du code sensible

Le projet ne se limite pas à la génération des licences : un travail spécifique a été mené sur la protection des assemblies .NET distribués.

01

Réduction de la surface publique

Limitation de l’exposition des classes et membres afin de ne publier que les éléments réellement nécessaires au fonctionnement.

02

Obfuscation .NET

Durcissement des bibliothèques Core et WPF afin de rendre l’analyse statique du code distribué plus difficile.

03

Contrôle avec ILSpy

Vérification concrète du résultat par analyse du code décompilé, tout en préservant le fonctionnement XAML / BAML de WPF.

Personnalisation

Une interface disponible en thème sombre ou clair

Le thème peut être sélectionné depuis le menu Options afin d’adapter l’interface à l’environnement de travail et aux préférences de l’utilisateur.

Le mode sombre constitue l’apparence principale du produit, tandis que le thème clair conserve exactement les mêmes fonctions et la même organisation visuelle.

Technologies

Environnement technique

Le projet associe développement WPF, cryptographie, sérialisation, gestion des clés et techniques de protection des assemblies .NET.

Langage C#
Plateforme .NET 10
Interface WPF / XAML
Architecture Core métier séparé de l’interface
Format de licence JSON
Cryptographie RSA
Gestion des clés PEM
Liaison poste Machine Hash
Configuration Profils JSON
Protection .NET Obfuscation
Analyse des assemblies ILSpy
Personnalisation Thèmes clair / sombre
Environnement Visual Studio / Git

Résultat

Un système de licensing réutilisable pour plusieurs applications

PB BZH License Generator WPF constitue un point central pour préparer, signer et administrer les licences de plusieurs logiciels PB BZH Concept.

La séparation entre l’interface WPF, le moteur de licensing et la cryptographie permet de réutiliser la même logique dans différentes applications clientes. Le travail sur la signature RSA, la gestion des clés et le durcissement du code complète l’aspect fonctionnel par une démarche orientée sécurité et protection du logiciel.

Un besoin similaire ?

Vous avez besoin d’un système de licence, d’un outil Windows ou d’un composant .NET sécurisé ?

Je peux étudier l’architecture existante, les règles de licensing, la gestion des clés et les contraintes de déploiement afin de proposer une solution adaptée.