IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Verrouillage d'une application par une licence


Sujet :

Java

  1. #21
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Cela dépend entièrement de où tu veux la stocker, bien sûr -_-°.
    Je compte stocker dans le répertoire du projet à moins que je trouve une méthode de lire le fichier stocker sur le serveur.
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  2. #22
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Dans un fichier tout simple, donc.
    Eh bien, pour lire/écrire du binaire, c'est InputStream / OutputStream. Dans un fichier, plus précisément FileInputStream / FileOutputStream. S'il est sur le serveur, ce n'est pas un fichier local, donc ce ne sera pas avec les FileTruc. Tout dépendra du protocole utilisé pour dialoguer avec le serveur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #23
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Jimmy_ Voir le message
    Surtout que la plupart du temps il suffira de faire sauter le code qui sert à la vérification, donc même pas besoin de chercher le fichier.
    En supposant qu'il n'y aie qu'un seul code. On peux aller dans des chemins plus ou moins complexe:

    avoir une partie de la clé décodée qui sert de base à certains des calculs que fait le serveur: du coup, il ne suffit pas de supprimer les check, il faut simuler tout le retour de décodage. Avoir le décodage non pas dans une méthode, mais via un ou plusieurs bout de code copié/collé partout dans le code. Du coup pour faire sauter le décodage faut aller trouver tous les endroit dans le code où t'as fait ce putain de copier/coller, probablement en le mélangeant avec du code buisness. Mais ce sera une chierie pour toi à maintenir.

    Si le serveur a une connexion internet tu pourrais rajouter du code qui, occasionellement, se connecte à un serveur central puis te signaler qu'un serveur tourne avec ta clé.

    Maintenant, bien qu'il ne faille pas donner la solution tout cuite aux pirate, si ton logiciel doit tourner dans une entreprise et qu'il sert à son buisness, l'entreprise n'ira pas courir le risque, en général, de reposer sur une application qui peut pêter demain à cause du crack. Le risque de piratage est plus faible. On trouve sans problème des cracks pour la pluspart des produits microsoft. Et pourtant, les entreprises achetent toujours autant de licence sharepoint ou sqlserver. Le jeu n'en vaut pas la chandelle. Pour économiser 50.000 euros de licence, risque de perdre des centaines de milliers d'euros en données perdues et jours de chomage le jour où ça pêtera....

  4. #24
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par junior222 Voir le message
    Pourquoi serait-elle facile à contourner? J'aimerais tout de même continuer avec mon approche pouvez-vous m'aider?
    Il suffit d'utiliser un outil comme JAD et de "décompiler" les classes.
    Ensuite, tu n'as plus qu'à supprimer le bout de code qui fait le test de licence ou l'appelle et tu as "déplombé" l'application.
    Bref, c'est très facile.
    La solution d'un serveur est de loin la meilleure (typiquement une architecture client/serveur), le client étant fait pour afficher les résultats uniquement. L'inconvénient étant d'obliger le client d'avoir une connexion.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #25
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Disons que c'est un peu comme la guerre.
    Il y a des armes de base: la copie pure et dure de ton programme pour pas payer
    Il y a les gilets pare-balle: une licence et une simple vérification de sa date
    Il y a les armes lourdes, contre lesquels le gilet ne sert à rien: supprimer le check (décompilation ou encore plus facile maintenant, utiliser l'aop pour faire de l'injection de methode), fabriquer une fausse licence
    Il y a donc les véhicule blindés: verrouiller la licence avec une clé cryptographique et planquer le code, avec des obfuscateurs par exemple
    Il y a les armes anti-tank: remplacer la clé cryptographique, décompiler le code en assembleur ou avec des noms de variables obscon et recompiler quand même
    Il y a des contre mesures passives aux missiles anti tanks: Multiplier les nombre de vérifications dans le code, ne pas tout centraliser dans une classe, utiliser la sortie cryptographique dans des calculs du programmes, rajouter des tests supplémentaire pour s'assurer que les classes n'ont pas été modifiées, refuser aléatoirement les fausses clés pour ne pas pouvoir savoir si on a réussi du premier coup mais plutot avoir un truc qui crashe après 2 semaines, ...
    Il y a les missiles anti tanks à double charge pour contrer les contre mesures: ...
    Il y a les contre mesures actives: ....
    ....

    C'est une escalade sans fin. Le tout est d'avoir une idée de
    Toi tu es prêt à aller jusque où?
    L'adversaire veux bien aller jusqu'où? On ne protège pas de la même manière le dernier photoshop piraté à des millions d'exemplaires qu'on ne protège la dernière version de github enterprise qui n'intéresse que quelques milliers de clients à travers le monde

    Ce n'est pas parce que la protection absolue n'existe pas qu'il est inutile de mettre un minimum de protection. A toi de voir ce qui est faisable, d'utiliser ton imagination. Le b-a-ba je dirais, c'est au minimum:
    De décoder la licence avec une clé publique pour vérifier son contenu
    De garder bien au chaud chez toi la clé privée
    D'éviter qu'il soit possible de facilement remplacer la clé publique dans ton programme

  6. #26
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Ok merci pour vos reponses. Je représsisse mes attentes mon problèmes ce n'est pas que craigne que quelqu'un puyisse copier mon logiciel d'une entreprise AZ pour une entreprise B car les états portent le nom de l'entreprise de plus l'application ne sert à rien sans le serveur. Je veux bien continuer avec mon approche qui vas donc stocker le fichier de licence sur le serveur et également la clé pour décrypter. maintenant comment les lire et avec quel protocole et comment faire? voilà à peu près mes préaucupations.
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  7. #27
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Comment les lire: comme n'importe quel fichier
    Comment la décrypter: Tu peux trouver pas mal de documentation sur ce forum à propos de la cryptographie assymétrique. Java possède tout ce qu'il faut, faut juste passer les bon paramètres.

  8. #28
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Il suffit d'utiliser un outil comme JAD et de "décompiler" les classes.
    Ensuite, tu n'as plus qu'à supprimer le bout de code qui fait le test de licence ou l'appelle et tu as "déplombé" l'application.
    Bref, c'est très facile.
    La solution d'un serveur est de loin la meilleure (typiquement une architecture client/serveur), le client étant fait pour afficher les résultats uniquement. L'inconvénient étant d'obliger le client d'avoir une connexion.
    De auel connexion parlez-ous?
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  9. #29
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Comment les lire: comme n'importe quel fichier
    Comment la décrypter: Tu peux trouver pas mal de documentation sur ce forum à propos de la cryptographie assymétrique. Java possède tout ce qu'il faut, faut juste passer les bon paramètres.
    apparament ce n'est pas le meme procédé puisque le fichier est sur une machine distante
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  10. #30
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ben une connexion internet entre l'application déployée chez le client et un serveur de licences central dans ta société.

  11. #31
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    ben une connexion internet entre l'application déployée chez le client et un serveur de licences central dans ta société.
    Non en l'occurence on ne sait pas bien compris. Le sereur est dans la société il contient la BD de l'application et j'aimerais placer sur cette machine le fichier de licence et la clé de décryptage
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  12. #32
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par junior222 Voir le message
    Non en l'occurence on ne sait pas bien compris. Le sereur est dans la société il contient la BD de l'application et j'aimerais placer sur cette machine le fichier de licence et la clé de décryptage
    Oui on a bien compris, tu ne part pas sur l'option d'un serveur décentraliser qui gère les licences et fait un travail utile. Je crois que c'est toi qui n'a pas bien compris. T'as pas besoin d'un serveur distant nécessairement pour vérifier la licence et gérer la clé cryptographique. L'option du serveur distant, c'était une solution qui permettait d'éviter le crack. J'ai bien compris, on ne part pas dans cette direction. Donc maintenant, qu'est-ce qui te coince?

  13. #33
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Bon je m'explique un peut mieux je mets la clé sur un sereur distant pour ne pas l'aoir sur tous les postes clients idem pour la clé de décryptge. Ce que je nrrie pas à faire c'est le procédé pour lire un fichier sur une machine distante
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  14. #34
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par junior222 Voir le message
    Bon je m'explique un peut mieux je mets la clé sur un sereur distant pour ne pas l'aoir sur tous les postes clients idem pour la clé de décryptge. Ce que je nrrie pas à faire c'est le procédé pour lire un fichier sur une machine distante
    En dehors de ta problématique et de ton projet actuel, quels sont les protocoles disponibles entre le serveur distant et les postes clients ? Samba ? HTTP ? Mail ? SSH ? FTP ? Pigeon voyageur ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  15. #35
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    En dehors de ta problématique et de ton projet actuel, quels sont les protocoles disponibles entre le serveur distant et les postes clients ? Samba ? HTTP ? Mail ? SSH ? FTP ? Pigeon voyageur ?
    Aucun de tous sa on est obligé dinstaller un de ces protocoles? si oui je peux installer un sereur web
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  16. #36
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Non mais, prenons l'état des lieux et faisons avec.


    Tu as des postes client, et ton application est une application desktop sur le poste client? Si oui tu met la licence sur le poste client (dans un dossier que tu choisi), tu inclue la clé publique à ton programme, tu fais tes checks dans le programme après avoir décodé la licence avec la clé publique. Pas besoin de serveur pour tout ça.

  17. #37
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Non mais, prenons l'état des lieux et faisons avec.


    Tu as des postes client, et ton application est une application desktop sur le poste client? Si oui tu met la licence sur le poste client (dans un dossier que tu choisi), tu inclue la clé publique à ton programme, tu fais tes checks dans le programme après avoir décodé la licence avec la clé publique. Pas besoin de serveur pour tout ça.
    Je eux éiter à placer la clé dans tous les postes clients c'est pour sa que je eux mettre sa dans une machine distante et les lirent quand besoin est
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  18. #38
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par junior222 Voir le message
    Je eux éiter à placer la clé dans tous les postes clients c'est pour sa que je eux mettre sa dans une machine distante et les lirent quand besoin est
    Il n'y a pas de magie : en dehors des problématiques de ton programme, le poste client doit pouvoir contacter le serveur.
    Sont-ils connectés en réseaux ?
    Si aucun programme serveur ne tourne sur la machine serveur, alors tu dois installer un programme serveur. Lequel ? A toi de choisir. Peut-être FTP par exemple ?
    Ensuite ton programme doit être capable de faire une requête sur le programme serveur de la machine serveur. En Java, le protocole FTP est directement géré par l'API standard.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  19. #39
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Il n'y a pas de magie : en dehors des problématiques de ton programme, le poste client doit pouvoir contacter le serveur.
    Sont-ils connectés en réseaux ?
    Si aucun programme serveur ne tourne sur la machine serveur, alors tu dois installer un programme serveur. Lequel ? A toi de choisir. Peut-être FTP par exemple ?
    Ensuite ton programme doit être capable de faire une requête sur le programme serveur de la machine serveur. En Java, le protocole FTP est directement géré par l'API standard.
    Eidement que les clients sont en réseau aec le sereur puisque c'est chez lui qu'il y a la BD de l'application. Maintenant je comprends que je dois installer un sereur ftp pour lecture des dis fichiers après son installation comment je procèede pour lire ces fichiers?
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  20. #40
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Bon, va falloir clarifier franchement. Tu veux protéger quoi contre la copie?

    L'application que tu déploie sur les postes clients?
    Le serveur que tu installe chez le client?
    Les deux?

    Aussi, corrige cette lettre "v" qui ne marche plus sur ton clavier, tes messages sont très durs à lire

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [XL-2007] Lancement d'une application par une macro vba
    Par rijks dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/12/2014, 09h12
  2. Réponses: 4
    Dernier message: 31/10/2007, 20h27
  3. masquer une partie d'une vidéo par une banniere
    Par lezabour dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2006, 16h47
  4. Réponses: 11
    Dernier message: 05/10/2006, 13h20
  5. [c#] Envoyer une capture d'une application par mail
    Par nesquik dans le forum Windows Forms
    Réponses: 1
    Dernier message: 04/07/2006, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo