Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

clé logicielle

11 réponses
Avatar
Jean-Marie
bonjour

je suis à la recherche d'un mécanisme me permettant
de créer une clé logicielle pour une application ;
je pensais pour cela créer un identifiant unique de la machine
à partir de sa configuration, une sorte de hostid
comme c'est le cas sur unix ; et cette solution serait
suffisante.
pour ce qui est de windows, après une recherche dans les news,
je n'ai pas trouvé de solution satisfaisante
car se servir de l'identifiant du disque est trop contraignant ;
de même le numéro IP n'est pas une information
stable en ce sens que si je me déconnecte du réseau,
l'instruction InetAddress.getLocalHost().getHostAddress()
donne la valeur standard 127.0.0.1 ; si on ajoute à cela
les adresses IP qui ne sont pas fixes, on ne peut rien en tirer !

auriez-vous des pistes pour construire une telle clé ?

merci d'avance

Jean-Marie

10 réponses

1 2
Avatar
Franck
Peut-etre peux-tu utiliser l'adresse MAC de ton poste windows.
Il n'y a pas a ma connaissance de moyen standard de la récupérer mais
tu dois pouvoir te debrouiller avac la commande systeme arp

@+

--
-
Franck
mailto:
Avatar
Jean-Marie
Merci pour l'info mais lorsque mon PC n'est plus connecté au réseau,
la commande "arp -a" affiche :
Aucune entrée ARP trouvée
donc je ne peux pas m'en servir pour créer une clé logicielle

JM

Franck wrote:
Peut-etre peux-tu utiliser l'adresse MAC de ton poste windows.
Il n'y a pas a ma connaissance de moyen standard de la récupérer mais tu
dois pouvoir te debrouiller avac la commande systeme arp

@+



Avatar
Raphael Tagliani
Jean-Marie wrote:
bonjour

je suis à la recherche d'un mécanisme me permettant
de créer une clé logicielle pour une application ;
je pensais pour cela créer un identifiant unique de la machine
à partir de sa configuration, une sorte de hostid
comme c'est le cas sur unix ; et cette solution serait
suffisante.
pour ce qui est de windows, après une recherche dans les news,
je n'ai pas trouvé de solution satisfaisante
car se servir de l'identifiant du disque est trop contraignant ;
de même le numéro IP n'est pas une information
stable en ce sens que si je me déconnecte du réseau,
l'instruction InetAddress.getLocalHost().getHostAddress()
donne la valeur standard 127.0.0.1 ; si on ajoute à cela
les adresses IP qui ne sont pas fixes, on ne peut rien en tirer !

auriez-vous des pistes pour construire une telle clé ?

merci d'avance

Jean-Marie
Vous pourriez simplement écrire une valeur pseudo-aléatoire dans un

fichier de config (en prenant pour seed la valeur de l'horloge du pc).
C'est moins joli que l'adresse MAC, mais plus simple à mettre en place.
Les défauts:
1- Il faut s'assurer que la probabilité d'obtenir 2 fois la même valeur
soit très petite (mais c'est plutôt facile)
2- Avoir les droits en écriture au moins chez le user
3- Si l'ordi est réinstallé, il n'obtiendra pas le même code la seconde
fois.

Avatar
Franck
peut-etre avec ipconfig /all alors,(physical = adresse mac)

@+

--
-
Franck
mailto:
Avatar
Stéphane Rondinaud
Bonjour,
Jean-Marie wrote:
bonjour

je suis à la recherche d'un mécanisme me permettant
de créer une clé logicielle pour une application ;
<snip>

auriez-vous des pistes pour construire une telle clé ?

<ronchonnage mode="penses un peu à tes utilisateurs">

Et pourquoi une telle mesure? Tu fais si peu confiance à tes futurs
utilisateurs? Et as-tu pensé aux administrateurs des postes qui vont
devoir gérer ta clé, en plus de toutes les autres?
</ronchonnage>

Il y a une bonne solution à ton problème:
- tu assignes à ton client un numéro - facile: tu dois sans doute déjà
le faire pour le facturer
- si tu factures ton logiciel au nombre de postes installés, tu
reprends le "hostname" de la machine
- pour épicer un peu, tu récupères la date de modification d'un des
fichiers de ton application - un fichier de configuration, par exemple

Dans ton soft, tu auras harcodé une clef publique, et tu renvoies au
moment de l'enregistrement par ton client les données évoquées ci-dessus
- ou un "hash" - cryptées avec ta clef privée.

Ton application n'aura alors plus qu'à vérifier au lancement qu'elle peut:
- décrypter le message crypté
- que le contenu du message crypté correspond bien aux données

Mais pour avoir régulièrement à souffrir avec des problèmes de licences,
de clefs et autres dongle matériel, tu auras sans doute tout à gagner à
ne pas soupçonner tout de suite tes utilisateurs de vol... ;)

--
Stéphane

Avatar
TestMan
bonjour

je suis à la recherche d'un mécanisme me permettant
de créer une clé logicielle pour une application ;
je pensais pour cela créer un identifiant unique de la machine
à partir de sa configuration, une sorte de hostid
comme c'est le cas sur unix ; et cette solution serait
suffisante.
pour ce qui est de windows, après une recherche dans les news,
je n'ai pas trouvé de solution satisfaisante
car se servir de l'identifiant du disque est trop contraignant ;
de même le numéro IP n'est pas une information
stable en ce sens que si je me déconnecte du réseau,
l'instruction InetAddress.getLocalHost().getHostAddress()
donne la valeur standard 127.0.0.1 ; si on ajoute à cela
les adresses IP qui ne sont pas fixes, on ne peut rien en tirer !

auriez-vous des pistes pour construire une telle clé ?

merci d'avance

Jean-Marie


Bonjour,

En théorie tu devrais pouvoir récupérer l'adresse MAC sur un UUID de
type 1 via son "noeud" :
http://java.sun.com/j2se/1.5.0/docs/api/java/util/UUID.html#node()

Sauf que, je ne vois pas comment génerer un type 1 actuellement avec
cette classe ... reste donc des solutions externes comme :
http://jug.safehaus.org/

Mais reprenont le problème, si tu n'as pas de carte réseau, tu n'auras
pas d'adresse MAC et donc pas de possibilité d'obtenir un identifiant.

Personellement, je trouve que limiter l'utilisation d'un logiciel sur
une machine est pas vraiment une bonne pratique, mais c'est ton choix.

Sache tout de même que quelque soit le moyen de protection il y a
toujours un moyen de le contourner.

A toi de trouver l'équilibre entre "diffusion du logiciel" et
"rétribution de l'auteur"... et à voir les politiques dans ce domaine de
la plus part des éditeurs, l'équilibre n'est pas là ou l'on peut le
penser ;-)
A+
JB

Avatar
Jean-Marie
merci pour l'info ; en fait nous avons été déçu par l'utilisation
d'une clé physique dont le driver ne pose aucun pb sous windows ;
par contre sous linux il faut presque un nouveau driver par version
d'os, ce qui a même fait migrer certains de nos users de linux vers
windows !
on n'est peut-être pas tombé sur le bon fournisseur !
cependant le principe de la clé physique est bien pratique pour
une application spécifique comme la notre qui n'est pas largement diffusée ;

JM


TestMan wrote:

bonjour

je suis à la recherche d'un mécanisme me permettant
de créer une clé logicielle pour une application ;
je pensais pour cela créer un identifiant unique de la machine
à partir de sa configuration, une sorte de hostid
comme c'est le cas sur unix ; et cette solution serait
suffisante.
pour ce qui est de windows, après une recherche dans les news,
je n'ai pas trouvé de solution satisfaisante
car se servir de l'identifiant du disque est trop contraignant ;
de même le numéro IP n'est pas une information
stable en ce sens que si je me déconnecte du réseau,
l'instruction InetAddress.getLocalHost().getHostAddress()
donne la valeur standard 127.0.0.1 ; si on ajoute à cela
les adresses IP qui ne sont pas fixes, on ne peut rien en tirer !

