FR2702857A1 - Procédé et dispositif d'autorisation d'accès à un appareil comportant un système informatique d'exploitation. - Google Patents

Procédé et dispositif d'autorisation d'accès à un appareil comportant un système informatique d'exploitation. Download PDF

Info

Publication number
FR2702857A1
FR2702857A1 FR9303150A FR9303150A FR2702857A1 FR 2702857 A1 FR2702857 A1 FR 2702857A1 FR 9303150 A FR9303150 A FR 9303150A FR 9303150 A FR9303150 A FR 9303150A FR 2702857 A1 FR2702857 A1 FR 2702857A1
Authority
FR
France
Prior art keywords
memory
data
transcoding
password
support
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9303150A
Other languages
English (en)
Other versions
FR2702857B1 (fr
Inventor
Antonini Pierre
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to FR9303150A priority Critical patent/FR2702857B1/fr
Priority to US08/214,611 priority patent/US5636281A/en
Publication of FR2702857A1 publication Critical patent/FR2702857A1/fr
Application granted granted Critical
Publication of FR2702857B1 publication Critical patent/FR2702857B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/127Shopping or accessing services according to a time-limitation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/20Individual registration on entry or exit involving the use of a pass
    • G07C9/215Individual registration on entry or exit involving the use of a pass the system having a variable access-code, e.g. varied as a function of time
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/30Individual registration on entry or exit not involving the use of a pass
    • G07C9/32Individual registration on entry or exit not involving the use of a pass in combination with an identity check
    • G07C9/33Individual registration on entry or exit not involving the use of a pass in combination with an identity check by means of a password
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/0014Coin-freed apparatus for hiring articles; Coin-freed facilities or services for vending, access and use of specific services not covered anywhere else in G07F17/00
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne les procédés qui permettent d'autoriser l'utilisation d'un appareil comportant des moyens informatiques pendant une durée limitée par une date ou un nombre d'heures. Elle consiste à mélanger les données de la mémoire de programme (106) du dispositif à protéger selon un ordre secret. Pour utiliser cette mémoire on utilise alors un dispositif de transcodage (105) qui permet de rétablir l'ordre de lecture correct des instructions contenues dans la mémoire. Ce dispositif de transcodage est de préférence sous la forme d'une mémoire (211) contenant plusieurs tables dont seule l'une donne les données correctes de transcodage. Le choix entre ces tables se fait sous le contrôle (201, 203, 204) de moyens permettant de déterminer les droits d'accès à l'appareil. Ces moyens sont de préférence rassemblés sous la forme d'un support intelligent (105) qui vient s'insérer entre le support normal (101) de la mémoire de programme et cette dernière. Elle permet de contrôler la durée de location des appareils comportant des systèmes informatiques et de protéger contre la duplication non autorisée de la mémoire programme.

Description

PROCEDE ET DISPOSITIF D'AUTORISATION
D'ACCES A UN APPAREIL COMPORTANT
UN SYSTEME INFORMATIQUE D'EXPLOITATION
La présente invention se rapporte aux procédés et aux dispositifs qui permettent d'autoriser l'accès à un appareil à partir d'événements indépendants de la volonté de l'utilisateur, en bloquant le fonctionnement du dispositif informatique qui permet de contrôler l'appareil. Elle s'applique plus particulièrement au cas des appareils mis en location et dont on désire contrôler, par exemple, le nombre d'heures d'utilisation, ou une date limite de location.
Il est de plus en plus fréquent que des appareils de toute nature, des instruments de mesure par exemple, fonctionnent sous le contrôle d'un système d'exploitation informatisé comportant en général un microprocesseur, une mémoire vive de fonctionnement, une mémoire sauvegardée comportant les programmes du système, des organes de commande du type clavier et des organes de visualisation du type écran. Ces différents dispositifs sont réunis par des bus d'adresses, de commandes et de données, selon une structure qui est très semblable à celle des micro-ordinateurs du type PC.
Cette structure banalisée permet de s'appliquer à de nombreux appareils et instruments pour collecter des données et émettre des commandes en adaptant simplement, selon l'appareil utilisé, le programme de contrôle contenu dans la mémoire du système informatique. On diminue ainsi fortement les coûts, et en outre on peut relier ensemble tous ces appareils par l'intermédiaire de dispositifs de liaison normalisés, que ce soit au niveau des bus eux-mêmes, tel que le bus IEEE, ou au niveau de liaisons de types série ou parallèle.
Les habitudes actuelles, liées à des problèmes de coûts et d'obsolescence rapide, conduisent les industriels à prendre ces appareils en location au lieu de les acheter. Le loueur souhaite bien entendu avoir des garanties sur un éventuel usage abusif de l'appareil, en limitant par exemple la location à un certain nombre d'heures pour les appareils qui s'usent en fonctionnement, ou à un certaine durée pour éviter qu'en cas de rétention par le client ou de disparition de 11 appareil, celui-ci ne puisse continuer à fonctionner.
Dans ce but, on a imaginé d'utiliser des systèmes du type compteur ou horloge calendaire, qui viennent par exemple couper l'alimentation de l'appareil. Ces différents systèmes n'ont pas jusqu'à présent donné une grande satisfaction parce qu'on peut assez facilement les outrepasser.
Pour obtenir un système plus sûr, l'invention propose un procédé d'autorisation d'accès à un appareil comportant un système informatique d'exploitation, ce système comprenant une mémoire de programme fixée de manière amovible sur un support, principalement caractérisé en ce que lton insère entre la mémoire programme et le support des moyens permettant de transcoder au moins les adresses d'accès ou les données ou les commandes de cette mémoire de programme, et en ce que les données contenues dans cette mémoire de programme sont ainsi mélangées pour ne pouvoir faire fonctionner le système informatique qu'après leur décodage correct par lesdits moyens de transcodage. Ce transcodage empêche le fonctionnement de l'appareil sans le décodage donc sans la présence de l'invention.
D'autres particularités et avantages de l'invention apparaitront clairement dans la description suivante faite en regard des figures annexées qui représentent
- La figure 1, le schéma en perspective cavalière de la mémoire de programme d'un tel appareil avec un boîtier de transcodage inséré entre elle et son support;
- la figure 2, un schéma électronique des moyens de transcodage;
- les figures 3 et 4, des organigrammes du procédé de modification du contenu de la mémoire de transcodage; et
- la figure 5, une vue en coupe du boîtier de transcodage.
Du fait de son caractère de protection, l'invention peut également protéger le programme contenu dans la mémoire contre la duplication non autorisée dans le cas de programmes optionnels.
On a représenté sur la figure 1, de manière très schématique, les organes formant la mémoire de programmes d'un appareil fonctionnant selon l'invention.
De manière tout à fait courante, ces organes comprennent un support de mémoire 101 qui est relié aux autres organes du système, non représentés, par un bus d'adresses 102, un bus de commandes 103 et un bus de données 104. Habituellement, la mémoire 106 qui comprend les instructions du programme de fonctionnement du système informatique, et qui est donc du type EPROM
EEPROM ou RAM sauvegardée par exemple pour garder ces informations en mémoire même lorsque le système ne fonctionne pas, est connectée directement sur le support 101.
Selon l'invention, on utilise un support intermédiaire 105, que nous appellerons support intelligent, et qui vient s'intercaler entre le support normal 101 et la mémoire de programme 106. Ce support 105 comporte d'un côté des broches destinées à venir s'adapter sur le support 101 et de l'autre un support avec des contacts destinés à recevoir les broches de la mémoire 106. Selon l'invention, le support 105 comprend au moins un câblage spécifique qui permet de transcoder les données, les adresses ou les commandes destinées à la mémoire 106 de manière à ce que celle-ci dont le contenu est alors transcodé, contienne des informations qui, le cas échéant, viendront stopper ou perturber le fonctionnement du système informatique dont elle contient le programme d'exécution.
Pour obtenir ce transcodage, l'invention propose d'utiliser un réseau logique programmable constituant une mémoire intermédiaire dont les entrées sont les adresses des données contenues dans cette mémoire intermédiaire. Ces mêmes données, disponibles sur les sorties de données, forment les adresses pour la mémoire finale 106 ou des données pour le système. Le contenu de la mémoire 106 aura bien entendu été programmé de telle manière que les bonnes instructions correspondent aux adresses après décodage dans la mémoire intermédiaire.
Elle sera appelée LUT, ce terme provenant du terme anglo-saxon LOOK-UP-TABLE
Si donc ainsi on a une mémoire intermédiaire qui comprend autant de sorties que d'entrées, huit sorties pour huit entrées par exemple, on a un simple transcodage qui permet une protection relativement limitée.
Si par contre on utilise une mémoire de taille plus importante, comprenant par exemple dix entrées et huit sorties, on a l'équivalent de quatre tables de transcodage différentes, dont une seule sera la bonne, les trois autres étant programmées, par exemple de manière aléatoire pour obtenir une lecture tout-à-fait incohérente de la mémoire finale 106. Plutôt qu'une programmation incohérente, on pourrait au contraire avoir une programmation particulière qui amènerait le système informatique à adopter un comportement cohérent mais ne répondant pas aux désirs de l'utilisateur. On pourrait imaginer, par exemple, d'obtenir un affichage indiquant que la durée de location est dépassée.
La sélection entre les tables disponibles se fait donc par les entrées supplémentaires, et on conçoit bien que dans le cas de dix entrées pour huit sorties on dispose de deux entrées supplémentaires permettant de choisir entre quatre tables. Le minimum est bien entendu d'avoir une entrée supplémentaire pour pouvoir choisir entre une bonne table de transcodage et une mauvaise mais, bien entendu, il peut être utile d'en avoir un plus grand nombre pour multiplier les possibilités de combinaisons différentes afin de pouvoir munir un grand nombre d'appareils de ce même système de protection sans risque qu'il soit . dupliqué entre deux appareils différents.
Ainsi donc dans le cas d'une mémoire possédant seize entrées d'adresses et huit sorties de données, c'est-à-dire une mémoire tout-à-fait courante de 64 koctets, on aura plusieurs milliers de combinaisons disponibles avec un dispositif tout-à-fait courant.
En effet, l'un des avantages de l'invention est de permettre d'utiliser des circuits disponibles de manière courante dans le commerce, des mémoires en particulier, sans être obligé de fabriquer des circuits spécialisés.
On a représenté sur la figure 2 une version élaborée du support intelligent 105 de la figure 1. Ce support intelligent comprend un microprocesseur 201 qui commande le fonctionnement du support intelligent à partir d'une première mémoire M1 202 qui contient ses instructions de fonctionnement et d'une deuxième mémoire M2 203 qui comprend des données variables pouvant correspondre, par exemple, aux durées de location autorisées, au numéro de série de l'appareil, à la date du contrat, etc..
Le cas échéant, ces mémoires M1 et M2 peuvent être intégrées au microprocesseur 201, comme cela existe couramment.
Le support 105 comprend en outre une horloge temps réel 204 qui est sauvegardée, par exemple par une pile intégrée au support et de longue durée, au lithium par exemple, comme cela existe de manière courante.
La mémoire LUT comportant les données de transcodage est une mémoire 205 qui comprend donc ses bus de commandes 102, d'adresses 103 et de données 104.
La mémoire LUT permet de transcoder aussi bien les adresses et les commandes provenant de l'utilisateur, que les données provenant de la mémoire 106. De ce fait, aussi bien des fils du bus 104 de donnée de la LUT sont raccordés aux fils des bus d'adresse 205 ou de commande 206 de la mémoire 106, aussi bien des fils du bus 208 de donnée de la mémoire 106 sont raccordés à des fils du bus d'adresse 209 de la mémoire LUT. En variante le bus 210 des commandes utilisateur n'est pas transcodé (liaison en tirets).
Dans cet exemple, les fils d'adresses provenant du support de base 101 de l'appareil qui reçoit le support intelligent 105 sont en même nombre que ceux qui sortent sur le bus de données 104 et qui correspondent aux fils d'adresses destinés à la mémoire de commande 106. Pour alors avoir le transcodage correct, correspondant à la sélection de la table désirée dans la LUT 211, le bus d'adresses 103 comporte le nombre suffisant de fils supplémentaires provenant du microprocesseur 201, lequel sélectionnera au moins par un fil 212 la bonne table en fonction des éléments contenus dans la mémoire M2 et des renseignements de date et d'heure provenant de l'horloge
H.On aura par exemple huit fils d'adresses provenant de l'extérieur sur le bus 103, huit fils allant vers l'extérieur sur le bus 104 et huit fils provenant du microprocesseur 201 et venant se joindre aux huit autres fils du bus d'adresses 103.
En outre, selon un perfectionnement optionnel, le support intelligent 105 comprend une interface supplémentaire 213, du type série par exemple, qui est reliée à l'extérieur à un organe de saisie et éventuellement de visualisation 207, du type clavier/écran par exemple, qui permet de modifier, sous le contrôle du microprocesseur 201, les données contenues dans la mémoire M2 ou la LUT 211. Ceci permet, en fin du contrat de location par exemple, de prolonger la durée de ce contrat, en accord bien entendu entre le loueur et le locataire. On utilisera pour cela des algorithmes de chiffrement qui permettent d'obtenir une telle modification sans risque de décodage par un individu non-autorisé. En pratique la mémoire LUT et la mémoire M2 sont confondues en une seule mémoire.
En l'absence d'un tel système, une autre solution consiste par exemple à jeter purement et simplement le support intelligent, dont on a vu qu'il était fabriqué à partir d'éléments du commerce courants et bon marché.
Une autre solution pourrait consister à prévoir d'avance une série de durées de location au niveau de la mémoire M2, correspondant chacune à une table particulière dans la LUT 211 dont on a vu qu'elle peut comprendre un très grand nombre de tables distinctes.
Dans ces conditions on changera alors la mémoire de programme de l'appareil comportant le support intelligent. Cette mémoire sera bien entendu, programmée pour être décodée par la table ad hoc. Compte tenu du prix des mémoires à l'heure actuelle, ce procédé peut être très bon marché et se comparer avantageusement aux autres.
Pour obtenir une sécurité supplémentaire, on peut parfaitement, outre le transcodage des adresses de la mémoire de programme, procéder dans le sens inverse à un transcodage des données contenues dans cette mémoire.
Ainsi chaque donnée lue servira alors d'adresse dans une
LUT, qui peut être commune avec la LUT de transcodage des adresses de lecture, et les données ainsi lues dans la LUT serviront alors de commandes utilisables par l'appareil qui fonctionne sous le contrôle de la mémoire de programme.
Le changement de la LUT, pour augmenter le crédit d'heures par exemple, est particulièrement intéressant dans les systèmes dans lesquels on n'utilise pas de microprocesseur et où il est alors assez délicat de changer les données correspondant à la durée de location. A ce moment là, on pourra utiliser directement les données de date et/ou d'heures obtenues à partir de l'horloge 204 pour sélectionner la table correcte dans la LUT. Lorsque la durée de location sera terminée, la table de transcodage sélectionnée dans la LUT 211 par l'horloge sera mauvaise. Ceci est tout simplement obtenu en raccordant une sortie de poids fort d'un compteur piloté par l'horloge à une entrée supplémentaire d'adresse ou de commande de la LUT. Dès que le poids fort de ce compteur bascule, le transcodage de la LUT est modifié.Il n'y a alors pas de relais mécanique ou de circuit électronique supplémentaire à ajouter pour invalider l'utilisation. En pratique, il faut que la LUT ait une capacité au moins double du nombre des adresses ou données que l'on veut transcoder. Le changement de
LUT consistera donc à remettre une nouvelle LUT dans laquelle la sélection directe par les données horaires de l'horloge permettra à nouveau d'obtenir le bon transcodage. On pourrait bien entendu utiliser une même structure en changeant le contenu de la LUT par l'intermédiaire du microprocesseur, mais cette procédure n'est généralement pas intéressante et il est le plus souvent préférable de modifier les données de la mémoire 203 de ce microprocesseur.
Dans le mode de réalisation préféré, le microprocesseur compare la date programmée dans la mémoire 203 à celle fournie par l'horloge 204, ou bien le crédit d'heures contenu dans cette mémoire 203 à une valeur cumulée de la durée de fonctionnement, elle-même mémorisée dans cette mémoire 203. Dans le cas du crédit d'heures, il faut que celui-ci soit décrémenté au fur et à mesure que le temps passe et ceci sans que les mises hors tension de l'appareil puissent intervenir sur le décompte. Différentes modalités peuvent être utilisées dans ce but. Le microprocesseur 201 peut par exemple mémoriser à chaque mise sous tension le crédit contenu dans la mémoire 203, décrémenter celui-ci en fonction du temps passé délivré par l'horloge 204 et à intervalle régulier rafraîchir le crédit contenu dans la mémoire 203 par la nouvelle valeur obtenue par cette décrémentation. On peut aussi prévoir d'avoir une case dans la mémoire 203, correspondant au temps passé pendant le fonctionnement de l'appareil, déterminé à partir de la mise sous tension, et incrémenter au fur et à mesure le contenu de cet emplacement. A chaque incrémentation le microprocesseur compare le contenu de cette case avec le crédit d'heures, lui-même mémorisé dans la mémoire 203, et lorsque l'égalité se réalise il vient brouiller le décodage de la mémoire de fonctionnement 106 par l'intermédiaire de l'adressage 212 de la LUT 211.
Dans la plupart des cas, on préférera renouveler les autorisations d'utilisation directement chez le client, par l'intermédiaire par exemple du clavier de saisie 207, afin de limiter les transactions entre le loueur et le locataire à la fourniture d'un code en échange d'un paiement.
Il faut bien entendu pouvoir protéger, justement à l'aide d'un tel code, la nouvelle autorisation d'utilisation, et éventuellement la durée de celle-ci sauf s'il est prévu par avance qu'elle soit d'une valeur fixe déterminée.
On connaît différents procédés de cryptage utilisables dans ce but, par exemple l'algorithme connu sous le nom de DES. Ceci présente toutefois différents inconvénients, en particulier une longueur de saisie importante pouvant amener à des erreurs, et l'utilisation de clés publiques qui, en dépit de leur nom, ne sont pas à la disposition de tout le monde.
L'invention propose donc, pour pouvoir modifier les autorisations d'utilisation, le procédé se présentant sous la forme des algorithmes représentés sur les figures 3 et 4.
Chez le loueur, après accord d'une prolongation d'autorisation de location, on crée dans une étape 301 une chaîne NO 1 formée de la concaténation d'un mot de passe N précédent et du numéro de 11 appareil contrôlé par le dispositif, tous deux contenus dans la mémoire 203.
Dans une étape 302, on crée, par des techniques connues, un nombre aléatoire de longueur déterminée et qui constituera le mot de passe N+1.
Dans une étape 303, on détermine des données correspond à la durée de location, soit en heures, soit en dates.
On effectue ensuite dans une étape 304 la somme de tous les caractères formant le mot de passe N, le numéro d'appareil, la durée de location, et le mot de passe
N+1. On obtient ainsi un nombre de contrôle que nous appellerons "somme" et qui est de même nature qu'une information de parité.
Dans une étape suivante 305, on confectionne alors une chaîne NO 2 en concaténant le mot de passe N+1, les données de durée de location, et le nombre obtenu dans l'étape 304.
Dans une étape 306, on effectue alors une opération connue sous le nom de "OU exclusif", entre la chaîne 1 et la chaîne 2. Le résultat de l'opération donne une chaîne NO 3, qui forme un code résultat 307, qui sera transmis au locataire. Par rapport au mot de passe N+1 et à la nouvelle durée de location, ce code est suffisamment protégé pour ne pas être facilement décodé par le locataire, tout en étant relativement facile à générer et à décoder par le microprocesseur lui-même.
Le locataire ayant reçu le code résultat ainsi déterminé commence par rentrer, à l'aide du clavier 207, une commande destinée au microprocesseur 201 afin que celui-ci puisse recevoir le code résultat, le contrôler et modifier en conséquence le contenu de la mémoire 203.
Lorsque le microprocesseur 201 est dans cet état, éventuellement signalé par des moyens de visualisation adjoints au clavier 207, le locataire entre le code résultat correspondant à la chaîne 3 dans une étape 401 représentée sur la figure 4.
Le microprocesseur procède alors à la génération de la chaîne NO 1 en concaténant dans une étape 402 le mot de passe N et le numéro de l'appareil, tous deux contenus dans la mémoire 203. Ceci est possible puisque ces deux éléments lui sont connus
Il effectue ensuite, dans une étape 403, un "OU exclusif" entre la chaîne NO 1 ainsi reproduite et le code résultat reçu. Comme ce code reçu correspond à la chaîne NO 3, le résultat de ce "OU exclusif" forme la chaîne NO 2, dont on rappelle qu'elle contient concaténés le mot de passe N+1, la durée de location, et la somme destinée à la vérification. Ceci est une des particularité de l'opération "OU exclusif".Il serait toutefois possible de remplacer la fonction "OU exclusif" par d'autres fonctions mutuellement réciproques.
On extrait alors, par simple segmentation, dans une étape 404 le mot de passe N+1 et la durée de location, et dans une étape 405 la somme.
Dans une étape 406 on effectue alors le calcul de la somme à partir du mot de passe N+ 1 et de la durée de location obtenue dans l'étape 404, ainsi que du mot de passe N et du numéro de l'appareil, ces deux derniers étant lus dans la mémoire 203.
On effectue alors la comparaison de la somme ainsi calculée à la somme extraite 405 dans une étape 409.
Si tout est correct, en particulier si le code entré dans l'étape 401 est le bon, cette somme ainsi calculée est identique à la somme obtenue dans l'étape 405.
Si le résultat est faux, on arrive dans une étape d'erreur 410 qui déclenche des actions appropriées, par exemple un blocage plus ou moins long du dispositif, destiné à empêcher des essais systématiques successifs.
Si le résultat est bon, on termine dans une étape 411 par le rafraîchissement dans la mémoire 203 de 11 autorisation de location, soit en durée, soit en date, et on vient dans une étape 412 remplacer le mot de passe
N par le mot de passe N+1 qui a été obtenu dans l'étape 404.
Pour modifier la LUT, on intercale entre les bus d'adresse 103, de données 104, et de commande 102 de la
LUT et, respectivement, les mêmes bus utilisateurs ou du microprocesseur 201 des tampons de transmission tels que 214 à 219. Ces tampons possèdent tous une entrée CS qui peut être pilotée par un signal CS ou NCS émis par le microprocesseur 201. En temps normal, le signal CS est actif et la LUT 211 transcode. Quand il s'agit de la modifier, le signal NCS est actif, la LUT est découplée de l'appareil et ses bus d'adresses, de données et de commandes sont alors pilotés par le microprocesseur 201 qui lui-même est commandé par le clavier 207. Ce clavier 207 comporte donc une autre commande pour mettre la LUT sous le contrôle du microprocesseur 201.
Comme on l'a vu. au début, l'invention propose de placer le support intelligent 105 entre le support d'EPROM 101 et l'EPROM 106 elle-même.
Pour cela, selon un mode de réalisation représenté sur la figure 5, on utilise deux petites plaquettes de circuit imprimé, de préférence double face 501 et 502, dont les dimensions sont sensiblement égales ou légèrement supérieures à celles de 1'EEPROM de la LUT.
Ces plaquettes sont placées l'une au-dessus de l'autre et portent vers l'extérieur l'une un connecteur mâle 504 comportant des broches 505 (le support d'EEPROM est supposé du type femelle) et l'autre un support d'EPROM ou EEPROM 503 identique au support 101. De cette manière, le dispositif vient s'adapter exactement entre l'EPROM et son support.
Dans l'espace compris entre les plaquettes 501 et 502, on a fixé sur les circuits imprimés les éléments électroniques de la figure 2 destinés à rendre intelligent ce support.
Pour obtenir un dispositif aussi petit que possible, on utilisera de préférence des composants du type à montage en surface, dits CMS, et formant par exemple le microprocesseur 201 et l'horloge 204 tels que représenté sur cette figure 5.
Les deux faces de chaque circuit sont réunies de manière connue par des trous métallisés et les circuits sont reliés entre eux par des liaisons 506 formées par exemple par des fils rigides courbés à la demande ou bien par un ruban de circuit imprimé flexible comportant des pistes destinées à obtenir les connexions nécessaires.
L'interface série 206 est fixée sur le côté de l'ensemble et réunie à l'un et/ou à l'autre des circuits imprimés à l'aide de connexion 510.
L'ensemble est ensuite moulé dans un produit d'enrobage 511, de manière à obtenir un élément compact parallélépipèdique de dimensions réduites qui pourra s'insérer très facilement entre 1'EPROM et son support.
Il est aisé d'obtenir un dispositif dont l'épaisseur ne dépasse pas 12 mm, ce qui permet de respecter les valeurs courantes d'écartement entre les cartes des systèmes informatiques.

Claims (12)

REVENDICATIONS
1. Procédé d'autorisation d'accès à un appareil comportant un système informatique d'exploitation, ce système comprenant une mémoire de programme (106) fixée de manière amovible sur un support (101), caractérisé en ce que l'on insère entre la mémoire de programme et le support des moyens (105) permettant de transcoder au moins les adresses d'accès ou les données ou les commandes de cette mémoire de programme (106), et en ce que les données contenues dans cette mémoire de programme sont ainsi mélangées pour ne pouvoir faire fonctionner le système informatique qu'après leur décodage par lesdits moyens de transcodage (105).
2. Procédé selon la revendication 1, caractérisé en ce que les moyens de transcodage comprennent au moins une mémoire (211), dite LUT, dont des données mémorisées servent d'adresses à la mémoire de programme (106) et dont les adresses (103) sont, au moins partiellement, des adresses de lecture normales d'une mémoire de programme.
3. Procédé selon la revendication 2, caractérisé en ce que la mémoire LUT (211) comprend au moins deux tables de transcodage dont une seule est correcte, et en ce que le choix entre ces deux tables de transcodage s'effectue sous le contrôle (212) de données d'autorisation d'accès (201, 203, 204) à l'appareil.
4. Procédé selon la revendication 3, caractérisé en ce que les données d'autorisation d'accès (203) sont des données de date et/ou de durée et que le choix entre la bonne et la mauvaise table de transcodage s'effectue par comparaison entre ces données et des données fournies par une horloge (204).
5. Procédé selon la revendication 4, caractérisé en ce que pour modifier les données de date et/ou de durée, on effectue les étapes suivantes
- concaténation d'un mot de passe en cours N et du
numéro de l'appareil protégé (301) pour obtenir une
chaîne de caractère N01 ;
- génération d'un nombre aléatoire formant un mot de
passe suivant N+1 (302) ;
- détermination des données de durée (303)
- élaboration d'un mot de contrôle (304) sur la base
des caractères du mot de passe N, du numéro de
l'appareil, du mot de passe N+1 et des données de
durée ;
- concaténation du mot de passe N+1 des données de
durée, et du mot de contrôle pour obtenir une
chaîne de caractère NO 2 (305) ;;
- transformation combinée de la chaîne de caractère
NO 1 et la chaîne de caractère NO 2 pour obtenir
une chaîne de caractère NO 3 (306) ; cette chaîne
NO 3 formant le code à transmettre à l'appareil
protégé.
6. Procédé selon la revendication 5, caractérisé en ce que, pour prolonger l'autorisation d'accès à l'appareil, on effectue les étapes suivantes
- entrée du code transmis dans l'appareil (401) ;
- concaténation d'un mot de passe en cours N et du
numéro de l'appareil protégé (301) pour obtenir une
chaîne de caractère NO 1 (402) ;
- transformation réciproque combinée de la chaîne de
caractère NO 1 et du code entré ci-dessus (403)
pour extraire un mot de passe futur N+1, une durée
de location future et un mot de contrôle
extrait (404, 405) ;
- élaboration interne d'un mot de contrôle (406) à
partir du mot de passe en cours N (407), du numéro
de l'appareil (408), du mot de passe futur N+1 et
des données de durée de location (404) ;;
- comparaison mot de contrôle élaboré (406) et du mot
de contrôle extrait (409) ;
- en cas de non concordance, déclenchement d'une
erreur (410) ;
- en cas de concordance, introduction de la nouvelle
durée de location (411) et modification du mot de
passe mémorisé dans l'appareil (407).
7. Dispositif pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il comprend un connecteur (504) destiné à venir s'insérer dans le support normal (101) de la mémoire de programme (101), un support (503) destiné à recevoir cette mémoire de programme, des moyens de transcodage (201-219) et des moyens de connexion (501, 502, 506) entre le connecteur de support et les moyens de transcodage.
8. Dispositif selon la revendication 7, caractérisé en ce qu'il comprend au moins une mémoire de transcodage (211).
9. Dispositif selon la revendication 8, caractérisé en ce qu'il comprend en outre une horloge sauvegardée (204).
10. Dispositif selon l'une quelconque des revendications 8 et 9, caractérisé en ce qu'il comprend en outre un microprocesseur (201) et des moyens de mémorisation (203) des données de durée pour pouvoir contrôler la mémoire de transcodage (211).
11. Dispositif selon la revendication 10, caractérisé en ce qu'il comprend en outre des moyens d'interfaçage (213) pour pouvoir modifier les données de la mémoire de transcodage.
12. Dispositif selon l'une quelconque des revendications 7 à 11, caractérisé en ce que le connecteur (504) et le support (503) sont disposés l'un au-dessus de l'autre et surmoulés avec les autres organes (201, 204) pour former un dispositif de petites dimensions qui vient prendre place entre le support normal (101) de la mémoire de programme et celle-ci.
FR9303150A 1993-03-18 1993-03-18 Procédé et dispositif d'autorisation d'accès à un appareil comportant un système informatique d'exploitation. Expired - Fee Related FR2702857B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR9303150A FR2702857B1 (fr) 1993-03-18 1993-03-18 Procédé et dispositif d'autorisation d'accès à un appareil comportant un système informatique d'exploitation.
US08/214,611 US5636281A (en) 1993-03-18 1994-03-17 Method and device to authorize access to an instrument comprising a computerized operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9303150A FR2702857B1 (fr) 1993-03-18 1993-03-18 Procédé et dispositif d'autorisation d'accès à un appareil comportant un système informatique d'exploitation.

Publications (2)

Publication Number Publication Date
FR2702857A1 true FR2702857A1 (fr) 1994-09-23
FR2702857B1 FR2702857B1 (fr) 1995-06-02

Family

ID=9445121

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9303150A Expired - Fee Related FR2702857B1 (fr) 1993-03-18 1993-03-18 Procédé et dispositif d'autorisation d'accès à un appareil comportant un système informatique d'exploitation.

Country Status (2)

Country Link
US (1) US5636281A (fr)
FR (1) FR2702857B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1293485C (zh) * 2003-07-23 2007-01-03 凌阳科技股份有限公司 以资料区块混淆处理来保护资料的处理器装置及方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768372A (en) * 1996-03-13 1998-06-16 Altera Corporation Method and apparatus for securing programming data of a programmable logic device
US20050049801A1 (en) * 1996-07-05 2005-03-03 Stefan Lindberg Analysis system
JPH1137836A (ja) * 1997-07-22 1999-02-12 Tlv Co Ltd 測定機器の使用制限装置
US6684199B1 (en) 1998-05-20 2004-01-27 Recording Industry Association Of America Method for minimizing pirating and/or unauthorized copying and/or unauthorized access of/to data on/from data media including compact discs and digital versatile discs, and system and data media for same
AU4407199A (en) 1998-05-20 1999-12-06 Recording Industry Association Of America Copy protection method using broken modulation rules
US7484081B1 (en) 2000-10-10 2009-01-27 Altera Corporation Method and apparatus for protecting designs in SRAM-based programmable logic devices
US7054761B2 (en) * 2002-01-18 2006-05-30 Spm Instrument Ab Analysis system for analyzing the condition of a machine
EP1474662B1 (fr) * 2002-01-18 2011-07-27 SPM Instrument AB Systemes d'analyse de l'etat d'une machine
US8566616B1 (en) 2004-09-10 2013-10-22 Altera Corporation Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like
US8612772B1 (en) 2004-09-10 2013-12-17 Altera Corporation Security core using soft key
US7253020B2 (en) * 2005-01-04 2007-08-07 Omnivision Technologies, Inc Deuterium alloy process for image sensors
US8484632B2 (en) * 2005-12-22 2013-07-09 Sandisk Technologies Inc. System for program code execution with memory storage controller participation
US8479186B2 (en) * 2005-12-22 2013-07-02 Sandisk Technologies Inc. Method for program code execution with memory storage controller participation
US8566110B2 (en) * 2006-04-13 2013-10-22 Lenovo (Singapore) Pte. Ltd. Method and apparatus for managing user time on a rental computer
EP2450817A1 (fr) * 2010-11-08 2012-05-09 Thomson Licensing Composant électronique avec utilisation limitée dans le temps
FR2969777B1 (fr) * 2010-12-22 2013-01-04 Eads Defence & Security Sys Procede d'activation d'un mecanisme, et dispositif mettant en oeuvre un tel procede.
US8736299B1 (en) 2011-04-29 2014-05-27 Altera Corporation Setting security features of programmable logic devices
US8719957B2 (en) 2011-04-29 2014-05-06 Altera Corporation Systems and methods for detecting and mitigating programmable logic device tampering
US8627105B2 (en) 2011-04-29 2014-01-07 Altera Corporation Method and apparatus for securing programming data of a programmable device
US8461863B2 (en) 2011-04-29 2013-06-11 Altera Corporation Method and apparatus for securing a programmable device using a kill switch
US9026873B2 (en) 2013-07-23 2015-05-05 Altera Coporation Method and apparatus for securing configuration scan chains of a programmable device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0421409A2 (fr) * 1989-10-06 1991-04-10 International Business Machines Corporation Méthode et appareil de securité pour un système de transactions
EP0520228A2 (fr) * 1991-06-20 1992-12-30 Alcatel SEL Aktiengesellschaft Système de traitement de données avec accès protégé

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
US4319079A (en) * 1979-09-13 1982-03-09 Best Robert M Crypto microprocessor using block cipher
US4432207A (en) * 1981-08-06 1984-02-21 General Electric Company Modular catalytic combustion bed support system
FR2523745B1 (fr) * 1982-03-18 1987-06-26 Bull Sa Procede et dispositif de protection d'un logiciel livre par un fournisseur a un utilisateur
FR2536880B1 (fr) * 1982-11-30 1987-05-07 Bull Sa Microprocesseur concu notamment pour executer les algorithmes de calcul d'un systeme de chiffrement a cle publique
JPH083821B2 (ja) * 1985-07-12 1996-01-17 カシオ計算機株式会社 Icカードシステム
JPH0754536B2 (ja) * 1986-02-17 1995-06-07 株式会社日立製作所 Icカ−ド利用システム
FR2599201A1 (fr) * 1986-05-23 1987-11-27 Trt Telecom Radio Electr Dispositif de codage a modulation differentielle par impulsions codees, dispositif de decodage associe et systeme de transmission comportant au moins un tel dispositif de codage ou de decodage
US5148481A (en) * 1989-10-06 1992-09-15 International Business Machines Corporation Transaction system security method and apparatus
FR2666671B1 (fr) * 1990-09-12 1994-08-05 Gemplus Card Int Procede de gestion d'un programme d'application charge dans un support a microcircuit.
IL103062A (en) * 1992-09-04 1996-08-04 Algorithmic Res Ltd Data processor security system
US5317636A (en) * 1992-12-09 1994-05-31 Arris, Inc. Method and apparatus for securing credit card transactions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0421409A2 (fr) * 1989-10-06 1991-04-10 International Business Machines Corporation Méthode et appareil de securité pour un système de transactions
EP0520228A2 (fr) * 1991-06-20 1992-12-30 Alcatel SEL Aktiengesellschaft Système de traitement de données avec accès protégé

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1293485C (zh) * 2003-07-23 2007-01-03 凌阳科技股份有限公司 以资料区块混淆处理来保护资料的处理器装置及方法

Also Published As

Publication number Publication date
FR2702857B1 (fr) 1995-06-02
US5636281A (en) 1997-06-03

Similar Documents

Publication Publication Date Title
FR2702857A1 (fr) Procédé et dispositif d'autorisation d'accès à un appareil comportant un système informatique d'exploitation.
EP0409701B1 (fr) Carte à microcircuit câblé et procédé de transaction entre une carte à microcircuit câblé correspondante et un terminal
CA2051365C (fr) Procede de gestion d'un programme d'application charge dans un support a microcircuit
EP0704081B1 (fr) Procede de controle d'une imprimante et cartouche pour obtenir des affranchissements postaux
EP0670063B1 (fr) Procede et circuit de cryptage et d'authentification pour carte a memoire synchrone
EP0338936B1 (fr) Dispositif portable électronique destiné à être utilisé en liaison avec un écran
EP0089876A1 (fr) Procédé et dispositif de protection d'un logiciel livré par un fournisseur à un utilisateur
FR2689264A1 (fr) Procédé d'authentification accompli entre une carte à circuit intégré et une unité terminale et système prévu dans ce but.
FR2492135A1 (fr) Appareil de distribution d'objets et d'acquisition de services
EP1088288A1 (fr) Procede et systeme d'utilisation d'une carte a microcircuit dans une pluralite d'applications
FR2580842A1 (fr) Transport d'information de securite entre stations electroniques
FR2716021A1 (fr) Procédé et système de transaction par carte à puce.
EP0735489B1 (fr) Procédé de protection de zones de mémoires non volatiles
WO2002005511A1 (fr) Module de securite
WO1990001736A1 (fr) Procede et dispositif de protection et d'universalisation d'un logiciel
FR2670932A1 (fr) Systeme et dispositif de comptabilisation du temps comportant des moyens de generation de codes a des moments calcules par un algorithme secret.
FR2686989A1 (fr) Procede de comptage de securite pour un compteur electronique binaire.
EP0957461B1 (fr) Procédé de personnalisation d'une carte à puce
EP0329497B1 (fr) Système de contrôle de personnes par carte à puces
FR2615638A1 (fr) Dispositif et procede d'habilitation informatique ou telematique
EP0979495B1 (fr) Procede de certification d'un cumul dans un lecteur
FR2745965A1 (fr) Procede d'authentification d'un emetteur au cours d'une communication a un seul sens
EP0956540A1 (fr) Systeme securise de controle d'acces permettant l'invalidation automatique de cles electroniques volees ou perdues et/ou le transfert d'habilitation a produire des cles
WO2001005119A2 (fr) Procede d'acquisition et de reproduction conditionnelle d'une sequence multimedia
FR2707027A1 (en) Electronic and portable device for counting units

Legal Events

Date Code Title Description
ST Notification of lapse