FORUM D’ENTRAIDE INFORMATIQUE (FEI)
Site d’assistance et de sécurité informatique

Entraide pour le programmation en général (tous langages).
Règles du forum : Entraide concernant la programmation informatique en général, tous langages : recherche ou correction d'un code ou d'une fonction, aide à la réalisation d'un projet...
Pour la programmation web (HTML, CSS, PHP, MySQL...), il est conseillé de s'orienter dans le forum Webmastering.
Merci de lire et de respecter la charte générale du forum.
  • Avatar du membre
  • Avatar du membre
Avatar du membre
par Nexi.
#111682
Bonjour à tous et à toutes,

Aujourd'hui, réunion au travail pour mon nouveau projet en tant qu'apprenti dans l'entreprise.
Après avoir développer leur site web vitrine, l'entreprise souhaite rendre ses clients plus autonome, je m'explique :
L'entreprise travaille avec des revendeurs qui s'occupent de revendre ses produits. Ces produits nécessitent des licences pour fonctionner, or nous sommes les seuls à pouvoir les générer : nous générons donc des licences selon les demandes du revendeur (elles-mêmes commandées par les clients).
Le but est de pouvoir commander des licences les jours OFF (jour de congés, jour fériés etc..) sans intervention manuelle d'un membre de l'équipe de la société.

Le projet est le suivant :
- Développer 2 logiciel : 1 pour le revendeur et 1 pour le client

Le logiciel du revendeur doit pouvoir créé un compte client sur notre serveur (fournisseur OVH) et attribuer un nombre de licence aux clients (exemple: le client X a commandé 30 licences)

Le logiciel du client doit pouvoir accéder à son compte (par les identifiants données par notre revendeur) et ainsi récupérer ses licences. Lorsque ce client demande une licence, un programme s’exécute sur le serveur afin de générer une licence (ainsi on décrémente un compteur qui indique qui ne lui reste plus que 29 licences).

Je suis en licence Pro développement, et je ne suis vraiment pas réseau ! Je vous serez reconnaissant de m'orienter vers les pistes à creuser :
- Sécurisation client/serveur ?
- Comment mettre en place une telle BDD ?
- Quelle langage utiliser ?
- Comment exécuter un programme sur le serveur sans que le client puisse récupérer le script en reverse engineering (A ce moment la, il peut se générer autant de licence qu'il veut) ?

Merci d'avoir pris le temps de m'avoir lu, j'ai juste besoin d'être dirigé, je saurais je pense me renseigner pour approfondir, mais disons que je ne sais pas par où commencer !

Nexi.
#113966
Bonjour,

Le langage utilisé a peu d'importance, je te dirai d'utiliser celui avec lequel tu es à l'aise.
Pour la sécurisation client/serveur, il faut juste s'appliquer un peu dans le code et prévoir une connexion httpS.
Cela n'a rien de sorcier. Dans la majorité des langages modernes, il existe nativement des bibliothèques qui savent ouvrir une socket sécurisés. Le protocole HTTP est très simple. Je t'invite à consulter les RFC sur le sujet.

Si le logiciel client est connecté en permanence, tu peux stocker les clés de licences dans ta base de données et controller que la clé existe bien au moment ou le client l'entre.
Avatar du membre
par Nexi
#117139
Bonjour, et merci de t'être intéressé à mon sujet.

Le projet s'est précisé :
- Application client riche : application installée sur le poste client et dialogue avec un serveur distant
- Un algo de génération de licence sur le sevreur distant
- L'application est développée en Java

En fait, pour sécuriser cette génération de licence, le client aura un "dongle" qui contient le nombre de licence auquel il aura droit. Ce compteur devra être décrémenté lorsqu'une licence est commandée via l'application.
En outre le client, pour générer sa licence, devra rentrer un numéro de série fournit par son fournisseur.

Pour résumé :
- Une application client qui nécessite : un numéro de série et un dongle branché.
- Appuie sur un bouton "Générer licence" de la part du client.
- Connexion au serveur, génération de la licence, envoie sur le poste client.
- Décrémentation du compteur du dongle.
- Ecriture dans la BDD de la réussite de la transaction.

Mes questions :

1) Comment s'assurer que la licence arrive à bon port ? (Comment assurer son intégrité, pas que le client mente et dise "Il y a eu un problème de connexion je n'ai pas eu ma licence"). En sécurisant avec un CRC, un checksum ?

2) Quel protocole pour la connexion application client serveur ? HTTPS ? RPC?

Merci !
#130963
Image Bonjour,

Ce sujet n'a pas reçu de réponse de l'auteur depuis plus de 15 jours. Il est donc considéré comme archivé.
La prochaine fois, merci de nous tenir au courant de l'évolution de votre problème, ou de faire un UP régulièrement.

Ce sujet est verrouillé, si vous souhaitez le reprendre ou signaler qu'il est résolu, merci de contacter par message privé un membre de l'équipe de modération du forum.

À bientôt sur FEI !
bachelorarbeit

Hola an alle. Ich bin begeistert von der Zusammena[…]

Bonsoir Nous allons procéder à un[…]

Cadeaux High-tech

Bien joué :mdr:

Salut ! Malheureusement il n'y a pas de vraie solu[…]