Brevet FR2749091A1 — publié le 19971128

La présente invention concerne un dispositif de gestion des droits d'accès à des systèmes informatiques en général, pouvant par exemple être constitués de logiciels ou de progiciels, la gestion des droits d'accès consistant à interdire une utilisation non autorisée de ces logiciels ou progiciels, et en particulier, à interdire une copie non autorisée de tels logiciels ou progiciels. La gestion des droits d'accès peut également concerner des appareils produits à de nombreux exemplaires et mis à la disposition d'un public nombreux pour décoder des informations cryptées, l'accès à ces informations étant soumis à la souscription de droits d'accès spécifiques. Ces systèmes informatiques et ces appareils de décodage seront désignés par la suite de la présente description sous le vocable unique de systèmes logiciels. Dans le premier exemple cité plus haut, la généralisation de l'utilisation de micro-ordinateurs, aussi bien en réseaux sur le lieu de travail qu'à domicile, a entraîné une généralisation concomitante de la duplication et de l'utilisation illicites de logiciels, causant par là un manque à gagner important pour les développeurs, les éditeurs et les distributeurs de ces logiciels. Dans le deuxième exemple, la multiplication des systèmes de codage implique une multiplication en nombre égal des appareils de décodage pour permettre à un utilisateur de recevoir tous les types d'informations cryptées sur son appareil récepteur, ces appareils de décodage étant alors connectés en série à l'entrée de l'appareil récepteur final. On a ainsi développé, pour le premier exemple, des systèmes de protection inclus dans les logiciels eux-mêmes, ou dans leur supports, par exemple des disquettes, pour rendre impossible une copie non autorisée. L'inconvénient majeur de tels systèmes est qu'ils interdisent généralement à l'utilisateur autorisé d'effectuer même une unique copie de sauvegarde du logiciel, ce qui pénalise gravement cet utilisateur en cas de problème matériel ou logiciel. En ce qui concerne le deuxième exemple, aucune solution n' a encore été trouvée, l'utilisateur devant utiliser en cascade autant d'appareils de décodage qu'il est nécessaire s'il désire pour bénéficier de types d'informations cryptées. La description qui suit sera donc principalement faite en référence aux systèmes informatiques, pour la protection de logiciels proprement dits principalement destinés aux micro-ordinateurs. Pour la protection des systèmes informatiques, on s'est tourné vers des dispositifs de codage matériels, constitués d'une clef matérielle, un code ou un logiciel implanté sur une mémoire morte étant inclus dans cette clef. On connaît ainsi, des documents FR-A-2 550 638 et FR-A-2 618 926, des boîtiers d'interface constituant les clefs matérielles, à disposer en série, par exemple entre l'unité centrale du micro-ordinateur et un de ses équipements périphériques. Le principe de fonctionnement de ces boîtiers d'interface est qu'ils renvoient un code de réponse à un code d'interrogation envoyé périodiquement par le logiciel associé à ce boîtier. En cas d'absence du code correct de réponse, l'équipement périphérique est inhibé, ce qui rend le logiciel inutilisable sans le boîtier d'interface. Ces boîtiers sont, par principe, transparents pour l'équipement avec lequel ils sont en série. Outre leur relative complexité, et donc leur coût élevé, ces boîtiers d'interface n'autorisent que l'utilisation d'un seul logiciel protégé par un tel boîtier. Lorsque l'utilisateur désire utiliser un autre logiciel, il doit alors soit changer de boîtier, ce qui implique des manipulations fastidieuses et dommageables pour les broches de connexion, soit disposer un deuxième boîtier en série avec le premier, ce qui peut poser des problèmes d'encombrement ou d'interférences entre les codes reçus et émis par les différents boîtiers. Une solution à ces problèmes a été apportée par les documents US-A-4 652 990 et FR-A-2 646 940 qui décrivent des dispositifs de connexion à insérer sur un câble de liaison entre l'unité centrale du micro-ordinateur et un équipement périphérique. Ces dispositifs de connexion assurent la continuité électrique entre les broches dont ils sont pourvus pour leur raccordement, et ils comportent des supports de connexion susceptibles de recevoir par enfichage des modules formant des clefs matérielles de codage. Ces dispositifs, plus simples que les précédents, nécessitent cependant un câble supplémentaire, et ils ne permettent que l'enfichage d'un nombre limité de clefs matérielles de codage. On connaît également des dispositifs de protection constituant eux-mêmes des équipements périphériques, c'est à dire connectés, par exemple, sur un port d'entrée/sortie de l'unité centrale du micro-ordinateur. Ces dispositifs peuvent être constitués de lecteurs de cartes spécifiques, comme dans les documents connus FR-A-2 523 745, FR-A-2 654 851 ou FR-A-2 662 280, dans lesquels est insérée la carte spécifique au logiciel que l'utilisateur désire utiliser. Une telle disposition implique que l'utilisateur doit disposer d'autant de lecteurs spécifiques de cartes qu'il dispose de logiciels protégés par des types de cartes spécifiques. Chaque lecteur occupant un port d'entrée/sortie, il doit également disposer d'un dispositif de classement pour ces différents types de cartes, et il doit manipuler ces différentes cartes quand il passe de l'utilisation d'un logiciel à celle d'un autre. Le document FR-A-2 622 319 apporte une solution à ce problème en prévoyant un dispositif de circuit périphérique, connecté sur un port d'entrée/sortie de l'unité centrale, et comportant plusieurs emplacements de connexion de modules correspondant chacun à un logiciel particulier. Selon ce document, une partie du logiciel à protéger est stockée sur un support pouvant être lu par un équipement périphérique conventionnel de l'unité centrale du micro-ordinateur, par exemple une ou plusieurs disquettes et/ou le disque dur de l'unité centrale, et une autre partie du logiciel à protéger est stockée de manière physique sur un support matériel contenu dans un de ces modules, cette autre partie de logiciel ne pouvant pas être lue par des moyens conventionnels. Ainsi, le logiciel à protéger est stocké sur deux supports différents, dont les modes de lecture sont différents, de façon à s'assurer que la partie de logiciel lisible par des lecteurs conventionnels soit inutilisable sans la partie de logiciel stockée sur le support matériel inclus dans le module connecté au dispositif périphérique prévu à cet effet. Une telle disposition présente comme inconvénient que, pour pouvoir être efficace, une partie importante du logiciel à protéger doit être stockée sur le support non lisible par des moyens conventionnels, que ce support doit donc être de capacité de stockage importante, et donc de coût élevé, que tous les logiciels protégés par ce procédé doivent avoir le même système de protection, et que le nombre d'emplacements dans le dispositif périphérique est limité. La présente invention se place dans ce contexte et a pour objet de proposer un dispositif de protection de logiciels contre une utilisation non autorisée, qui soit peu coûteux à mettre en oeuvre tout en procurant un degré de sécurité élevé, qui puisse autoriser l'accès à un grand nombre de logiciels ou d'appareils décodeurs dans un encombrement restreint, et qui puisse être intégré dans une unité centrale ou dans un appareil décodeur unique en ne requérant qu'un nombre minimal de connexions. Dans ce but, la présente invention a pour objet un dispositif de protection de logiciels contre une utilisation non autorisée, le logiciel étant enregistré sur des premiers moyens de mémorisation d'une unité centrale ou d'un appareil décodeur, pouvant exécuter le logiciel enregistré sur les premiers moyens de mémorisation, le logiciel étant associé de façon univoque à des droits d'utilisation enregistrés sur des deuxièmes moyens de mémorisation, le dispositif comportant une unité annexe destinée à recevoir les deuxièmes moyens de mémorisation et reliée à l'unité centrale pour permettre l'échange d'informations entre l'unité centrale et l'unité annexe comportant les deuxièmes moyens de mémorisation. Selon l'invention, les deuxièmes moyens de mémorisation comprennent au moins une carte à mémoire ou puce connectée à l'unité annexe au moyen de broches solidaires de l'unité annexe et traversant au moins une ouverture de la carte. Selon une caractéristique de l'invention, les broches traversent la carte à mémoire au moyen de trous métallisés. Selon un mode de réalisation avantageux, les trous métallisés assurent le contact électrique entre les broches et des pistes conductrices formées sur la carte à mémoire. De préférence, les pistes conductrices sont reliées à une puce formant les deuxièmes moyens de mémorisation. On pourra avantageusement prévoir que les trous métallisés soient pourvus de protubérances radiales de façon à assurer la bonne qualité du contact électrique entre les broches et des pistes conductrices formées sur la carte à mémoire. Selon un mode préféré de réalisation, l'unité annexe comporte des moyens de maintien des cartes à mémoire de façon inclinée par rapport au plan perpendiculaire aux broches, de manière à assurer un contact électrique entre les broches et les deuxièmes moyens de mémorisation. Dans ce mode de réalisation, les moyens de maintien peuvent comporter des matériaux souples disposés dans l'unité annexe de part et d'autre des cartes à mémoire pour les forcer à adopter une position inclinée. D'autres buts, caractéristiques et avantages de la présente invention ressortiront plus clairement de la description qui suit d'un exemple de réalisation donné à titre illustratif, en référence aux dessins annexés sur lesquels - La Figure 1 représente une vue schématique en perspective d'un micro-ordinateur incorporant un dispositif de protection selon la présente invention; - La Figure 2 représente une vue schématique en perspective à plus grande échelle du dispositif de protection équipant le micro-ordinateur de la Figure 1; - La Figure 3 est une vue de face des moyens de mémorisation contenant les droits d'utilisation du logiciel exécuté par le micro-ordinateur de la Figure 1; - La Figure 4 est une vue de face à plus grande échelle d'une partie des moyens de mémorisation de la Figure 3 à l'endroit de leur connexion avec le dispositif de la Figure 2, et - La Figure 5 est une vue schématique éclatée en perspective du dispositif de protection équipant le micro-ordinateur de la Figure 1. En référence à la Figure 1, on a représenté un micro-ordinateur, comportant une unité centrale 10 reliée par des câbles à des équipements périphériques, tels qu'un clavier 12 et un moniteur 14. Cette unité centrale est destinée à exécuter des programmes pouvant être stockés sur des premiers moyens de mémorisation, constitués, par exemple, de disquettes 16 ou équivalents (disques compacts connus sous l'appellation de "CD-ROM"), pouvant être insérés dans au moins un lecteur de disquettes 18, du disque dur 20 équipant l'unité centrale 10, ou d'une mémoire vive ou morte (non représentée) de l'unité centrale. L'unité centrale 10 comporte également une unité annexe 22 destinée à recevoir des deuxièmes moyens de mémorisation 24 contenant des droits d'accès ou d'utilisation du logiciel stocké dans les premiers moyens de mémorisation. Ces deuxièmes moyens de mémorisation 24 sont constitués chacun d'une carte formée d'un substrat 26 sur lequel est implanté un circuit intégré 28 comprenant une mémoire morte et/ou un processeur, le processeur éventuellement comportant lui-même au moins une mémoire morte lisible par le microprocesseur (non représenté) de l'unité centrale 10, par l'intermédiaire de connexions 30 sur la carte 26. Conformément à la présente invention, les connexions 30 sont réalisées au moyen de trous 30 dont la paroi interne est métallisés. Ces trous 30 sont destinés à coopérer avec des broches 32 de l'unité annexe 22, en nombre égal, et reliés électriquement à des pistes conductrices 31 de liaison avec le circuit intégré 28. Les pistes conductrices peuvent être formées sur la surface de la carte 24 à la manière des pistes de circuit imprimé des circuits électroniques usuels. Comme on le voit mieux sur les Figures 2 et 5, l'unité annexe 22 comporte un châssis 34 muni, par exemple, d'un couvercle pivotant 36 et dans lequel est susceptible de coulisser un tiroir 38 grâce à des rails de guidage 40. Les broches 32 s'étendent parallèlement à la direction des rails 40 et sont connectées, à l'extrémité opposée à celle qui pointe vers le couvercle, à un port de communication, tel qu'un port d'entrée/sortie du microprocesseur. Lorsque l'utilisateur désire utiliser un logiciel particulier, et que ce dernier est stocké sur la disquette 16, sur le disque dur 20 ou dans la mémoire vive du micro-ordinateur, il lance le programme exécutable correspondant à ce logiciel. Ce dernier comporte, en plus de ses instructions spécifiques, des instructions particulières de vérification des droits d'accès ou d'utilisation conférés à l'utilisateur. Ces instructions particulières ont pour résultat d'afficher sur l'écran du moniteur 14, un message invitant l'utilisateur à insérer sa carte à puce 24 dans l'unité annexe 22. Pour ce faire, l'utilisateur fait basculer le couvercle 36, ce qui a pour résultat de libérer le tiroir 38, qui peut alors être extrait du châssis manuellement, ou automatiquement par des moyens motorisés ou des moyens élastiques (non représentés). L'utilisateur a, ainsi, accès à l'extrémité des broches 32, sur lesquelles il peut enfiler la carte à puce 24. On pourra avantageusement prévoir un dispositif de détrompage, constitué, par exemple, d'une disposition non symétrique des trous métallisés 30 associée à une disposition correspondante des broches 32, ou, comme on l'a représenté sur les Figures 2 et 3, d'un coin coupé 42 de la carte à puce 24, coopérant avec une nervure 44 de forme correspondante formée à l'intérieur du châssis 34, de façon à interdire la fermeture du tiroir 38 si la carte 24 n'a pas la bonne orientation. On pourra également prévoir que les trous métallisés 30 soient pourvus de protubérances radiales 46, de façon à assurer la bonne qualité du contact électrique entre les broches 32 et les pistes conductrices 31 formées à la surface de la carte 24. Lorsque la carte 24 est en place sur les broches 32 dans la bonne orientation, l'utilisateur peut alors repousser le tiroir 38 dans le châssis 34 et refermer le couvercle 36. Les instructions particulières de vérification sont alors fournies aux entrées de la puce 28 par les broches 32, les trous métallisés 30 et les pistes conductrices 31. La puce 28 renvoie alors un code de retour, attestant de la présence de la carte 24 dans l'unité annexe 22. Le logiciel correspondant peut alors continuer à être exécuté. De préférence, l'unité annexe comporte des moyens pour maintenir les cartes à mémoire 24 de façon inclinée par rapport au plan perpendiculaire aux broches 32, de manière à assurer un contact électrique permanent entre les broches 32 et les deuxièmes moyens de mémorisation 24, 28. Ces moyens peuvent être constitués, par exemple, par l'adjonction d'un matériau plastique souple sur une des parois du châssis 34 ou du tiroir 38. Comme on l'a représenté plus particulièrement sur la Figure 5, on peut prévoir de réaliser le tiroir 38 en deux parties, une partie formant un bac 38 coulissant dans le châssis 34, comme on l'a exposé plus haut, ce bac 38 étant pourvu sur sa face arrière d'une première charnière 50 sur laquelle est articulé un couvercle 52, et d'une deuxième charnière 54 sur laquelle est articulé un support 56 pour les broches 32. Le support 56 comporte un connecteur 58 auquel sont raccordées électriquement les extrémités des broches 32, le connecteur 58 étant destiné à coopérer avec un connecteur 60 correspondant du bac 38 par l'intermédiaire d'une nappe de fils (non représentée). La face interne du couvercle 52 est recouverte d'un matériau souple 62, par exemple un élastomère, de préférence strié, et le fond du bac 38 est également recouvert d'un matériau souple 64, par exemple un élastomère, et également de préférence, strié. Avec une telle disposition, lorsque l'utilisateur désire avoir accès à un logiciel particulier, il fait basculer le couvercle 36 pour libérer le tiroir 38 et l'extraire du châssis 34. Lorsque le tiroir est en position extrême vers l'extérieur, l'utilisateur peut alors soulever le couvercle 52 pour avoir accès à l'intérieur du bac 38. Il peut alors faire pivoter le support 56 autour de son axe 54, en tirant l'extrémité libre des broches 32 vers le haut pour avoir un accès plus facile à ces broches sur lesquelles il peut alors enfiler la carte 24. L'utilisateur peut alors replacer les broches 32 dans le bac 38 et refermer le couvercle 52. La distance entre les faces en regard des matériaux souples 62 et 64, au repos, étant inférieure à la hauteur des cartes 24, les matériaux souples 62 et 64 imposent alors à la carte 24 un position inclinée par rapport aux broches 32, assurant ainsi la bonne qualité du contact électrique entre les broches 32 et les trous métallisés 30 de la carte 24. Il suffit alors de repousser le tiroir 38 dans le châssis 34, puis de refermer le couvercle 36 pour que les droits d'accès contenus dans la carte 24 soient pris en compte. On a donc bien réalisé, selon la présente invention, un dispositif de protection de logiciels contre une utilisation non autorisée, qui est particulièrement simple à mettre en oeuvre, et donc peu coûteux, puisqu'il ne met en oeuvre qu'un châssis 34 associé à un tiroir 38 de conception relativement simple et des cartes à puce de réalisation courante. Ce dispositif procure un degré de sécurité élevé, puisqu'il est très difficile de copier le contenu de la mémoire morte du circuit intégré 28. De plus, un tel dispositif peut protéger un grand nombre de logiciels dans un encombrement restreint, puisqu'il est possible d'empiler un grand nombre de cartes 24 sur les broches 32. Ce dispositif peut avantageusement, comme on l'a représenté, être intégré dans une unité centrale en ne requérant qu'un nombre minimal de connexions, un encombrement minimal et un poids minimal. Bien entendu, l'invention n'est pas limitée aux modes de réalisation qui ont été décrits, mais elle est susceptible au contraire de recevoir de nombreuses modifications qui apparaîtront à l'homme du métier. C'est ainsi, par exemple, que le châssis 34 et son tiroir 38 pourront constituer un équipement périphérique disposé en dehors de l'unité centrale 10. De même, le châssis 34 et son tiroir 38 pourront équiper un appareil de décodage d'informations cryptées, chaque carte 24 introduite dans le tiroir 38 correspondant à un type de décodage dont un utilisateur a acquis les droits d'accès. Bien évidemment, on a ici utilisé de manière indifférente les expressions "carte à puce" et "carte à mémoire", puisqu'il n'y a pas lieu de les différencier vis à vis de l'invention. Toutefois, dès lors que l'on considère qu'une carte à mémoire ne possède qu'une mémoire morte, seules quatre broches 32 seront nécessaires pour la connexion au micro-ordinateur. Si l'on considère qu'une carte à puce possède un microprocesseur intégré sur le substrat, alors six broches 32 peuvent se révéler nécessaires. Le nombre de broches 32 utiles ne modifie donc nullement la portée de l'invention. REVENDICATIONS 1- Dispositif de gestion des droits d'accès à des systèmes logiciels contre un utilisation non autorisée, le système logiciel étant enregistré sur des premiers moyens de mémorisation (18, 20) d'une unité centrale (10) pouvant exécuter le logiciel enregistré sur les premiers moyens de mémorisation (18, 20), le logiciel étant associé de façon univoque à des droits d'utilisation enregistrés sur des deuxièmes moyens de mémorisation (24, 28), le dispositif comportant une unité annexe (22) destinée à recevoir les deuxièmes moyens de mémorisation (24, 28) et reliée à l'unité centrale pour permettre l'échange d'informations entre l'unité centrale (10) et l'unité annexe (22) comportant les deuxièmes moyens de mémorisation (24, 28), caractérisé en ce que les deuxièmes moyens de mémorisation (24, 28) comprennent au moins une carte à mémoire ou puce (24) connectée à l'unité annexe (22) au moyen de broches (32) solidaires de l'unité annexe (22) et traversant au moins une ouverture (30) de la carte (24). 2 - Dispositif de gestion selon la revendication 1, caractérisé en ce que les broches (32) traversent la carte à mémoire (24) au moyen de trous métallisés (30). 3 - Dispositif de gestion selon la revendication 2, caractérisé en ce que les dits trous (30) ont leur paroi intérieure métallisée. 4 - Dispositif de gestion selon la revendication 2 ou 3, caractérisé en ce que les trous métallisés (30) sont pourvus de protubérances radiales (46) de façon à assurer la bonne qualité du contact électrique entre les broches (32) et des pistes conductrices (31) formées sur la carte à mémoire (24). 5 - Dispositif de gestion selon l'une quelconque des revendications 2 à 4, caractérisé en ce que les trous métallisés assurent le contact électrique entre les broches (32) et des pistes conductrices (31) formées sur la carte à mémoire (24). 6 - Dispositif de gestion selon la revendication 5, caractérisé en ce que les pistes conductrices sont reliées à une puce (28) formant les deuxièmes moyens de mémorisation (24, 28). 7 - Dispositif de gestion selon l'une quelconque des revendications précédentes, caractérisé en ce que la dite unité annexe (22) comporte des moyens de maintien (62, 64) des dites cartes à mémoire (24) de façon inclinée par rapport au plan perpendiculaire aux dites broches (32), de manière à assurer un contact électrique entre les dites broches (32) et les dits deuxièmes moyens de mémorisation (24, 28). 8 - Dispositif de gestion selon la revendication 7, caractérisé en ce que les moyens de maintien (62, 64) comportent des matériaux souples (62, 64) disposés dans l'unité annexe (22), de part et d'autre des cartes à mémoire (24), pour les forcer à adopter une position inclinée.