Une image ISO n'est PAS un lecteur physique... Tu peux monter ce que tu veux, si l'on cherche correctement, on identifie TOUJOURS le médium réel. On l'identifie d'autant mieux si l'on shunte la chaine d'identification pour taper directement dans le médium que l'on sait être "le bon" (ex : inutile de scanner le bus PCI si tu cherches une carte ISA, dans le cas qui nous occupe inutile de scanner tous les volumes logiques si l'on cherche un device USB).
De plus, même si tu fais une ISO de ta clé, ça ne simulera jamais les commandes USB permettant d'identifier un device : donc, tu ne reproduiras pas toutes ces informations.
On parie ?
C'est bien entendu possible de simuler complètement ce système : ceci étant dit, va falloir faire chauffer le fer à souder, trouver un device USB programmable à 100% pour reclaquer les infos en question, et tout mettre sur un device USB "maison" fabriqué pour l'occasion.
Ou alors, sortir le désassembleur, et patcher la DLL de façon furieuse et intensive, ce qui n'est pas non plus gagné par avance. Dans tous les cas, ça occupera au moins autant que de péter un dongle hard... Voire plus, parce que tu n'auras pas de pistes / aides / outils dispos sur les forums warez pour t'aider.
Pour péter une protection, encore faut-il savoir comment elle marche... C'est là tout le "cœur" d'une protection efficace, rendre la compréhension difficile.
Bonjour,
Je ne travaille pour eux, et je ne tente pas de leur faire de la pub, ceci dit, il faut savoir dire quand cela marche correctement.
Une (enfin c'est mon avis, mais il est partagé par pas mal de monde) des meilleures protection du moment est sans doute la protection par dongle USB de Synchrosoft (dans sa dernière version).
A ma connaissance, la dernière version n'a toujours pas été déplombée. Il reste à savoir si cette protection entre dans ton modèle économique (i.e. ça coute cher !) et si ton appli peut supporter ce type de protection, sachant que les protections actuelles performantes (aussi bien purement logicielles que couplées avec du hardware) ont toujours un coup - plus ou moins important - en terme d'impact de performances (communication du logiciel avec la protection, "virtualisation" du code natif, vérification d'intégrité, etc.).
A titre d'exemple, la protection de Synchrosoft équipe notamment le logiciel Cubase de steinberg (cf. http://en.wikipedia.org/wiki/Cubase#Copy_protection )
Merci Neitsa de cette suggestion,
Je connais Synchrosoft par le biais d'amis musiciens, comme iLok d'ailleurs.
Certes ils proposent une protection solide et couteuse (ils protègent aussi des trucs pour l'armée, alors les gros budgets ça a dû leur monter à la tête ), mais une solution lourde à mettre en place parait-il... parait-il.
Vendredi j'ai passé quelques coups de fils, et obtenus des infos complémentaires à celles dispo sur le site de sociétés proposant des solutions de protection. Grosso modo, ils ont tous les même approches, reste la façon de le les mettre en place qui peut changer. J'attends d'avoir le feu vert de ma hiérarchie pour me lancer dans les tests de leur SDK.
toutefois, je vais contacter synchrosoft, histoire de voir ce qu'ils disent directement, à pas à travers les "on dit".
Nous utilisons depuis 3 ans le système "Matrix Software License Protection System" : http://www.matrix-lock.com/french-ca/index.htm
Il y a 3 ans, c'est ce que nous avons trouvé de plus sécuritaire et à prix le plus abordable pour nos systèmes d'acquisition.
C'est un dongle USB dans lequel nous inscrivons une clé unique pour chaque client différent. Cette clé sera ensuite valider par notre application d'acquisition et ce en tout temps. L'application confirme aussi que la clé est valide en plus de la sécurité de base du dongle.
Si cette clé est retiré pendant que le programme n'est pas en fonction alors lorsqu'une demande de démarrage serait fait, il ne démarrera tout simplement pas.
Si le programme est déjà en route et que la clé est retiré, alors il s'arrête immédiatement.
Un petit programme de configuration vient avec le premier kit est c'est assez simple à comprendre. Il y a aussi un API (optionnel) pour communiquer avec le dongle, ce que nous nous avons utilisé pour encrypter notre clé à l'intérieur de la clé.
Merci Erakis de cette info.
Je n'ai pas sollicité Matrix, pour le moment.
Je teste actuellement 3 autres solutions commerciales :
- Aladdin HASP SRM HL Max
- Aplika DinKey 2
- IOLock UniKey Pro
La première est très lourde en terme de licence, surtout adapté aux gros éditeurs de softs (ce que nous ne sommes pas). Les 2 autres sont assez équivalentes, sauf que IOLock est driverless pour ses clés USB (ce qui est un avantage).
Sinon elles sont "sur le papier" toutes efficaces, bien que les 2 premières sont plus connues et ont trouve aisément sur le net des émulateurs (pas nécessairement la dernière version, mais bon...).
On va passer par l'API et modifications de notre code source plutôt que l'enveloppe qui peut nous pénaliser dans notre façon de mettre en oeuvre chez le client l'application.
A suivre; je tâcherai de vous tenir informé des comparatifs effectués et du choix final (pas avant septembre 2009).
Merci à tous ceux qui se sont impliqués dans ma recherche.
Thierry
Juste une idée en passant par la ...
pourquoi pas une solution basée sur non pas un mais plusieurs critères hardware ?
exemple tu demande non pas une clé d identification d un appareil mais plusieurs , si un certain pourcentage de clé est valide le prog tourne
si aucune clé n est valide le prog se coupe ou ne démarre pas.
cela permet de faire face a un remplacement partiel du matériel sans problème mais cela évite l' implantation dans un tout nouvel environnement.
a vous de prévoir un système de renvoie d'une version configurée pour le nouvel environnement. ou de faire en sorte que le soft s'auto adapte au nouvel environnement modifié
A vous aussi dans ce cas de prévoir dans le contrat de maintenance que vous êtes seul autorisés a réinstallé le soft dans un environnement totalement remplacé
Bonjour,
Vos tests ont-ils été concluant?
Bonjour,
Je remonte ce sujet (très intéressant et toujours d'actualité) car bien des choses peuvent changer en un an.
Trobin, êtes-vous toujours satisfait de votre choix (IOLock) ? et vous, Erakis, de Matrix ?
De nouvelles solutions sont-elles apparues ?
Merci par avance pour vos réponses.
Bonjour dg78,
toujours satisfait de IOlock, car aucun souhait de changer de solution. Ni budget ni temps pour s'y consacrer.
IOlock possède toujours ses avantages par rapport à la concurrence, même si celle-ci a rejoint IOlock sur certains points.
De temps à autre, le support technique est utilisé afin de résoudre des soucis particuliers comme la protection d'une application possédant à la fois ses propres services windows et ses exécutables windows. IOlock a dû travailler pour améliorer leur librairie afin de pouvoir répondre à ce besoin sans problème. Leur documentation a aussi été améliorée, la mise en place de la clé est toujours aisée si ce n'est que maintenant les versions des librairies sont quelque peu trop "segmentées" (multiples versions pour une seule version de Visual Studio: 32 bit, 64 bit, thread unique, multithread et debug)... auparavant, les choix étaient moins variés, rendant plus aisé le travail sur des versions différentes d'une application. Le tronc commun de la protection restant inchangé. Ce n'est plus le cas. Mais cela reste facile, comparé aux produits safenet !
Bonjour,
J'ai magasiner les dongles, il y a de ça quelques mois déjà, mais ce n'est pas moi qui m'en sert, alors je ne peux vous dire s'il y a eu des améliorations avec Matrix. Toutefois, j'ai participé à l'intégration à nos logiciels et une fois que l'on maitrise l'API de Matrix, cela devient assez simple.
Nos logiciels ne sont pas distribués à travers Internet, au contraire ce sont des systèmes d'automatisation coûteux qui doivent être installés par un de nos techniciens.
Ceci dit, nous voulions éviter qu'un client puisse faire une copie de l'exécutable et de s'en servir sur un autre système. Nous avons aussi intégré le nombre de licences associées à la clé pour chaque client. Avec Matrix et son API on peut dissimuler du DATA dans la clé et c'est d'autant plus pratique pour notre cause.
En conclusion c'est sécuritaire, pas trop cher et ça fonctionne à merveille. La seule chose que j'ai remarqué, c'est qu'une fois que notre exécutable a été modifié par Matrix, il est perçu comme un virus par AVG. Mais cela nous importe peu.
Merci beaucoup à vous deux, Trobin et Erakis, pour vos réponses.
J’en retiens que :
- vous avez, tous deux, gardé votre solution initiale et que vous en êtes satisfaits
- que ces solutions sont faciles à mettre en œuvre
Si d’autres personnes ont essayé d’autres dongles, elles sont les bienvenues pour faire part de leur expérience.
Il ne me reste plus qu’à choisir.
Bonjour,
Dans le code de votre application, codez en dur un numéro de série, pour chaque application que vous fournissez
(nr série d'une clé usb ou clé en port com, adresse physique unique)
Installer un mini pc en réseau chez votre client qui jouera le rôle de serveur clé.
Ainsi vous pouvez détecter en créant un petit code en socket (client/server), un contrôle d’exécution de votre application
Si 2 adresse ip se connecte sur le serveur clé avec le même numéro de série que vous avez codé en dur alors c'est une copie de votre logiciel.
sinon pour chaque connexion, contrôlez toutes les clé "usb/com" sur le serveur et cherchez celle qui est lié au numéro de série que vous avez codé
en dur dans l'application qui se connecte.
et vous faite le contrôle toute les x temps.
En espérant que cela pourrait vous aider
je vous souhaite Bonne journée
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager