Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Sécurité
Sécurité Le forum qui s'occupe de votre préoccupation de sécuriser l'accès à votre application Access, ainsi qu'à la sécurité des données.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/03/2008, 18h04   #1
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 93
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : septembre 2005
Messages : 93
Points : 32
Points : 32
Par défaut Inclure une licence dans un développement

Bonjour,

Après avoir développé un petit programme de gestion avec BD Access et et Applicatif client Access (mde), je souhaiterais limiter l'acces aux personnes qui commandent une licence.

J'ai 2 questions à ce sujet:

1. Question générale: Quelle est la meilleures manière de précéder pour réaliser cela, sachant que je souhaiterais avoir une licence par utilisateur ?

2. Est-ce qu'il faut inclure cela dans le mde ou dans le logiciel de déploiement ?

Je n'ai pas vraiment trouvé d'informations à ce sujet alors je compte sur vos expériences et vos conseils.

Merci beaucoup
skeut
skeut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2008, 14h15   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 491
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 491
Points : 7 588
Points : 7 588
Le sujet a déjà été abordé il y a longtemps.

Le problème c'est qu'il n'y a pas de solution réellement efficace avec Access seulement. Et si on en juge par le nombre de logiciels craqués disponibles sur le net, ailleurs non plus.

Quel degrés de résistance au piratage veux-tu ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2008, 15h35   #3
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 93
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : septembre 2005
Messages : 93
Points : 32
Points : 32
Bonjour marot_r

Merci pour la réponse.

Citation:
Quel degrés de résistance au piratage veux-tu ?
Le meilleur, naturellement !

Plus précisément, mon but est de connaître les utilisateurs de l'application (combien? / qui?). L'idéal serait d'offrir l'application p.ex. 45 jours en démo et si l'utilisateur souhaite continuer, il doit commander une licence.

En définitive, je n'ai pas besoin d'un degrés de sécurité digne du FBI mais juste qqch pour obliger l'utilisateur moyen à s'annoncer et ainsi avoir un contrôle. Si des experts s'attaquent à l'application, ça ne me dérange pas (si ça peut les occuper )

j'ai bien cherché de la doc sur le sujet mais je n'ai rien trouvé de concluant c'est pourquoi je me suis adressé ici.

a+ et merci
skeut
skeut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2008, 21h50   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 491
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 491
Points : 7 588
Points : 7 588
Le problème vient des possibilités de copies. Une fois le numéro de licence connu. Dès qu'un de tes utilisateurs à la licence, il peut utiliser ton appli où il veut et en autant d'exemplaires qu'il le souhaite.

Pour la période de test, une méthode ultra simple consiste à mettre en place un fichier quelque part sur le disque. Dans ce fichier tu enregistre la date et l'heure de la première utilisation.

Tu peux utiliser un fichier texte en appliquant un ou exclusif (xor) avec une clef que tu mets dans ta base. quand on fait (a xor b xor b) on obtient a de nouveau.

Pour ce qui est du numéro de licence, tu pourrais faire un petit formulaire qui fait un hachage sur le numéro fourni (ex : tu prends le code ascii de tous les caractères et tu les additionnes. Note : c'est assez faible comme protection.) Si cela donne un nombre connu de la base tu laisse passé (sinon tu refuses) et tu stockes le numéro entré hors de la base et encodé (xor de nouveau).

Tu pourrais aussi utiliser une clef dans les registres pour rendre la copie plus délicate.

Pendant la période d'essais tu pourrais mettre 0 ou ne pas exiger de numéro de licence.

Tu peux enfin mettre une notice légal disant que ton produit est protégé par les lois sur les droits d'auteur ... mais cela n'est pas très disuasif.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2008, 10h59   #5
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 93
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : septembre 2005
Messages : 93
Points : 32
Points : 32
oui effectivement, dès que la licence est connue, rien n'empêche l'utilisateur de divulguer la clé.

Pour le reste, merci pour les conseils, je vais essayer de mettre cela en place.

Je suis un peu plus au clair maintenant concernant cette problématique.

à bientôt.
skeut
skeut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 16h33   #6
Membre confirmé
 
Inscription : janvier 2006
Messages : 581
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 581
Points : 259
Points : 259
Salut,

Je viens de parcourir ton post, il date un peu mais voici une solution.

Tu peux utiliser une clé USB comme dongle, les petite 128MB ne coûte plus très cher.

Tu entre le N° de la cléf dans le programme et il contôle si elle est présente, si oui le prog continue sinon il s'arrête.

Evidemment, si tu as plusieurs PC il te faudra autant de clé USB, mais tu peux mettre tous les N° dans une condition.

A+
electrosat03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 17h46   #7
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 491
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 491
Points : 7 588
Points : 7 588
Bonne idée mais comment empèches-tu la copie de la clef ?

Lis-tu le numéro de série de la clef ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2008, 17h16   #8
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Vous pouvez également utiliser les N° ID unique des éléments de la machine

Ici le code pour le CPU :
http://vb.developpez.com/faq/?page=Systeme#cpuid

Dans la même veine il y a celui du disque C.

Ce sont des pistes.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2008, 14h06   #9
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 93
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : septembre 2005
Messages : 93
Points : 32
Points : 32
Merci à tous pour les pistes; je vais très bientôt me pencher sur la question et tester l'une ou l'autre des propositions.

Je ne manquerai pas de vous faire part de la solution choisie avec les inconvénients et avantages.

à bientôt.
skeut
skeut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 15h47   #10
Membre confirmé
 
Inscription : novembre 2006
Messages : 467
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 467
Points : 284
Points : 284
Une solution que j'utilise:

1-au démarrage de l'appli le code compare un id machine (ex le ns processeur) codé avec un algo (présent sur le forum) avec une clé présente dans une table de la frontale.

2-au premier démarrage (suite à l'installation) la comparaison n'est pas bonne (cf point 11), un formulaire apparait demandant de saisir une clé.

3-si la cé saisie n'est pas la bonne on ferme l'appli.

4-Le formulaire présente l'id machine et demande de le communiquer à l'éditeur (toi...)

5-le client te communique son id machine.

6-tu saisi l'id dans une base "keygen" qui code l'id avec le même algo que celui sur la machine du client. Cette même base stocke tout dans des tables pour te permettre de gérer et mémoriser les cés que tu as fournies.

7-tu communiques la clé au client, la comparaison est bonne. La clé étant mémorisée dans une table la comparaison sera bonne lors de toutes les ouvertures futures de la base.

8- La clé est propre à la machine. Tu peux combiner plusieurs identifiants pour corser l'affaire.id processeur + id disque.

9- Le codage est dans le code, donc protégé si mde (dites moi si je me fourvoie)

10- Si tu combines les id machine tu peux vérifier si le client te racontes des bobards genre "j'en eu un crash disque" alors qu'en fait il s'agit d'une autre machine.

11-Ce codage est valable même dans ta base de développement (c'est à dire que même toi tu as une clé), c'est même cette clé qui part avec le package et qui sera reconnue comme mauvaise lors de la première exécution chez le client.
Rien de spécial à faire quand tu génères ton pack.

12-Tu peux gérer des options avec ce système (ex: option 1 je code avec 12 itérations, option 2 avec 13 itérations etc), le formulaie demandant la clé demande aussi un numéro d'option. (pas testé)

12- Si t'es piraté c'est que t'es bon
__________________
Un seul conseil: la règle des 3S.
tAKAmAkA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2008, 14h10   #11
Invité de passage
 
Inscription : juin 2005
Messages : 7
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 7
Points : 2
Points : 2
Citation:
Envoyé par electrosat03 Voir le message
Salut,

Je viens de parcourir ton post, il date un peu mais voici une solution.

Tu peux utiliser une clé USB comme dongle, les petite 128MB ne coûte plus très cher.

Tu entre le N° de la cléf dans le programme et il contôle si elle est présente, si oui le prog continue sinon il s'arrête.

Evidemment, si tu as plusieurs PC il te faudra autant de clé USB, mais tu peux mettre tous les N° dans une condition.

A+
Bonjour, ce genre de solution m'intéresse.
J'ai déjà trouvé sur le net des sociétés qui offrent des solutions tout en un (il fournisse la clé et le programme qui crée une DLL lié à la clé.. à l'ouverture d'Access une macro fait appel à la DLL qui vérifie la présence de la clé)
J'aimerais bien essayer de le faire par moi même mais mes connaissance en programmation en VB sous access ne me le permette pas pas encore de créer un code qui testerait les numéros de séries des clés présents dans le PC.

Pouvez-vous m'aider ou m'orienter pour mes recherches. merci d'avance
cooldidi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2008, 19h15   #12
Membre confirmé
 
Inscription : janvier 2006
Messages : 581
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 581
Points : 259
Points : 259
Salut,

Pour ceux que cela intéresse.

Voici le code

A mettre dans ton form de démarrage

Avant les procédures
Code :

Code :
1
2
3
4
Public fso As FileSystemObject
Public Drive As Drive
Public NumSerieUSB As Long
Public DongleOK As Boolean
Ensuite

Code :
Code :
1
2
3
4
5
6
7
8
9
10
'************ Tester si la clé est presente au démarrage ************
'Private Sub Form_Load()
    NumSerieUSB = 476925666    ' Numéro de série de la clé USB client
    DongleOK = False' Met le Dongle absent
    Scan_Dongle ' Va à la procédure Scan du dongle
    If DongleOK = False Then
        DoCmd.Quit
        Exit Sub
    End If
Et enfin la procédure de scan

Code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'************ Tester si la clé USB est présente
Sub Scan_Dongle()
    If DongleOK = True Then
        Exit Sub    ' si Dongle déja présent pas de scan
    End If
    ' Retrouver le dongle et son numéro de serie
    Set fso = New FileSystemObject
    For Each Drive In fso.Drives
        If Drive.IsReady = True Then
            If NumSerieUSB = fso.Drives(Drive + "\").SerialNumber Then
                DongleOK = True                     ' dongle present
                DongleLettre = Asc(Left$(Drive, 1))   ' memorise la lettre du dongle
                Set fso = Nothing
                 Exit Sub
            End If
        End If
    Next
End Sub
Evidemment, tu ne connait pas le numéro de ta clé USB, donc pour cela, regarde avec l'explorer la lettre de ta clé USB.

Ensuite place un point d'arrêt au niveau de la ligne en vert.

Ensuite le code va s'arrêter et tu positionne la souris sur Drive, tu verra en principe "c:" continue le code avec F8 au prochain passage tu verra une autre lettre de lecteur etc etc....

Quand tu tombe sur la lettre de ta clé USB, tu continue avec F8 et sur la ligne en bleu tu regardes le N° de ta clé en te positionnant sur SerialNumber.

Tu copie le N° à la place du N° qui est en rouge.

Tu sauve et en principe si ta clé est présente, le prog démarre sinon il quitte.

Bien sur, c'est pour une appli sur un PC
Mais tu peux mettre un N° de clé différent et faire un if or then

ou tu place un N° différent dans les appli avec la clé qui va avec.
Fait une copie de ta base avant modif, on est jamais assez prudent.

A+
electrosat03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h57.


 
 
 
 
Partenaires

Hébergement Web