Vérifier l'identité de l'ordinateur à l'ouverture du fichier [Résolu]

Asythom 9 Messages postés mardi 8 avril 2014Date d'inscription 11 novembre 2014 Dernière intervention - 8 avril 2014 à 12:26 - Dernière réponse : Asythom 9 Messages postés mardi 8 avril 2014Date d'inscription 11 novembre 2014 Dernière intervention
- 28 avril 2014 à 12:36
Bonjour,

J'ai créé pour certains de mes clients un fichier excel et j'aimerais m'assurer qu'il ne pourra pas circuler sans mon autorisation. Je ne suis pas convaincu de pouvoir éviter ce risque en utilisant un système de mot de passe.
Est-il possible de vérifier l'identité de l'ordinateur par l'intermédiaire d'un code VBA dès l'ouverture du fichier ? De cette façon, j'installe moi-même le fichier sur l'ordi de mon client, et je suis sûr qu'il ne sera pas utilisable sur un autre poste.

Un grand merci d'avance pour votre aide.
Afficher la suite 

12 réponses

Répondre au sujet
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 8/04/2014 à 12:41
0
Utile
1
Bonjour,
1) Je commence donc par déplacer ta discussion, ouverte dans le forum général de Visual Basic, vers le sous-forum correspondant à ton langage de développement (à savoir VBA).
2) qu'appelles-tu (exactement) "identité de l'ordinateur" ?
(sois très précis sur ce point). Un PC n'a rien de cela. Il est doté :
- d'un disque dur qui a un nom, un numéro attribué... Il a également un numéro de série matériel.
- d'une carte mère
- de périphériques
Et tu veux appuyer ta protection sur quoi ? (d'invariable, de préférence) ?
Je te rappelle que tu ne "vends" pas une appli à un PC, mais à un acheteur, lequel est susceptible de changer un jour de disque dur, voire carrément de machine.
Ta démarche ne serait donc à peu près légale qu'assortie d'un engagement à assurer la "mutation" en cas de changement (lourd et nécessitant la mise en place d'un service après vente et un "pignon sur rue".


EDIT : j'ajoute que toute "protection" de l'espèce serait "craquée" en moins de deux temps (sauf par un innocent de chez innocent) , s'agissant d'une appli s'appuyant sur Microsoft Office.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Asythom 9 Messages postés mardi 8 avril 2014Date d'inscription 11 novembre 2014 Dernière intervention - 9 avril 2014 à 15:46
Bonjour,

D'abord, merci pour ta réponse, et pour le "ménage" que tu as fait (je ne suis pas très familier avec l'univers des forum).
Mon objectif est de me prémunir contre le risque de voir le fichier circuler sans mon autorisation. Mon idée était donc de créer une macro qui se lancerait au démarrage, et qui vérifierait que le fichier est bien en train d'être exécuter sur un ordinateur connu (c'est moi qui me charge de "l'installer" chez le client). Si non, le fichier se referme (par exemple). J'imagine qu'il peut y avoir plusieurs options : le mieux serait sans doute de "reconnaitre" les références de la carte mère (mais est-ce possible ?). Sinon, le numéro du disque dur, mais ça me semble moins pratique...

Pour répondre à tes points plus contextuels : j'assure un suivi de mes clients (dc pas de pb pour le service après vente), qui sont la plupart du temps des innocents de chez innocent question informatique. J'ai conscience que la protection ne sera pas hyper fiable, mais ce serait mieux que rien. Et surtout, je ne vois pas comment faire autrement car je tiens à conserver un format Excel.

