Brevet FR2657705A1 — publié le 19910802

L'invention a pour objet un dispositif matériel identifiable par un logiciel utilisant des moyens, standards ou non, de communication sur un calculateur, par exemple entre autres du genre désigné communément clé ou dongle Il existe déjà différents types de clés qui permettent un certain degré de protection Les moyens d'investigation utilisant des calculateurs se développant de plus en plus, il est apparu utile de réaliser une nouvelle clé s'adaptant aux machines et à leurs systèmes d'exploitation et permettant, de plus, notamment une protection accrue pour s'opposer aux tentatives de piratage. La présente invention a pour objet un dispositif de contrôle de l'utilisation sur un calculateur d'un logiciel organisé pour être branché sur une entrée-sortie dudit calculateur pour recevoir des signaux d'interrogation et renvoyer audit calculateur des signaux de réponse, dont l'examen par le calculateur permet de contrôler la présence dudit dispositif, caractérisé en ce que ledit dispositif comporte un microcontrôleur à faible consommation, et est alimenté en énergie électrique uniquement par les signaux reçus du calculateur. En pratique, la tension du calculateur est supérieure à celle du microcontrôleur, et avantageusement, la clé selon l'invention comporte un circuit abaisseur de tension pour adapter les signaux reçus du calculateur à la tension du microcontrôleur, un circuit élévateur de tension pour adapter les signaux de réponse émis par le microcontrôleur à la tension du calculateur, et un circuit d'alimentation recevant les signaux d'interrogation émis par le calculateur, comportant une diode et un condensateur pour accumuler sous forme utilisable l'énergie reçue du calculateur dans les signaux d'interrogation, avec des alimentations à la tension du microcontrôleur, et pour le circuit élévateur pour assurer leurs fonctionnements. Selon linvention, le microcontrôleur comporte des moyens pour stocker une première série de caractères, des moyens pour comparer, suivant des critères déterminés, à ladite première série une seconde série, en moindre nombre, de caractères, contenue dans ledit signal d'interrogation, et des moyens pour émettre un signal de réponse en fonction du résultat de ladite comparaison, ledit signal de réponse étant constitué par une troisième série de caractères en même nombre que dans ladite seconde série, et de façon qu'une seconde série donnée de caractères reçoive toujours la même réponse. Avantageusement, les moyens pour comparer la deuxième série de caractères à la première série de caractères sont organisés pour rechercher à partir de la deuxième série dans les deux séries la première séquence identique la plus longue, et pour repérer la position de ladite première séquence la plus longue dans ladite seconde série, les éléments caractéristiques du signal de réponse étant ladite première séquence la plus longue et ladite position de cette séquence. 2 2657705 Il est avantageux de coder les éléments caractéristiques de la réponse. Le dispositif de l'invention peut être réalisé transparent et constituer un périphérique standard, fonctionnant selon le protocole V 24 (RS 232), et est indépendant des unités centrales disposant d'un tel port reconnu par le système d'exploitation La clé selon l'invention fonctionne sur tout type de ces machines. D'autres caractéristiques et avantages de rinvention apparaîtront au cours de la description qui va suivre, donnée à titre d'exemple non limitatif, en regard des dessins joints, et qui fera bien comprendre comment l'invention peut être réalisée. Sur les dessins, la figure 1 est un schéma d'une forme de réalisation simplifié du dispositif selon rinvention, la figure 2 est un schéma d'un dispositif transparent, pouvant être placé entre un ordinateur et un périphérique, et la figure 3 est un schéma plus détaillé des circuits du dispositif selon l'invention. Comme on sait, le dispositif de rinvention, ou clé, est normalement connecté à une prise de sortie d'un ordinateur (calculateur) et a pour objet de protéger contre la copie un logiciel ou un programme en autorisant seulement le fonctionnement de la machine avec ce programme quand la clé associée à ce programme est connectée à la machine, ou plus généralement, a pour objet d'être rigoureusement identifiée pour autoriser ou non un processus particulier. Selon une caractéristique importante de la présente invention, la clé se connecte sur un port d'ordinateur reconnu de manière standard (protocole V 24 (RS 232)) par le système d'exploitation, et de manière non standard sur des ports avec d'autres protocoles standards. Selon une possibilité, dans la pratique, la clé est souvent intercalée sur une liaison entre lordinateur et un périphérique Il est possible de réserver certaines lignes exclusives à la clé Elle peut aussi être transparente, et les lignes qui lui sont nécessaires la traversent et véhiculent l'information dans les deux sens entre l'ordinateur et le périphérique. La figure 1 représente le schéma d'une clé simple, non transparente Elle possède trois bornes, une terre 1, une entrée 2 et une sortie 3. Sur la borne 2, la clé reçoit des signaux d'interrogations émis par l'ordinateur pendant le déroulement du programme Sur la borne de sortie 3, la clé renvoie des signaux de réponse à l'ordinateur Une caractéristique importante de la présente invention est remploi sur la clé d'un microcontrôleur MP Les microcontrôleurs que l'on fabrique actuellement consomment très peu d'énergie, et selon la présente 3 2657705 invention on utilise un microcontrôleur qui, en l'occurrence, est uniquement alimenté par l'énergie contenue dans les signaux Il n'y a donc pas de ligne d'alimentation entre l'ordinateur et la clé Un tel microcontrôleur peut fonctionner sous une tension inférieure à celle de l'ordinateur En général, les signaux de l'ordinateur sont émis entre -12 et + 12 V, alors que le microcontrôleur fonctionne sous une tension de 3 à 5 V L'invention fournit des moyens pour assurer un fonctionnement correct dans ces conditions. L'entrée 2 est connectée à une entrée 4 du microcontrôleur à travers un circuit abaisseur de tension BT, qui peut être constitué par une résistance L'entrée 2 est également connectée à un circuit d'alimentation CA La grande impédance d'entrée du microcontrôleur limite à une valeur très faible rintensité du courant entrant, et par suite la majeure partie de l'énergie entre dans le circuit d'alimentation Ce circuit comporte un condensateur chargé par le signal rentrant, transforme cette énergie de façon appropriée, et alimente d'une part le microcontrôleur par la ligne 5 à la tension qui lui faut (au plus 5 V), et par la ligne 6, un circuit élévateur de tension HT dont la fonction est de permettre rémission vers l'ordinateur par la ligne 7 et la borne 3, à la tension convenable pour être reçue par l'ordinateur, d'un signal obtenu à partir du signal de réponse du microcontrôleur émis sur la sortie 8 et la ligne 9. L'emploi d'un microcontrôleur dans ces conditions permet, sans avoir à recevoir d'énergie, sans pile, sans batterie, d'assurer une protection très efficace en rendant impossible toute analyse des codes de protection. Dans un mode de mise en oeuvre avantageux de la présente invention, la mémoire du microcontrôleur est chargée d'une première série de caractères (par exemple 512), qui est également incorporée dans le programme, qui la charge dans la machine A différents instants du déroulement du programme, l'ordinateur adresse à la clé, sur la borne 2, une seconde série, moins longue, de caractères, par exemple comportant une balise de reconnaissance de 16 caractères et 64 caractères aléatoires Le microcontrôleur, après avoir reconnu les 16 premiers caractères, effectue une comparaison suivant des critères déterminés entre la seconde série de caractères et la première série, et émet sur sa sortie 8, c'est-à-dire sur la borne 3, un signal de conclusion de cette comparaison L'ordinateur, de son côté, effectue la même comparaison, avec les mêmes critères Si les résultats des deux comparaisons sont concordants, le programme du calculateur est donc assuré de la présence de la clé. Un critère de lopération de comparaison peut être la recherche de la séquence de caractères commune la plus longue entre les deux séries de caractères, ou le cas échéant, la première séquence la plus longue et la position, dans la deuxième série, de cette dite première plus longue séquence commune Cette information est renvoyée à 4 2657705 l'ordinateur qui, ayant fait la même opération, doit trouver le même résultat. Avantageusement, l'information en retour se présente sous la forme d'une troisième série de caractères, comportant par exemple 80 caractères: une balise de reconnaissance de 16 caractères et 64 autres caractères qui peuvent comporter la séquence commune à la position qu'elle occupe dans la deuxième série On comprendra que pour éviter de rendre le déchiffrement facile, la répétition d'une même interrogation devra provoquer la même réponse dans sa totalité. Afin de rendre plus difficile encore la reconnaissance de la première séee de caractères, il est possible de coder la réponse Le microcontrôleur pourra ainsi par exemple comporter en mémoire une table de correspondance de 64 entiers inférieurs ou égaux à 64 La position N dans la seconde série du premier caractère de la première plus grande séquence commune repérée dans cette table fournira par la correspondance un entier M compris entre 1 et 64, qui définira une nouvelle position dans la troisième série envoyée en réponse par la clé à l'ordinateur La table de correspondance qui est une fonction (application) M de N (M = f(N)), peut comporter les 64 premiers entiers dans un ordre différent, ou certains peuvent être absents et d'autres répétés Une autre possibilité de codage peut consister à renvoyer, au lieu de ladite première plus grande séquence commune, une séquence de même longueur située à un autre endroit par rapport à la première, par exemple une séquence consécutive dans la première série. D'autres codages sont possibles, on peut utiliser d'autres M = f(N) Dans cet exemple, la clé, en fait le microcontrôleur, garde en mémoire permanente la balise de reconnaissance, le protocole de transmission V 24 (RS 232), une table de 64 entiers compris entre 1 et 64 et 512 caractères dans cet exemple. La figure 2 représente le schéma d'une clé transparente, fonctionnant par ailleurs comme celle de la figure 1 On a figuré un périphérique P, qui peut être une imprimante ou un autre appareil, et les trois lignes 1, 2, 3 traversent la clé (en plus des autres lignes qui n'interviennent pas et ne sont pas représentées) sont prolongées jusqu'aux bornes 11, 12, 13 du périphérique, à partir des bornes de sortie 21, 22, 23 de la clé. On notera le croisement des connexions 22-13, 23-12 pour respecter les voies d'émission et de réception. La ligne de terre 1, après avoir traversé la clé, o elle est connectée à la masse, ressort en 21 et se prolonge jusqu'à la borne 11 de terre du périphérique. La ligne d'émission de 'odinateur, entrant à la borne 2 de la clé, est prolongée jusqu'à la borne de sortie 22 et de là est connectée à la borne d'entrée 13 du périphérique Ainsi, le périphérique peut recevoir des messages par cette ligne Si le message commence par la balise de la clé, celle-ci acceptera le message; sinon, elle ne réagit pas. 2657705 Il en va un peu différemment pour la ligne de retour de la clé, connectée à la borne de retour 3, du connecteur d'entrée de la clé La borne de sortie 12 du périphérique est connectée à la borne de retour 23 du connecteur de sortie de la clé. Celle-ci est connectée à la sortie 9 du microcontrôleur, entre celui-ci et le circuit élévateur, ou d'adaptation électronique HT, par rintermédiaire d'une résistance en série RS Cette résistance a pour objet d'affaiblir un éventuel signal sur la borne 23, en provenance du périphérique, de façon que, quand le microcontrôleur émet un signal de réponse, ce signal du microcontrôleur surpasse en intensité celui du périphérique, et c'est le signal du microcontrôleur qui est reçu par l'ordinateur En l'absence d'émission par le microcontrôleur, l'affaiblissement dû à la résistance RS est compensé par le circuit HT d'adaptation électronique. Pour éviter de perdre une information, la borne 23 est également connectée à une entrée 10 du microcontrôleur, à travers une résistance RE pour adapter la tension d'un signal émis en 12 par le périphérique, à la tension de fonctionnement du microcontrôleur Si le périphérique émet un signal pendant que le microcontrôleur envoie une réponse par la ligne 9, le signal du périphérique ne sera pas reçu par l'ordinateur mais sera reçu par le microcontrôleur A la fin de l'envoi de la réponse, le microcontrôleur émettra un signal vers l'ordinateur pour l'informer que le périphérique a envoyé un message qui a été bloqué, et l'ordinateur pourra alors à nouveau interroger le périphérique pour obtenir éventuellement rinformation perdue. Sur la figure 3, on a représenté un schéma de réalisation pratique d'une clé conforme à la figure 2 Ce schéma représente les circuits CA, BT et HT dans des cadres en traits interrompus La borne de terre porte le repère 1. On a indiqué en 2 la borne d'entrée pour les signaux émis par l'ordinateur Cette borne est connectée à la résistance BT pour entrer en 4 dans le microcontrôleur et à la diode 15 pour entrer dans le circuit d'alimentation CA Ce circuit délivre au point 6 lalimentation du circuit HT d'adaptation électronique, et au point 5 l'alimentation à -5 V du microcontrôleur Les bornes 1 et 2 sont reliées directement aux contacts 21 et 22 du connecteur de sortie de la clé Le signal de réponse du microcontrôleur est appliqué au point 9 Il rentre dans le cadre HT d'o il ressort à la borne 3 au niveau de tension de l'ordinateur. Les signaux renvoyés depuis la borne 12 de réponse du périphérique sont appliqués en 23, qui est connecté au point 30, qui est connecté, à travers la résistance RE, à 'entrée 10 du microcontrôleur, et à travers la résistance RS au point 9 de sortie du microcontrôleur. On voit sur ce schéma que les circuits BT, RE et RS sont des résistances Le circuit CA comporte des diodes et des condensateurs, et le circuit HT comporte un 6 2657705 transistor de commande en entrée, un circuit intégré numérique avec des "ou" logiques et deux transistors en montage complémentaires avec un condensateur permettant de fabriquer le + 12 V. Revendications: 1. Dispositif matériel identifiable par un logiciel utilisant des moyens, standards ou non, de communication sur un calculateur, organisé pour être branché sur une sortie ( 2) dudit calculateur pour recevoir des signaux d'interrogation et renvoyer audit calculateur des signaux de réponse, dont l'examen par le calculateur permet de contrôler la présence dudit dispositif, caractérisé en ce que ledit dispositif comporte un microcontrôleur MP à faible consommation, et est alimenté en énergie électrique uniquement par les signaux reçus du calculateur. 2. Dispositif selon la revendication 1, dans lequel les signaux d'interrogation sont à la tension de sortie du calculateur et le microcontrôleur fonctionne sous une tension réduite, caractérisé en ce qu'il comporte un circuit abaisseur de tension BT pour adapter les signaux reçus du calculateur à la tension du microcontrôleur, un circuit élévateur de tension HT pour adapter les signaux de réponse émis par le microcontrôleur à la tension du calculateur, et un circuit d'alimentation CA recevant les signaux d'interrogation émis par le calculateur, comportant au moins une diode et un condensateur pour accumuler sous forme utilisable l'énergie reçue du calculateur dans les signaux d'interrogation, avec une alimentation à la tension du microcontrôleur, et une alimentation pour le circuit élévateur HT. 3. Dispositif selon la revendication 2, agencé en transparence entre ledit calculateur et un périphérique P caractérisé en ce qu'une ligne ( 22) en retour du périphérique est connectée à la borne de sortie ( 9) du microcontrôleur, par l'intermédiaire d'une résistance (RS), de façon que, quand le microcontrôleur émet un signal de réponse, ce signal surpasse en intensité celui du périphérique, et c'est le signal du microcontrôleur qui est transmis. 4. Dispositif selon la revendication 3, caractérisé en ce que la ligne ( 23) en retour du périphérique est connectée à une entrée ( 10) du microcontrôleur, par l'intermédiaire d'une résistance RE pour faire chuter la tension à celle du microcontrôleur pour y faire entrer l'information d'un signal avertissant d'une émission. 5. Dispositif selon une des revendications précédentes, caractérisé en ce que le microcontrôleur comporte des moyens pour stocker une première série de caractères, des moyens pour comparer, suivant des critères déterminés, à ladite première série une seconde série, en moindre nombre, de caractères, contenue dans un signal d'interrogation, et des moyens pour émettre un signal de réponse en fonction du résultat de ladite comparaison, ledit signal de réponse étant constitué par une troisième série de caractères en même nombre que dans ladite seconde série, et de façon qu'une seconde série donnée de caractères reçoive toujours la même réponse. I 6. Dispositif selon la revendication 5, caractérisé en ce que les moyens pour comparer la deuxième série de caractères à la première série de caractères sont organisés pour rechercher, à partir de la deuxième série dans les deux séries, la première séquence identique la plus longue, et pour repérer la position de ladite première séquence la plus longue dans ladite seconde série, les éléments caractéristiques du signal de réponse étant ladite première séquence la plus longue et ladite position de cette séquence. 7. Dispositif selon la revendication 6, caractérisé en ce qu'il comporte des moyens pour coder les éléments caractéristiques dudit signal de réponse. 8 Dispositif selon la revendication 6, caractérisé en ce que les moyens pour coder comportent une table de correspondance attribuant à une position déterminée de ladite première séquence dans la seconde série, une autre position dans la série, définie par la table de correspondance. 9. Dispositif selon une des revendications 7 ou 8, caractérisé en ce que les caractères de ladite première séquence la plus longue sont remplacés dans le signal de retour par d'autres caractères définis par une loi de codage choisie.