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

Windows Forms Discussion :

Besoins d'un avis pour sécuriser une application


Sujet :

Windows Forms

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut Besoins d'un avis pour sécuriser une application
    Bonjour,
    je développe actuellement une appli win form pour un client et celui souhaiterai qu'elle soit uniquement instalable sur sa machine.
    Est ce que quelqu'un aurait une idee pour pouvoir bloquer l'install sur un pc particulier?
    merci de votre aide

  2. #2
    Membre habitué Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    J'ai une idée, même si je suis pas expert dans le domaine: associé à ton appli un fichier (ex: XML, ou txt) qui contiendrais un mot de passe ou un texte spécifique comme ça il sera le seul à avoir ce fichier.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    c'est pas tres fiable dans le sens ou si une personne mal intentionée veut l'appli copie le fichier et le tour est joué.
    J'opterai plus pour une securité dans la BDR ou basé sur le nom du pc.....

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Pour faire ça il faudrait coder en dur dans l'appli des informations sur la machine cible (adresse MAC ou toute autre info permettant l'identification de la machine)...
    Tu pourrais mettre cette info en ressource de ton programme, et au démarrage du programme tu vérifies si la machine actuelle correspond.
    Mais bon, ça me semble bizarre de vouloir faire une appli qui ne peut tourner que sur une machine donnée... et le jour où ton client change de PC, il faut modifier l'appli

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    oui je suis tout a fait d'accord avec toi, mais je ne vois pas d'autre solution.

  6. #6
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Pour les solutions, tomlev t'en as dejà beaucoup proposées; mais je voudrais souligner un aspect; pourquoi ton client veut-il installer le soft que sur sa machine? et le jour où son pc plante? il devra te rappeler alors! je dis ca parce que notre boulot consiste aussi à dire au client ce qui est bon/mauvais

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    je suis tout a fait d'accord avec toi que de bloquer l'install en fonction de la machine est pas la meilleure solution. Le probleme c'est que je client veut revendre en interne le soft ce qui veut dire qu'il veut controler la possibilité d'install du soft. C'est pourquoi je ne sais pas trop comment securiser l'appli.
    Il faudrait avoir la possibilité de gerer des "numero de license" pour savoir quel service peut installer le soft.

  8. #8
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    oui je vois, juste pour polémiquer un peu
    sinon pour le truc de numéro de licence, tu peux avoir dans ta bdd (par ex) des numeros de licence et dès que le client saisit un bon numero, tu lances le soft et tu vas supprimer ce num de ta base (pour être sur qu'il ne l'installe qu'une fois)

  9. #9
    Membre habitué Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    Pourquoi mettre dans une base plusieurs numéros de licence qui ne serviront qu'à une seule personne? (PC). Un numéro de licence est censé être associé à une entité (personne ou entreprise), donc autant ne mettre qu'une seule licence dans la base qui sera évidemment protégée par mot de passe, qu'il saisira, et tu laisse la licence dans la BD, tu la supprime pas (vu qu'il y en a qu'une !).

    Après, si le PC plante, t'auras perdu le programme installé, la BD, et donc la licence... donc pas trop d'intérêt de mettre une BD pour ça, à moins que la BD soit sur un serveur en RAID5 (comme ça même si le serveur plante, toujours moyen de récupérer la licence!)...bon je vais loin là...

    Perso j'étudierais une autre solution à ton problème, ou je ferais changer d'avis le client en le conseillant! Pourquoi ne pas mettre un mot de passe dans un fichier xml ou autre (que tu crypte), et que seul ton client saura et pourra modifier une fois dans l'appli? A part trouver un super algo de décryptage, je vois pas comment on pourrais utiliser son appli part lui!

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    Ca c'est une super solution !
    j'opte pour celle la
    Merci de votre aide et conseils

  11. #11
    Membre habitué Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    (Petite parenthèse question d'alimenter le topic en informations que d'autres utiliseront peut être:

    Voilà un exemple d'application qui permet de faire des Identifiants Uniques à une seule machine en combinant en une seule Clé, l'ID du CPU (le 1er s'il y en a plusieurs) et l'ID du DD (C: par défaut), ce qui vous donne une code plus qu'unique!

    Voilà le lien avec tuto, et zip téléchargeable: lien

    Attention:
    Lors du formatage, l'ID du DD changerait, donc la clé aussi!

    voilà, juste en parenthèse pour ceux que ça intéresse .)

  12. #12
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    Petite question parce que j'avais utilisé ces deux choses déjà.

    Pour ma part il me semble que le "processorID" n'est pas unique. En effet il correspond à l'identifiant de la famille de processeur. Donc deux processeurs de la même famille auront le même ID. Il semble que l'identifiant unique du processeur est inaccessible par programmation.

    De la même manière "VolumeSerialNumber" n'est pas l'ID unique du disque. En effet ce paramètre peut-être modifier à n'importe quel moment avec fdisk par exemple.

    Pour l'instant, il n'y a que l'adresse MAC de la carte réseau qui soit unique sur le PC. Et encore deux problèmes : il faut que le PC ait une carte réseau et il faut aussi que le réseau soit activé. Si le réseau est désactivé sous windows, la carte est inaccessible...

    J'ai regardé du côté des certificats windows, ça semble intéressant mais j'ai pas encore trouvé un tuto qui corresponde à ce que je souhaiterai faire. Faudra que j'expérimente ce que j'ai trouvé pour voir.

    J'attends vos commentaires.

  13. #13
    Membre habitué Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    Tiens c'est intéressant, merci moldavi, je vais jeter un coup d'œil à ça .

    J'ai trouvé ça sur les librairies MSDN:

    Use the Win32_SystemEnclosure class, and the properties SerialNumber and SMBIOSAssetTag.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" _
        & strComputer & "\root\cimv2")
    Set colSMBIOS = objWMIService.ExecQuery _
        ("Select * from Win32_SystemEnclosure")
    For Each objSMBIOS in colSMBIOS
        Wscript.Echo "Part Number: " & objSMBIOS.PartNumber
        Wscript.Echo "Serial Number: " _
            & objSMBIOS.SerialNumber
        Wscript.Echo "Asset Tag: " _
            & objSMBIOS.SMBIOSAssetTag
    Next

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    non, SystemEnclosure c'est le boitier... ça ne me semble pas un très bon moyen d'identifier la machine

  15. #15
    Membre habitué Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    Sur la forme je suis d'accord, mais sur le fond, vu les propriétés qu'il possède, (propriétés de SystemEnclosure) je doute que ce ne soit pas fiable...

  16. #16
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    A vérifier, mais je pense que ce sera comme avec les familles de processeur, les boitiers auront le même identifiant s'ils sont de la même famille.

  17. #17
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    surement oui; je crois qu'il y a un numéro qui est unique pour chaque machine (le nom m'echappe) mais je sais pas s'il est possible de le récupérer par code

Discussions similaires

  1. Script pour sécuriser une application PHP
    Par Alcius dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 01/07/2012, 01h40
  2. Besoin de votre avis pour acheter une nouvelle carte mère
    Par quaresma dans le forum Composants
    Réponses: 3
    Dernier message: 03/08/2009, 16h15
  3. Réponses: 4
    Dernier message: 23/06/2008, 11h45
  4. Besoin d'experience pour traduire une application
    Par alexthomas dans le forum MFC
    Réponses: 9
    Dernier message: 03/01/2007, 15h36
  5. [VB6]besoin d'aide pour modifier une application
    Par mister perfect dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 19/05/2006, 11h46

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