Dernière question, qui peut tout faire tomber à l'eau : si jamais cette macro est réaliste, est-ce qu'il ne suffira d'ouvrir le fichier sans activer les macros pour la détourner et accéder au fichier (ce qui est effectivement accessible aux plus novices des novices, ne serait-ce que par inadvertance) ?
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 9/04/2014 à 16:35
0
Utile
1
Ce n'est pas que la protection ne sera pas "hyper fiable", mais qu'elle n'est, avec VBA/Office, pas du tout fiable.
Tu dis plus haut que tu n'as pas confiance en le mot de passe de VBA (et tu as bien raison).
Mais alors : comment comptes-tu donc protéger l'accès à la macro
qui, à l'ouverture, vérifierait que ton appli tourne bien sur tel PC ?
- si le "voleur" d'appli ne sait pas "casser" la protection par mot de passe, nul besoin d'autre protection.
- si, au contraire il sait (et c'est facile) "casser" la protection par mot de passe, il accèdera à ta macro de "protection complémentaire" et la shuntera purement et simplement en deux temps trois mouvements.
Ne perds donc pas de temps pour rien.

EDIT et de manière générale :
Nul ne penserait à "voler" une appli si celle-ci ne sort pas vraiment du commun. Il est toujours assez facile de la refaire (quelquefois mieux), dès que l'on en connait les fonctionnalités (et celles-ci sont par essence visibles). C'est donc l'idée elle-même et non le code, qui sera "volé".
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Merci encore pour ta réponse. Effectivement, je vais essayer d'éviter de perdre du temps inutilement.
Commenter la réponse de ucfoutu
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 9 avril 2014 à 18:26
0
Utile
4
Bonjour à vous 2,

Je suis tout à fait d'accord avec ucfoutu. Avec Open Office tu peux avoir accès au code. Mais si tu as comme tu le dis des clients novices en programmation ils n'iront pas chercher par là. Donc voici une solution, avec le registre. Tu crées une clé spécifique qui ne sera que sur la machine de ton client. Tu l'appelles, si elle existe ton classeur s'ouvre, sinon nada. Ensuite tu protèges tes macros. Pas besoin de mot de passe!
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 9 avril 2014 à 18:39
Quand je dis Pas besoin de mot de passe! c'est pour ouvrir le classeur, pas pour protéger les macros!
Bonjour,

En réalité, je ne suis pas un expert non plus en programmation : on va dire que je ne vaut pas tellement mieux que mes clients ;)
Du coup, est-ce que tu peux expliciter cette histoire de registre et de clé à appeler ? Car cette solution semble toute simple tout en remplissant mes objectifs !!

Je te remercie d'avance !!
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 10 avril 2014 à 17:43
Même motif = même punition :
Dès lors que le "voleur d'appli" aura ouvert les macros (et cela, c'est à la portée d'une véritable foule). Il lui suffira de "shunter" l'expression conditionnelle de vérification dans la base de registre, rien de plus ... et le tour sera joué.
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 10 avril 2014 à 17:50
Pour être plus clair, voici comment le "voleur d'appli" procèderait à moindre frais, sans même enlever la moindre lignje de tonj code
Exemple
If True Then GoTo 10
MsgBox "tu pourras toujours mettre ici toutes les expressions conditionnelles " & _
"que tu veux ! Elles seront aussi courcicuitées (shuntées) que la presente boîte de message"
Exit Sub
10:
MsgBox "t'as vu comme c'est facile de shunter ?"
Commenter la réponse de cs_Le Pivert
MAGICIENMATT 7 Messages postés mardi 20 novembre 2007Date d'inscription 9 avril 2014 Dernière intervention - 9 avril 2014 à 20:45
0
Utile
je confirme ucfoutu le système office n'est pas fiable pour des bidouilleur ou programmeur averti l'accès au macro est assez simple il suffi juste de naviguer sur internet pour trouver la solution.
Et donc ton bout de code qui vérifie le numéro de série servira donc a rien
Commenter la réponse de MAGICIENMATT
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 10 avril 2014 à 18:10
0
Utile
1
Je vais te donner le processus qui est très simple. ucfoutu, magienmatt et moi même nous t'avons averti que Excel est une passoire, mais cela peut faire illusion pour un néophyte.

tu ouvres un classeur pour créer ta clé et j'ai mis aussi la suppression de la clé pour tes essais.
code a mettre dans ThisWorkbook:

Option Explicit
Private Sub ecriture()
SaveSetting appname:="Monappli", Section:="Autorise", _
            Key:="Valeur", setting:="True"
End Sub
Private Sub Workbook_Open()
'supprimer' a activer pour tes essais
ecriture ' a désactiver pour tes essais
End Sub
'supprimer valeur
Private Sub supprimer()
On Error Resume Next 'si pas de clé
DeleteSetting "Monappli"
End Sub


Tu fermes ton classeur et tu l'ouvre de nouveau, ta clé est créée

A mettre ce code dans ton classeur Excel client dans ThisWorkbook:

Option Explicit
Dim mot As String
Private Sub lecture()
mot = GetSetting(appname:="Monappli", Section:="Autorise", _
                       Key:="Valeur")
 If mot = "" Then
ActiveWorkbook.Close
End If
 End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 'remettre l'affichage d'un classeur s'il est ouvert alors que l'exécution
'des macros est désactivée dans les options de sécurité
ThisWorkbook.IsAddin = True
End Sub
Private Sub Workbook_Open()
 'empêcher l'affichage d'un classeur s'il est ouvert alors que l'exécution
'des macros est désactivée dans les options de sécurité
ThisWorkbook.IsAddin = False
lecture
End Sub

Asythom 9 Messages postés mardi 8 avril 2014Date d'inscription 11 novembre 2014 Dernière intervention - 28 avril 2014 à 12:36
Un grand merci pour ta réponse !!
J'ai bien compris vos alertes sur la fiabilité de toute protection sur Excel, mais je vais tout de même essayer de faire illusion avec ton code. On verra bien !
Encore merci !
Commenter la réponse de cs_Le Pivert

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.