auriez-vous des pistes pour construire une telle clé ?

merci d'avance

Jean-Marie



Bonjour,

En théorie tu devrais pouvoir récupérer l'adresse MAC sur un UUID de
type 1 via son "noeud" :
http://java.sun.com/j2se/1.5.0/docs/api/java/util/UUID.html#node()

Sauf que, je ne vois pas comment génerer un type 1 actuellement avec
cette classe ... reste donc des solutions externes comme :
http://jug.safehaus.org/

Mais reprenont le problème, si tu n'as pas de carte réseau, tu n'auras
pas d'adresse MAC et donc pas de possibilité d'obtenir un identifiant.

Personellement, je trouve que limiter l'utilisation d'un logiciel sur
une machine est pas vraiment une bonne pratique, mais c'est ton choix.

Sache tout de même que quelque soit le moyen de protection il y a
toujours un moyen de le contourner.

A toi de trouver l'équilibre entre "diffusion du logiciel" et
"rétribution de l'auteur"... et à voir les politiques dans ce domaine de
la plus part des éditeurs, l'équilibre n'est pas là ou l'on peut le
penser ;-)
A+
JB



Avatar
Ploc
Jean-Marie wrote:
merci pour l'info ; en fait nous avons été déçu par l'utilisation
d'une clé physique dont le driver ne pose aucun pb sous windows ;
par contre sous linux il faut presque un nouveau driver par version
d'os, ce qui a même fait migrer certains de nos users de linux vers
windows !
on n'est peut-être pas tombé sur le bon fournisseur !
cependant le principe de la clé physique est bien pratique pour
une application spécifique comme la notre qui n'est pas largement
diffusée ;


Vous avez trouve une solution acceptable pour pouvoir diffuser le code
java sans que la decompilation ne pas trop facilement exploitable?
Parce qu'evidemment mettre une cle physique sur un programme trop
facilement modifiable, c'est un peu comme mettre une porte blindee sur
une veranda.

C'est une vrai question (et probablement un peu HS).
Ce n'est pas une question qui s'est posee a moi pour l'instant, mais ca
m'interesse. Je sais qu'il y'a des "brouilleurs"(obfuscateur) de code,
mais sont-ils vraiment efficaces?

Avatar
TestMan
Jean-Marie wrote:
merci pour l'info ; en fait nous avons été déçu par l'utilisation
d'une clé physique dont le driver ne pose aucun pb sous windows ;
par contre sous linux il faut presque un nouveau driver par version
d'os, ce qui a même fait migrer certains de nos users de linux vers
windows !
on n'est peut-être pas tombé sur le bon fournisseur !
cependant le principe de la clé physique est bien pratique pour
une application spécifique comme la notre qui n'est pas largement
diffusée ;


Vous avez trouve une solution acceptable pour pouvoir diffuser le code
java sans que la decompilation ne pas trop facilement exploitable?
Parce qu'evidemment mettre une cle physique sur un programme trop
facilement modifiable, c'est un peu comme mettre une porte blindee sur
une veranda.

C'est une vrai question (et probablement un peu HS).
Ce n'est pas une question qui s'est posee a moi pour l'instant, mais ca
m'interesse. Je sais qu'il y'a des "brouilleurs"(obfuscateur) de code,
mais sont-ils vraiment efficaces?

Jean-Marie wrote:
merci pour l'info ; en fait nous avons été déçu par l'utilisation
d'une clé physique dont le driver ne pose aucun pb sous windows ;
par contre sous linux il faut presque un nouveau driver par version
d'os, ce qui a même fait migrer certains de nos users de linux vers
windows !
on n'est peut-être pas tombé sur le bon fournisseur !
cependant le principe de la clé physique est bien pratique pour
une application spécifique comme la notre qui n'est pas largement
diffusée ;


Vous avez trouve une solution acceptable pour pouvoir diffuser le code
java sans que la decompilation ne pas trop facilement exploitable?
Parce qu'evidemment mettre une cle physique sur un programme trop
facilement modifiable, c'est un peu comme mettre une porte blindee sur
une veranda.

C'est une vrai question (et probablement un peu HS).
Ce n'est pas une question qui s'est posee a moi pour l'instant, mais ca
m'interesse. Je sais qu'il y'a des "brouilleurs"(obfuscateur) de code,
mais sont-ils vraiment efficaces?


Bonjour,

Je rapelle que le problème de la rétro-ingénieurie et la décompilation
sont des problèmes génériques propres à toutes les technologies et
techniques informatiques ...

Et ceux qui pensent que C ou C++ ou toute autre technologie est plus
sure doivent se demander un instant comment il est possible à des
hackers de compredre si rapidement du code assembleur complexe.

"Quoi, obtenir le code de départ n'est pas réservé à Java et .net ? On
m'aurait mentiiiii ?" ;-)

A+

TM


Avatar
Jean-Marie
TestMan wrote:

Jean-Marie wrote:

merci pour l'info ; en fait nous avons été déçu par l'utilisation
d'une clé physique dont le driver ne pose aucun pb sous windows ;
par contre sous linux il faut presque un nouveau driver par version
d'os, ce qui a même fait migrer certains de nos users de linux vers
windows !
on n'est peut-être pas tombé sur le bon fournisseur !
cependant le principe de la clé physique est bien pratique pour
une application spécifique comme la notre qui n'est pas largement
diffusée ;



Vous avez trouve une solution acceptable pour pouvoir diffuser le code
java sans que la decompilation ne pas trop facilement exploitable?
Parce qu'evidemment mettre une cle physique sur un programme trop
facilement modifiable, c'est un peu comme mettre une porte blindee sur
une veranda.

C'est une vrai question (et probablement un peu HS).
Ce n'est pas une question qui s'est posee a moi pour l'instant, mais
ca m'interesse. Je sais qu'il y'a des "brouilleurs"(obfuscateur) de
code, mais sont-ils vraiment efficaces?



Jean-Marie wrote:

merci pour l'info ; en fait nous avons été déçu par l'utilisation
d'une clé physique dont le driver ne pose aucun pb sous windows ;
par contre sous linux il faut presque un nouveau driver par version
d'os, ce qui a même fait migrer certains de nos users de linux vers
windows !
on n'est peut-être pas tombé sur le bon fournisseur !
cependant le principe de la clé physique est bien pratique pour
une application spécifique comme la notre qui n'est pas largement
diffusée ;



Vous avez trouve une solution acceptable pour pouvoir diffuser le code
java sans que la decompilation ne pas trop facilement exploitable?
Parce qu'evidemment mettre une cle physique sur un programme trop
facilement modifiable, c'est un peu comme mettre une porte blindee sur
une veranda.

C'est une vrai question (et probablement un peu HS).
Ce n'est pas une question qui s'est posee a moi pour l'instant, mais
ca m'interesse. Je sais qu'il y'a des "brouilleurs"(obfuscateur) de
code, mais sont-ils vraiment efficaces?



Bonjour,

Je rapelle que le problème de la rétro-ingénieurie et la décompilation
sont des problèmes génériques propres à toutes les technologies et
techniques informatiques ...

Et ceux qui pensent que C ou C++ ou toute autre technologie est plus
sure doivent se demander un instant comment il est possible à des
hackers de compredre si rapidement du code assembleur complexe.

"Quoi, obtenir le code de départ n'est pas réservé à Java et .net ? On
m'aurait mentiiiii ?" ;-)

A+

TM
concernant java je pense que si le JRE peut exécuter un code "brouillé"

c'est qu'il se/le "débrouille" bien !
j'ai fait qq tests avec DJ java Decompiler et les résultats sont
surprenants et dissuadent d'ailleurs de se casser la tête pour chercher
un obfuscateur !

JM



1 2