Résumé :

Cet article établit un certain nombre de façons de protéger un logiciel installé en local, et décrit la façon dont nous avons mis au point notre serveur de licences.

Contexte :

Notre client distribue un logiciel. Peut-être est-ce votre cas ?

Ici, il s'agit d'un logiciel de traitement de photos qui fonctionne sur PC et permet de créer des photos d'identité conformes aux souhaits de l'administration.

Mais d'une manière plus générale, on peut avoir besoin de distribuer un logiciel qui s'installe localement sur des ordinateurs PC, MAC...

Voire un logiciel qui s'installe sur des tablettes, smartphones, sur des Box, sur des machines-outils, des cartes Raspberry-Pi, etc.

Quelles sont les solutions possibles pour protéger le logiciel ?

  1. Mécanisme de licence inclus au logiciel

    • Principe : il faut un algorithme de production de clé (qui produira des joyeusetés comme GHVAG-QZLR-PPKCF-RFWUU-ZHRA-BY4M) ; et un algorithme de vérification de clé
    • Avantages : peu complexe à réaliser et à distribuer
    • Inconvénients : facile à copier, il suffit notamment de disposer d'une clé valide pour pouvoir la dupliquer.
  2. Mécanisme de licence inclus au logiciel avec un lien vers le matériel

    • Principe : il faut un algorithme qui produit une clé en utilisant pour point de départ un élément fixe de la configuration du client (par exemple l'adresse MAC de la carte réseau)
    • Avantages : assez peu complexe à réaliser et à distribuer
    • Inconvénients : génère des incidents et un besoin de support ; typiquement si l'on utilise l'adresse MAC on verra rapidement que celle-ci n'est pas la référence fiable que l'on aurait voulu !
  3. Mécanisme de type dongle vérifié par le logiciel

    • Principe : on achète un dispositif se branchant sur l'USB de la machine, et le logiciel vérifie sa présence
    • Avantages : pas de dongle, pas de logiciel = un bon niveau de sécurité
    • Inconvénients : entraîne un coût d'acquisition, entraîne une dépendance envers un dispositif physique (risques liés à une mauvais contact etc, introduit une dépendance envers un fournisseur)
  4. Serveur de licences accessible par Internet

    • Principe : une clé de licence est attribuée à chaque client, à chaque poste utilisant le logiciel ; le logiciel déclenche d'une façon régulière une connexion à un serveur Internet qui vérifie la validité de la licence
    • Avantages : cela permet des licences à durée déterminée, renouvelables par période de temps ; cela permet de révoquer la licence de clients mauvais payeurs ; cela permet de faire des licences plus souples par exemple en fonction du nombre d'utilisations, du nombre d'unités produites, etc. La qualité de protection est bonne, le maintien de cette connexion réseau tend à faciliter le maintien du lien avec le client.
    • Inconvénients : un accès Internet est nécessaire, au moins de temps à autre... à la première connexion il faut gérer d'une façon ou d'une autre la création de la clé de licence ; la complexité de réalisation est plus grande.

Notre choix :

  • Nous avons choisi de mettre en oeuvre un serveur de licences sur mesure.
  • Ce serveur doit être accédé une fois par mois par le logiciel client, avec avertissement puis arrêt du logiciel si l'accès au serveur ne fonctionne pas plusieurs fois de suite.
  • Le serveur gère une table de licences (commerciales, ou d'essai) et une table des clients ; il permet à un administrateur de créer les licences, les clients étant créés automatiquement par interface.
  • Le serveur gère également un journal de connexion au logiciel, permettant ainsi de monitorer l'usage de celui-ci.

En savoir plus :

  • Nous aurons plaisir à vous fournir plus d'informations si le sujet vous intéresse. Prenez contact !
Exchanging money against certificate

Les modes de protection d'un logiciel local

Résumé :

Cet article établit un certain nombre de façons de protéger un logiciel installé en local, et décrit la façon dont nous avons mis au point un serveur de licences.

Contexte :

Notre client distribue un logiciel. Peut-être est-ce votre cas ?

Ici, il s'agit d'un logiciel de traitement de photos qui fonctionne sur PC et permet de créer des photos d'identité conformes aux souhaits de l'administration.

Mais d'une manière plus générale, on peut avoir besoin de distribuer un logiciel qui s'installe localement sur des ordinateurs PC, MAC...

Voire un logiciel qui s'installe sur des tablettes, smartphones, sur des Box, sur des machines-outils, des cartes Raspberry-Pi, etc.

Quelles sont les solutions possibles pour protéger le logiciel ?

  1. Mécanisme de licence inclus au logiciel

    • Principe : il faut un algorithme de production de clé (qui produira des joyeusetés comme GHVAG-QZLR-PPKCF-RFWUU-ZHRA-BY4M) ; et un algorithme de vérification de clé
    • Avantages : peu complexe à réaliser et à distribuer
    • Inconvénients : facile à copier, il suffit notamment de disposer d'une clé valide pour pouvoir la dupliquer.
  2. Mécanisme de licence inclus au logiciel avec un lien vers le matériel

    • Principe : il faut un algorithme qui produit une clé en utilisant pour point de départ un élément fixe de la configuration du client (par exemple l'adresse MAC de la carte réseau)
    • Avantages : assez peu complexe à réaliser et à distribuer
    • Inconvénients : génère des incidents et un besoin de support ; typiquement si l'on utilise l'adresse MAC on verra rapidement que celle-ci n'est pas la référence fiable que l'on aurait voulu !
  3. Mécanisme de type dongle vérifié par le logiciel

    • Principe : on achète un dispositif se branchant sur l'USB de la machine, et le logiciel vérifie sa présence
    • Avantages : pas de dongle, pas de logiciel = un bon niveau de sécurité
    • Inconvénients : entraîne un coût d'acquisition, entraîne une dépendance envers un dispositif physique (risques liés à une mauvais contact etc, introduit une dépendance envers un fournisseur)
  4. Serveur de licences accessible par Internet

    • Principe : une clé de licence est attribuée à chaque client, à chaque poste utilisant le logiciel ; le logiciel déclenche d'une façon régulière une connexion à un serveur Internet qui vérifie la validité de la licence
    • Avantages : cela permet des licences à durée déterminée, renouvelables par période de temps ; cela permet de révoquer la licence de clients mauvais payeurs ; cela permet de faire des licences plus souples par exemple en fonction du nombre d'utilisations, du nombre d'unités produites, etc. La qualité de protection est bonne, le maintien de cette connexion réseau tend à faciliter le maintien du lien avec le client.
    • Inconvénients : un accès Internet est nécessaire, au moins de temps à autre... à la première connexion il faut gérer d'une façon ou d'une autre la création de la clé de licence ; la complexité de réalisation est plus grande.

Notre choix :

  • Nous avons choisi de mettre en oeuvre un serveur de licences sur mesure.
  • Ce serveur doit être accédé une fois par mois par le logiciel client, avec avertissement puis arrêt du logiciel si l'accès au serveur ne fonctionne pas plusieurs fois de suite.
  • Le serveur gère une table de licences (commerciales, ou d'essai) et une table des clients ; il permet à un administrateur de créer les licences, les clients étant créés automatiquement par interface.
  • Le serveur gère également un journal de connexion au logiciel, permettant ainsi de monitorer l'usage de celui-ci.

En savoir plus :

  • Nous aurons plaisir à vous fournir plus d'informations si le sujet vous intéresse. Prenez contact !
Exchanging money against certificate