WO1995016246A1 - Carte a memoire et procede de fonctionnement - Google Patents

Carte a memoire et procede de fonctionnement Download PDF

Info

Publication number
WO1995016246A1
WO1995016246A1 PCT/FR1994/001420 FR9401420W WO9516246A1 WO 1995016246 A1 WO1995016246 A1 WO 1995016246A1 FR 9401420 W FR9401420 W FR 9401420W WO 9516246 A1 WO9516246 A1 WO 9516246A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
access
program
read
user memory
Prior art date
Application number
PCT/FR1994/001420
Other languages
English (en)
Inventor
Charles Coulier
Edouard Gordons
Georges Grimonprez
Original Assignee
Gemplus Card International
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=9453651&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO1995016246(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Gemplus Card International filed Critical Gemplus Card International
Priority to DE69404674T priority Critical patent/DE69404674T2/de
Priority to US08/663,166 priority patent/US5963980A/en
Priority to EP95903372A priority patent/EP0733245B1/fr
Publication of WO1995016246A1 publication Critical patent/WO1995016246A1/fr

Links

Classifications

    • 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
    • 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/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/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • 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/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card

Definitions

  • the invention relates to portable integrated circuit cards, also known as smart cards, and it relates more particularly to cards which include both a memory and a microprocessor for executing application programs contained in the memory.
  • an application program is a monetary transaction program for a card intended for a banking application.
  • the general architecture of the integrated circuit chip contained in the card is most often of the type represented in FIG. 1.
  • the microprocessor is designated by the reference CPU and it is connected to "a link bus, which is connected in addition to the memories of the card. These memories can be of different types and most often memories of different types are present simultaneously in the integrated circuit.
  • ROM MSYS read-only memory
  • EPROM electrically programmable
  • EEPROM electrically erasable
  • RAM volatile working memory MT
  • the integrated circuit also includes a COM circuit for communication (generally serial) between the microprocessor and an I / O input / output terminal of the integrated circuit, for exchanges with the outside of the smart card.
  • the other terminals of the integrated circuit can conventionally be supply terminals (VCC, GND), a clock terminal (CLK), an initialization terminal (RST), etc.
  • VCC supply terminals
  • GND clock terminal
  • RST initialization terminal
  • the functions of the terminals present depend on the communication protocols used.
  • the general architecture of the integrated circuit may also include security devices DS.
  • the various memories can, subject to the conditions indicated below, be accessible by the microprocessor CPU to perform operations for - reading the content of a determined address
  • the MSYS read-only memory can be called system memory because of the basic operating programs it contains, which all application programs must use in order for the card to function. It is the central software core of the card. It is immutable, and that is why it is made in a non-modifiable read-only memory technology.
  • the information and programs it contains are confidential (most often, the manufacturer of the chip does not want the programs of the card's operating system to be known). This memory is therefore not at all accessible in writing, and we wish it not to be in reading either. It is of course accessible in
  • the non-volatile memory MU contains modifiable data and programs. We can call it "memory user "because it contains data and programs specific to an application that interests the user. But the data they contain is more or less confidential in nature, and that is why we most often wish to divide this memory in more or less reserved access zones: zones accessible in writing but not in reading, or accessible in reading but not in writing, or zones completely accessible or completely inaccessible. In addition certain zones must be able to contain executable program instructions by the microprocessor of the card while other zones must not be able to contain such instructions.
  • the working memory MT contains provisional data, which can result from the execution of the programs of the operating system or the programs of In general, all areas of the working memory can be read, written, and executed. we.
  • the different memories of the smart card therefore require different access authorizations from one another.
  • certain smart card circuits are equipped with a "security matrix": this is a protection circuit which controls access to such and such a memory area in function of the requested operation (read, write, instruction execution). This circuit receives the address at which the operation must be performed, and provides an authorization or prohibition signal to execute the requested operation.
  • this security matrix prohibits access • (for a requested operation) on all the memory considered, but one can imagine that this matrix is more complex and prohibits or authorizes the operation for limited areas of the memory considered. This is increasingly true with the increase in user memory sizes.
  • the advantage of such a device is to prohibit the reading of an operating system (developed by the manufacturer of the card) by an application program executing in the user memory MU (program developed by a manager of application: for example a bank in the case of a bank card). Likewise, it is possible to prohibit the reading by the user of programs developed by the manager of the application.
  • the security matrix when it exists, has the disadvantage of being fixed once and for all. If it were not, there would be a risk of circumventing the access bans it established.
  • the working memory MT contains mixed data originating from the two types which is a drawback for the security of the operating system data.
  • circuits not equipped with a security matrix are fragile in the face of malicious attacks.
  • the contents of the read-only memory (operating system) can be read before the personalization stage of the card by personal application data, if important precautions are not taken. At this stage, it suffices to place in the user memory a program for systematic reading of the content of the read-only memory and of transferring this content outside the circuit.
  • operating systems constitute a set of processing operations dedicated to certain applications (example: bank card, or radiotelephone card) and having the function of facilitating the development as well as the execution of specific application programs.
  • the designers of these application programs (more and more numerous) have more and more demanding requirements in terms of functionality of the card. It is then necessary to develop, around a fixed operating system, the desired functionalities; these functionalities are placed in user memory.
  • the programs which bring these functionalities are functional additions to the basic system and must not interfere with the data structures managed by the operating system.
  • the invention aims to provide memory cards with microprocessor having good security against unwanted access attempts to certain parts of memory, and great flexibility in the management of this security.
  • a microprocessor memory card comprising at least one read only memory. system containing programs of an operating system, and a non-volatile user memory containing data and programs relating to at least one application of the memory card, characterized in that the read-only memory or the user memory comprises a program interpreter for the execution of the memory access instructions of the application programs, in that, for this purpose, the instructions of access to any address of one of the memories of the card, instructions present in an application program of the user memory, are of interpretable type and cannot be executed directly, and are capable of triggering the execution by the interpreter of an interpretation subroutine comprising: examination of a control zone in the user memory, this zone defining the access authorizations to the different memories, comparison between the access instruction requested for a given address and the authorization c corresponding given in the control zone, and execution of the access instruction only if the authorization exists for the type of access requested and for the address requested.
  • the application programs may themselves protect their operation, so that if several application programs are present, memory areas may be reserved for them so that there is no interference, whether reading, writing or executing, between the different programs.
  • the invention also provides a method of operating a smart card with microprocessor, for executing application programs contained in a user memory by using the operating system programs contained in a system read-only memory, characterized in that any instruction to access a memory of the card, instruction contained in an application program in user memory, is interpreted by an interpretation subroutine contained in the system read-only memory (or possibly in user memory), this subroutine performing access control according to the requested instruction, from access authorization data contained at least in part in a reserved area of the user memory.
  • FIG. 1 already described, represents the general structure of an integrated circuit of memory card with microprocessor
  • FIG. 2 represents the general organization of the memories in an example of implementation of
  • the invention; - Figure 3 shows an access authorization table contained in the reserved area of the user memory.
  • the executable instruction is a logic code supplied to the microprocessor and which directly controls the various circuits and registers of the microprocessor.
  • the interpretable instruction is an instruction controlled by an interpreter program, which, like a processor, reads the current instruction, decodes it, then executes it.
  • the interpreter program can perform these three actions on all interpretable language instructions.
  • the application programs present in the non-volatile user memory are written in an interpretable language, the interpreter preferably being in the system read-only memory.
  • the first step in implementing the invention consists in defining, for each user program, the access zones to be controlled.
  • this program will have the possibility of reading access to such memory areas, writing to such others, and execution to such others.
  • a kind of "security matrix” but this matrix is not at all fixed and is not physically present other than in the form of a memory area reserved in the user memory.
  • the contents of this zone can be modified, but the zone is in principle in a fixed location.
  • the user memory will therefore comprise, on the one hand, application program zones, and on the other hand a reserved access control zone.
  • loading will of course be done via the operating system.
  • a loading program is therefore provided in the operating system. In practice, this is a loading and unloading program since it may also be necessary to delete old programs which are no longer useful (replacement of a version of an application by an updated version).
  • the loading program has the function
  • This access area depends in part on the loaded application program: depending on the needs of this program, various access authorizations can be established. But it also depends on the operating system: there is no question that the application program indicates that it needs to read or write to system memory.
  • the activation of the loading or unloading program is preferably subject to the condition of presentation of a secret authorization code authorizing its implementation. Code verification is performed by an operating system routine in read-only memory.
  • the loading program therefore writes the application program in the program zones of the user memory, and the access authorizations in a reserved zone of this same memory.
  • the unloading program clears the program zones and modifies the content of the reserved zone.
  • the reserved zone is preferably a precise location of the user memory, always the same since it is the frozen operating system of the card which must know where it is and what is its length in order to be able to explore it during the use.
  • the access permissions installed in this reserved area can be grouped according to the programs that require access controls. For example, we can successively find in the reserved area the permissions relating to the operating system, then those relating to a first PGl application program, then those of a second PG2 application program, etc.
  • FIG. 2 represents the general organization of the memories of the card.
  • various areas such as a zone Z1 and a zone Z2 have been represented in the working memory MT.
  • a reserved zone ZR has been represented, zones containing application programs, ZPG1, ZPG2, ZPG3, and various other zones, for example Z3, Z4.
  • the read only memory designated by ROM
  • a ZSYS zone for the operating system
  • other read only memory zones such as a zone Z5.
  • FIG. 3 shows an example of the general structure of the reserved area, in relation to the memory areas defined in the previous figure.
  • the various memories are indicated online: MSYS for the system read-only memory, MU for the user memory, MT for the working memory.
  • MSYS for the system read-only memory
  • MU for the user memory
  • MT for the working memory.
  • the various programs concerned SYS, INTERPRETER for the operating system, including the programs for loading unloading and the programs for interpreting access instructions, PG1, PG2, PG3 for the different application programs.
  • SYS SYS
  • INTERPRETER for the operating system, including the programs for loading unloading and the programs for interpreting access instructions
  • PG1, PG2, PG3 for the different application programs.
  • the authorized accesses are indicated, in the form of an authorized access nature (L for reading, E for writing, X for execution of instructions) and an area (or more) for which this type of access is authorized during the course of a specific program.
  • (L, E) / Z3 at the intersection of the line MU and the column PG1 signifies that during the execution of the program PGl, the area Z3 of the user memory is accessible in read and write.
  • the indication (L, E) / MU at the crossroads of the line MU and the column SYS means that for the execution of the programs of the system, all the user memory MU is accessible in read and write. It will be understood that the table in this figure 3 could be much more detailed and complex than the simple example given. For example, it can be provided that the column SYS is divided into several columns with different accesses: the write access in the reserved zone ZR can be authorized only for the execution of the loading / unloading programs contained in a part only ROM memory.
  • the program PG1 the execution of which is initiated by the system can for example read and write in the areas Z1 and Z3 of the memory RAM and the memory MU respectively, and it can directly execute instructions contained in the area Z5 of the memory ROM.
  • This zone Z5 contains, for example, various routines made available to the application programs (communication routines, various algorithms, etc.). Access to these routines is fully controlled by the access instruction interpreter contained in the ROM memory, thanks to the indications provided in the reserved zone ZR.
  • the access table can operate in a transitive manner, that is to say that if the program PG1 has an authorization to execute the program PG2, therefore the authorization to execute (X) under control of 1 ' interpreter all the instructions contained in the PG2 program area, so during this execution it has the same access permissions as the PG2 program.
  • the access instruction interpreter which is part of the operating system and which uses the content of the reserved area, constitutes an interface essential software between application programs and hardware. Consequently, one can perfectly master all the read and write access and execution of all the memory parts (dead, non-volatile or volatile).
  • the interpreter positions itself in the reserved area. It scans the values of this zone while checking the validity of the access for the instruction being executed and for the program considered. In the event of an access violation attempt, the interpreter establishes error instructions whose function (error indication, message, blocking of operation, removal of authorization, etc.) may vary depending on the severity of the attempted violation.
  • the interpreter takes account of the indications of address indirection possibly implied by the requested access instruction.
  • the interpreter is preferably designed to detect non-executable code. If it finds non-executable code, it can, as a precaution, stop the execution of the current program.
  • the example which follows will make it possible to better understand the principles of implementation of the invention. It is assumed that the requested access instruction is a transfer instruction, to a pseudo-register R0, of a two-byte word, the first of which is pointed to in memory space by another pseudo-register R7.
  • the mnemonic code of this instruction could be for example: M0V. (R7), R0.
  • the word to be transferred is therefore the word constituted by the combination of the bytes contained at the addresses 1000 and 1001 of the memory. These addresses correspond, for example, to a portion of user memory, but it could be read only memory or working memory.
  • the interpretable instruction MOV then points to a routine of the interpreter, at a predetermined address of the read-only memory MSYS.
  • This routine is a routine of executable instructions; it begins by exploring the reserved memory area ZR to see if the read access of the addresses 1000 and 1001 is authorized for the program being executed. If so, it performs the work by placing the word read in the pseudo-register R0; otherwise, it interrupts the course of the investigation.
  • the operations to be followed in the event of an interruption are preprogrammed in system memory. They can consist of error messages and return to other routines.
  • the requested access instruction is a transfer instruction, to a memory address pointed to by a pseudo-register R0, of a two-byte word, the first of which is pointed to by the pseudo-register R7.
  • the mnemonic code of this instruction could be for example: MOV.W (R7), (R0).
  • the word to be transferred is still the word constituted by the combination of the bytes contained at the addresses 1000 and 1001 of the memory.
  • the interpreter verifies as before that read access is authorized for addresses 1000 and 1001 for the program executed. But it also verifies that the address contained in the register R0 is an address authorized in writing. For the proper functioning of the process, it will be understood that it is desirable for the interpreter to know at all times whether he is executing an application program (and in principle he must even know which one is precisely running) or the loader program. / unloader who alone is authorized to register in the reserved area.
  • Reading the ordinal counter of the microprocessor must make it possible to determine which program is running. For example, when the state of the ordinal counter corresponds to the execution of the loading program, all the addresses of the user memory are made accessible, making it possible to write a program in this memory and to write the access data in the ZR reserved area.
  • the reserved zone can contain information of the type "address for loading the application program", that is to say address of the first instruction of this program; it can also contain a length data (number of instructions) of the program.
  • the zone declarations that can be used by this program, in read, write and execute.
  • the loading program with the aid of which the reserved area will be updated, checks that the areas declared accessible by the application program do not include the reserved area itself. Otherwise, reading or modifying the content of this area would still be possible from an application program.
  • the interpreter performs a complete check of the content of the reserved area when it is updated. It is moreover desirable to have managed, by an authority which is responsible for it, the loading of all the application programs.
  • the reserved area also contains indications other than relating to the access of such or such memory space.
  • this area can contain information relating to hardware-type program interrupts.
  • the program PG1 can be interrupted by hardware interrupts II and 12, but not by other types of interrupts. It is understood that the flexibility of application programs is further increased: there is no need to systematically provide the same hardware interruptions for all application programs.
  • the interpreter contains low-level program routines, it is conceivable that the reserved area contains information on the routines whose use is authorized and those whose use is not authorized.

Abstract

L'invention concerne les cartes à mémoire. Les cartes à microprocesseur utilisent des programmes applicatifs contenus dans une mémoire utilisateur non-volatile (MU), sous le contrôle d'un système d'exploitation en mémoire morte (MSYS). Pour apporter une souplesse et une sécurité d'accès aux diverses zones de mémoire sans utiliser une circuiterie spécifique figée, l'invention propose que les instructions d'accès mémoire des programmes applicatifs (PG1, PG2, PG3) soient interprétées et non exécutées directement; l'interpréteur est dans la mémoire morte (MSYS) ou dans la mémoire utilisateur, et il exécute une instruction d'accès de la manière suivante: il explore une zone réservée (ZR) de la mémoire utilisateur pour déterminer si l'accès demandé (lecture, écriture, exécution) est autorisé pour l'adresse demandée; et il n'exécute l'instruction que si l'autorisation est présente. La zone réservée (ZR) qui contient ces autorisations est mise à jour lors de l'écriture en mémoire utilisateur d'un nouveau programme applicatif. La mise à jour ne peut se faire que par le système d'exploitation.

Description

CARTE A MEMOIRE ET PROCEDE DE FONCTIONNEMENT
L'invention concerne les cartes portatives à circuit intégré, également connues sous le nom de cartes à puces, et elle concerne plus particulièrement les cartes qui comportent à la fois une mémoire et un microprocesseur pour exécuter des programmes d'application contenus dans la mémoire. A titre d'exemple un programme d'application est un programme de transaction monétaire pour une carte destinée à une application bancaire. L'architecture générale de la puce de circuit intégré contenue dans la carte est le plus souvent du type représenté à la figure 1. Le microprocesseur est désigné par la référence CPU et il est connecté à"un bus de liaison, lequel est relié par ailleurs aux mémoires de la carte. Ces mémoires peuvent être de différents types et le plus souvent des mémoires de différents types sont présentes simultanément dans le circuit intégré. En particulier, il peut y avoir une mémoire morte (ROM) MSYS pour contenir notamment les programmes fixes constituant le système d'exploitation général de la carte; une mémoire MU non volatile, programmable électriquement (EPROM) et éventuellement effaçable électriquement (EEPROM) , pour contenir par exemple des programmes applicatifs et des données à conserver d'une session d'utilisation à une autre; et enfin une mémoire volatile MT de travail (RAM) contenant des données et des portions de programmes utiles pendant l'exécution des programmes applicatifs mais qui ne sont pas conservés lorsque la carte n'est pas utilisée. Le circuit intégré comporte encore un circuit COM pour la communication (en général série) entre le microprocesseur et une borne d'entrée/sortie I/O du circuit intégré, en vue d'échanges avec l'extérieur de la carte à puce. Les autres bornes du circuit intégré peuvent être classiquement des bornes d'alimentation (VCC, GND) , une borne d'horloge (CLK) , une borne d'initialisation (RST) , etc. Les fonctions des bornes présentes dépendent des protocoles de communication utilisés. L'architecture générale du circuit intégré peut encore comporter des dispositifs de sécurité DS.
Les différentes mémoires peuvent, sous certaines réserves indiquées ci-après, être accessibles par le microprocesseur CPU pour effectuer des opérations de - lecture du contenu d'une adresse déterminée
- écriture à une adresse déterminée
- exécution par le microprocesseur de la carte d'une instruction contenue à une adresse déterminée.
La mémoire morte MSYS peut être appelée mémoire de système en raison des programmes de fonctionnement fondamentaux qu'elle contient, auxquels tous les programmes d'application quels qu'ils soient doivent faire appel pour que la carte fonctionne. C'est le noyau central logiciel de la carte. Il est immuable, et c'est pourquoi il est réalisé dans une technologie de mémoire morte non modifiable. Les informations et programmes qu'elle contient sont de type confidentiel (le plus souvent, le fabricant de la puce ne souhaite pas que les programmes du système d'exploitation de la carte soient connus) . Cette mémoire n'est donc pas du tout accessible en écriture, et on souhaite qu'elle ne le soit pas en lecture non plus. Elle est bien entendu accessible en
"exécution" d'instructions.
La mémoire non volatile MU contient des données et des programmes modifiables. On peut l'appeler "mémoire utilisateur" du fait qu'elle contient des données et programmes spécifiques d'une application qui intéresse l'utilisateur. Mais les données qu'elles contient sont de nature plus ou moins confidentielle, et c'est pourquoi on souhaite le plus souvent diviser cette mémoire en zones d'accès plus ou moins réservé : zones accessibles en écriture mais pas en lecture, ou accessibles en lecture mais pas en écriture, ou encore zones complètement accessibles ou complètement inaccessibles. De plus certaines zones doivent pouvoir contenir des instructions de programme exécutables par le microprocesseur de la carte tandis que d'autres zones ne doivent pas pouvoir contenir de telles instructions. La mémoire de travail MT contient des données provisoires, qui peuvent résulter de l'exécution des programmes du système d'exploitation ou des programmes d'application. En règle générale, toutes les zones de la mémoire de travail sont accessibles en lecture, en écriture, et en exécution.
Les différentes mémoires de la carte à puce nécessitent donc des autorisations d'accès différentes les unes des autres.
Pour contrôler ces différentes autorisations d'accès, certains circuits de carte à puce sont équipés d'une "matrice de sécurité" : il s'agit d'un circuit de protection qui contrôle l'accès à telle ou telle zone de mémoire en fonction de l'opération demandée (lecture, écriture, exécution d'instruction). Ce circuit reçoit l'adresse à laquelle doit être effectuée l'opération, et fournit un signal d'autorisation ou interdiction d'exécution de l'opération demandée.
En règle générale, cette matrice de sécurité interdit les accès (pour une opération demandée) sur toute la mémoire considérée, mais on peut imaginer que cette matrice soit plus complexe et interdise ou autorise l'opération pour des zones limitées de la mémoire considérée. Ceci est de plus en plus vrai avec l'augmentation des tailles de mémoire utilisateur.
L'avantage d'un tel dispositif est d'interdire la lecture d'un système d'exploitation (développé par le fabricant de la carte) par un programme applicatif s'exécutant dans la mémoire utilisateur MU (programme développé par un gestionnaire d'application : par exemple une banque dans le cas d'une carte bancaire). De même, on peut interdire la lecture par l'utilisateur de programmes développés par le gestionnaire de 1'application. La matrice de sécurité, lorsqu'elle existe, a l'inconvénient d'être fixée une fois pour toutes. Si elle ne l'était pas il y aurait des risques de contournement des interdictions d'accès qu'elle établit.
On notera qu'il n'y a pas, dans la mémoire de travail MT, de zone réservée aux besoins du système d'exploitation et de zone réservée aux besoins des programmes applicatifs : la mémoire de travail contient des données mélangées issues des deux types de programme, ce qui est un inconvénient pour la sécurité des données du système d'exploitation.
Par ailleurs, les circuits non équipés de matrice de sécurité sont fragiles face à des attaques malveillantes. La lecture du contenu de la mémoire morte (système d'exploitation) peut être faite avant l'étape de personnalisation de la carte par des données personnelles d'application, si des précautions importantes ne sont pas prises. Il suffit en effet à ce stade de placer dans la mémoire utilisateur un programme de lecture systématique du contenu de la mémoire morte et de transfert de ce contenu à l'extérieur du circuit. Actuellement, les systèmes d'exploitation constituent un ensemble de traitements dédiés à certaines application (exemple : carte bancaire, ou carte de radiotéléphone) et ayant pour fonction de faciliter le développement ainsi que l'exécution de programmes d'application spécifiques. Les concepteurs de ces programmes d'application (de plus en plus nombreux) ont des exigences de plus en plus pointues en termes de fonctionnalité de la carte. Il faut alors développer, autour d'un système d'exploitation figé, les fonctionnalités souhaitées; ces fonctionnalités sont placées en mémoire utilisateur. Les programmes qui apportent ces fonctionnalités sont des ajouts fonctionnels au système de base et ne doivent pas interférer avec les structures de données gérées par le système d'exploitation.
Les développements spécifiques futurs vont probablement requérir de plus en plus une plus large ouverture des systèmes d'exploitation, une séparation claire entre le système d'exploitation et les programmes applicatifs, et une protection adaptable et efficace des programmes et des données propres à chaque programme.
De manière générale, l'invention a pour but de proposer des cartes à mémoire à microprocesseur présentant une bonne sécurité contre les tentatives d'accès indésirables à certaines parties de mémoire, et une large souplesse dans la gestion de cette sécurité.
Elle permet en outre d'être mise en oeuvre à partir de micro-circuits existant sans aucune modification matérielle de ces microcircuits car les modifications d'un circuit entraînent des coûts de fabrication important.
Selon l'invention, on propose une carte à mémoire à microprocesseur, comportant au moins une mémoire morte de système contenant des programmes d'un système d'exploitation, et une mémoire utilisateur non volatile contenant des données et programmes relatifs à au moins une application de la carte à mémoire, caractérisé en ce que la mémoire morte ou la mémoire utilisateur comporte un programme interpréteur pour 1'exécution des instructions d'accès mémoire des programmes applicatifs, en ce que, à cet effet, les instructions d'accès à une adresse quelconque d'une des mémoires de la carte, instructions présentes dans un programme d'application de la mémoire utilisateur, sont de type interprétable et non exécutable directement, et sont aptes à déclencher l'exécution par l'interpréteur d'un sous-programme d'interprétation comportant : examen d'une zone de contrôle dans la mémoire utilisateur, cette zone définissant les autorisations d'accès aux différentes mémoires, comparaison entre l'instruction d'accès demandée pour une adresse déterminée et 1'autorisation correspondante donnée dans la zone de contrôle, et exécution de l'instruction d'accès uniquement si l'autorisation existe pour le type d'accès demandé et pour l'adresse demandée.
Certaines instructions du système d'exploitation lui-même pourraient être interprétées par le programme interpréteur.
En résumé par conséquent, un programme nommé "interpréteur", de préférence en mémoire morte mais pouvant éventuellement être en mémoire utilisateur, interprète obligatoirement les instructions d'accès à n'importe quelle mémoire (système, utilisateur, travail) de sorte que le programme d'application ne peut pas accéder à ces adresses sans un contrôle exercé par le programme interpréteur.
Il en résulte d'abord que l'accès en lecture des programmes sera très facilement protégé : l'interpréteur pourra facilement interdire d'écrire dans la zone de contrôle des autorisations d'accès à des zones de mémoire système.
De plus, les programmes d'application pourront eux-mêmes protéger leur fonctionnement, de sorte que si plusieurs programmes d'application sont présents, des zones de mémoire pourront leur être réservées de manière qu'il n'y ait pas d'interférence, que ce soit en lecture, en écriture ou en exécution, entre les différents programmes.
Par conséquent, l'invention propose également un procédé de fonctionnement de carte à mémoire à microprocesseur, pour exécuter des programmes d'application contenus dans une mémoire utilisateur en utilisant les programmes de système d'exploitation contenus dans une mémoire morte de système, caractérisé en ce que toute instruction d'accès à une mémoire de la carte, instruction contenue dans un programme applicatif en mémoire utilisateur, est interprétée par un sous-programme d'interprétation contenu dans la mémoire morte de système (ou éventuellement en mémoire utilisateur) , ce sous-programme effectuant un contrôle d'accès selon l'instruction demandée, à partir de données d'autorisation d'accès contenues au moins en partie dans une zone réservée de la mémoire utilisateur.
Parmi les avantages de l'invention, il y a la possibilité de permettre un partage des ressources mémoires entre plusieurs programmes résidants (exécutés dans une même session) , ce partage étant parfaitement contrôlé par le programme interpréteur.
D'autres caractéristiques et avantages de 1 ' invention apparaîtront à la lecture de la description détaille qui suit et qui est faite en référence aux dessins annexés dans lesquels : la figure 1, déjà décrite, représente la structure générale d'un circuit intégré de carte à mémoire à microprocesseur;
- la figure 2 représente l'organisation générale des mémoires dans un exemple de mise en oeuvre de
1'invention; - la figure 3 représente une table d'autorisations d'accès contenue dans la zone réservée de la mémoire utilisateur.
On rappelle la différence entre une instruction exécutable et une instruction interprétable : 1' instruction exécutable est un code logique fourni au microprocesseur et qui commande directement les divers circuits et registres du microprocesseur. L'instruction interprétable est une instruction pilotée par un programme interpréteur, qui, tout comme un processeur, lit l'instruction courante, la décode, puis l'exécute. Le programme interpréteur peut effectuer ces trois actions sur toutes les instructions de langage interprétable. Selon l'invention, on verra que les programmes d'application présents dans la mémoire utilisateur non volatile sont écrits dans un langage interprétable, l'interpréteur étant de préférence dans la mémoire morte de système. La première étape de mise en oeuvre de l'invention consiste à définir, pour chaque programme utilisateur, les zones d'accès à contrôler. Par exemple, ce programme aura la possibilité d'accéder en lecture à telles zones de mémoire, en écriture à telles autres, et en exécution à telles autres encore. On constitue ainsi, pour ce programme une sorte de "matrice de sécurité" , mais cette matrice n'est pas du tout figée et n'est pas physiquement présente autrement que sous la forme d'une zone de mémoire réservée dans la mémoire utilisateur. Le contenu de cette zone est modifiable, mais la zone est en principe à un emplacement fixe.
La mémoire utilisateur comportera donc d'une part des zones de programmes d'application, et d'autre part une zone réservée de contrôle d'accès.
Lorsque le programme d'application sera chargé dans la mémoire utilisateur (inscription en mémoire non volatile EPROM ou EEPROM) , le chargement sera fait bien entendu par l'intermédiaire du système d'exploitation. Un programme de chargement est donc prévu dans le système d'exploitation. En pratique il s'agit d'un programme de chargement et déchargement puisqu'il peut être nécessaire aussi de supprimer des programmes anciens qui ne sont plus utiles (remplacement d'une version d'une application par une version mise à jour) . Le programme de chargement a pour fonction
- d'écrire le programme d'application dans une zone de mémoire utilisateur, et d'écrire dans la zone réservée de contrôle d'accès des informations relatives aux différentes autorisations d'accès souhaitées pendant l'exécution du programme d'application chargé.
Le contenu de cette zone d'accès dépend en partie du programme d'application chargé : en fonction des besoins de ce programme des autorisations d'accès diverses pourront être établies. Mais il dépend aussi du système d'exploitation : il n'est pas question que le programme d'application indique qu'il a besoin de lire ou écrire dans la mémoire de système.
Etant donné que le programme de chargement fait partie du système d'exploitation en mémoire morte, on comprend que ce programme établira lui-même les interdictions de plus haut niveau : interdiction absolue de lire le contenu de la mémoire de système d'exploitation; interdiction d'écrire dans la zone réservée elle-même sauf pendant le déroulement du programme de chargement ou déchargement (ce déroulement étant repéré par l'état du compteur ordinal du système d'exploitation et cet état . pouvant constituer un des éléments constitutifs des autorisations d'accès).
L'activation du programme de chargement ou déchargement est de préférence soumis à la condition de présentation d'un code d'habilitation secret autorisant sa mise en oeuvre. La vérification du code est effectuée par une routine du système d'exploitation en mémoire morte.
Le programme de chargement écrit donc le programme d'application dans les zones de programme de la mémoire utilisateur, et les autorisations d'accès dans une zone réservée de cette même mémoire. Le programme de déchargement efface les zones de programme et modifie le contenu de la zone réservée.
La zone réservée est de préférence un emplacement précis de la mémoire utilisateur, toujours le même puisque c'est le système d'exploitation figé de la carte qui doit savoir où elle est et quelle est sa longueur pour pouvoir l'explorer lors de l'utilisation.
Les autorisations d'accès installées dans cette zone réservée peuvent être regroupées en fonction des programmes qui nécessitent les contrôles d'accès. Par exemple, on peut rencontrer successivement dans la zone réservée les autorisations relatives au système d'exploitation, puis celles relatives à un premier programme d'application PGl, puis celles d'un deuxième programme d'application PG2, etc.
La figure 2 représente l'organisation générale des mémoires de la carte. A titre d'exemple, on a représenté dans la mémoire de travail MT diverses zones telles qu'une zone Zl et une zone Z2. Dans la mémoire utilisateur MU, on a représenté une zone réservée ZR, des zones contenant des programmes d'application, ZPG1, ZPG2, ZPG3, et diverses autres zones, par exemple Z3, Z4. Enfin, dans la mémoire morte (désignée par ROM) on a représenté une zone ZSYS pour le système d'exploitation, et d'autres zones de mémoire morte telles qu'une zone Z5.
La figure 3 représente un exemple de structure générale de la zone réservée, en relation avec les zones de mémoire définies à la figure précédente. En ligne sont indiquées les différentes mémoires : MSYS pour la mémoire morte de système, MU pour la mémoire utilisateur, MT pour la mémoire de travail. En colonnes sont indiqués les différents programmes concernés : SYS, INTERPRETEUR pour le système d'exploitation, incluant les programmes de chargement déchargement et les programmes d'interprétation des instructions d'accès, PGl, PG2, PG3 pour les programmes applicatifs différents. Enfin, dans le tableau au croisement d'une ligne et d'une colonne, on a indiqué les accès autorisés, sous forme d'une nature d'accès autorisée (L pour lecture, E pour écriture, X pour exécution d'instruction) et d'une zone (ou plusieurs) pour laquelle cette nature d'accès est autorisée lors du déroulement d'un programme déterminé.
Par exemple, (L,E)/Z3 au carrefour de la ligne MU et de la colonne PGl, signifie que lors de l'exécution du programme PGl, la zone Z3 de la mémoire utilisateur est accessible en lecture et en écriture. L'indication (L,E)/MU au carrefour de la ligne MU et de la colonne SYS signifie que pour l'exécution des programmes du système, toute la mémoire utilisateur MU est accessible en lecture et en écriture. On comprendra que le tableau de cette figure 3 pourrait être beaucoup plus détaillé et complexe que l'exemple simple donné. Par exemple, on peut prévoir que la colonne SYS est divisée en plusieurs colonnes avec des accès différents : l'accès en écriture dans la zone réservée ZR peut n'être autorisé que pour 1'exécution des programmes de chargement/déchargement contenus dans une partie seulement de la mémoire ROM.
Le programme PGl, dont l'exécution est initiée par le système peut par exemple lire et écrire dans les zones Zl et Z3 de la mémoire RAM et la mémoire MU respectivement, et il peut exécuter directement des instructions contenues dans la zone Z5 de la mémoire ROM. Cette zone Z5 contient par exemple des routines diverses mises à la disposition des programmes d'application (routines de communication, algorithmes divers,...). L'accès à ces routines est entièrement contrôlé par l'interpréteur d'instructions d'accès contenu dans la mémoire ROM, ceci grâce aux indications fournies dans la zone réservée ZR. On notera que le tableau des accès peut fonctionner de manière transitive, c'est-à-dire que si le programme PGl a une autorisation d'exécuter le programme PG2, donc l'autorisation d'exécuter (X) sous contrôle de 1' interpréteur toutes les instructions contenues dans la zone de programme PG2, alors il a pendant cette exécution les mêmes autorisations d'accès que le programme PG2.
L'interpréteur d'instructions d'accès, qui fait partie du système d'exploitation et qui utilise le contenu de la zone réservée, constitue une interface logicielle incontournable entre les programmes applicatifs et le matériel. Par conséquent, on peut parfaitement maîtriser tous les accès en lecture écriture et exécution de toutes les parties de mémoire (morte, non volatile ou volatile) .
Les programmes applicatifs, et surtout celles des instructions de programme qui sont des instructions d'accès en mémoire, sont établis dans un langage interprétable dont les instructions sont un peu analogues à celles des microprocesseurs.
A chaque instruction d'accès en lecture ou écriture, l'interpréteur se positionne dans la zone réservée. Il balaye les valeurs de cette zone en contrôlant la validité de l'accès pour l'instruction en cours d'exécution et pour le programme considéré. Dans le cas de tentative de violation d'accès, l'interpréteur établit des instructions d'erreur dont la fonction (indication d'erreur, message, blocage de fonctionnement, suppression d'habilitation, etc.) peut varier en fonction de la gravité de la tentative de violation.
On notera que 1' interpréteur tient compte des indications d' indirection d'adresse éventuellement impliquées par l'instruction d'accès demandée. De plus, 1'interpréteur est de préférence conçu de manière à détecter du code non exécutable. S'il trouve du code non exécutable, il peut, par précaution, arrêter l'exécution du programme en cours. L'exemple qui suit permettra de mieux comprendre les principes de mise en oeuvre de l'invention. On suppose que l'instruction d'accès demandé est une instruction de transfert, vers un pseudo-registre R0, d'un mot de deux octets dont le premier est pointé dans l'espace mémoire par un autre pseudo-registre R7. Le code mnémonique de cette instructions pourrait être par exemple : M0V. (R7) ,R0.
Supposons que le contenu du registre R7 soit une adresse 1000. Le mot à transférer est donc le mot constitué par la combinaison des octets contenus aux adresses 1000 et 1001 de la mémoire. Ces adresses correspondent par exemple à une portion de la mémoire utilisateur, mais ce pourrait être la mémoire morte ou la mémoire de travail.
L'instruction interprétable MOV pointe alors vers une routine de l'interpréteur, à une adresse prédéterminée de la mémoire morte MSYS. Cette routine est une routine d'instructions exécutables; elle commence par explorer la zone de mémoire réservée ZR pour voir si l'accès en lecture des adresses 1000 et 1001 est autorisé pour le programme en cours d'exécution. Si oui, elle exécute le travail en plaçant le mot lu dans le pseudo-registre R0; sinon, elle interrompt le déroulement de l'instruction. Les opérations qui doivent suivre en cas d'interruption sont préprogrammées dans la mémoire de système. Elles peuvent consister en des messages d'erreur et retour à d'autres routines. Un autre exemple peut être donné : l'instruction d'accès demandé est une instruction de transfert, vers une adresse de mémoire pointée par un pseudo-registre R0, d'un mot de deux octets dont le premier est pointé par le pseudo-registre R7. Le code mnémonique de cette instructions pourrait être par exemple : MOV.W(R7) , (R0) .
Si le contenu du registre R7 est une adresse 1000, le mot à transférer est encore le mot constitué par la combinaison des octets contenus aux adresses 1000 et 1001 de la mémoire. L'interpréteur vérifie comme précédemment que 1 'accès en lecture est autorisé pour les adresses 1000 et 1001 pour le programme exécuté. Mais il vérifie aussi que l'adresse contenue dans le registre R0 est une adresse autorisée en écriture. Pour le bon fonctionnement du procédé, on comprendra qu'il est souhaitable que l'interpréteur sache à tout moment s'il exécute un programme applicatif (et en principe il doit même savoir lequel est précisément en cours d'exécution) ou le programme chargeur/déchargeur qui seul est habilité à une inscription dans la zone réservée.
La lecture du compteur ordinal du microprocesseur doit permettre de déterminer quel est le programme en cours. Par exemple, lorsque l'état du compteur ordinal correspond à l'exécution du programme de chargement, on rend accessible toutes les adresses de la mémoire utilisateur, rendant possible une écriture de programme dans cette mémoire et une écriture des données d'accès dans la zone réservée ZR. La zone réservée peut contenir des informations du type "adresse de chargement du programme applicatif", c'est-à-dire adresse de la première instruction de ce programme; elle peut contenir aussi une donnée de longueur (nombre d'instructions) du programme. Viennent ensuite les déclarations de zones utilisables par ce programme, en lecture, écriture et exécution. Bien entendu, le programme de chargement, à l'aide duquel on va mettre à jour la zone réservée, vérifie que les zones déclarées accessibles par le programme applicatif ne comportent pas la zone réservée elle-même. Faute de quoi la lecture ou la modification du contenu de cette zone resterait possible à partir d'un programme applicatif.
Lors de la mise à jour de la zone réservée, on peut envisager de contrôler le contenu des déclarations données par l'autorité (celle qui gère les chargements de programmes d'application), pour interdire des interactions entre programmes d'application différents. C'est dans ce cas 1' interpréteur qui effectue un contrôle complet du contenu de la zone réservée lors de sa mise à jour. Il est d'ailleurs souhaitable de faire gérer, par une autorité qui en a la charge, le chargement de tous les programmes applicatifs. On peut enfin imaginer que la zone réservée contient aussi des indications autres que relatives à l'accès de tel ou tel espace de mémoire. Par exemple, cette zone peut contenir des informations relatives à des interruptions de programme de type matériel. Ainsi, par exemple, le programme PGl peut être interrompu par les interruptions matérielles II et 12, mais pas par d'autres types d' interruptions. On comprend qu'on augmente encore la souplesse de fonctionnement des programmes applicatifs : on n'est pas obligé de prévoir systématiquement les mêmes interruptions matérielles pour tous les programmes applicatifs.
Si l'interpréteur contient des routines de programmes de bas niveau, on peut concevoir que la zone réservée contient des informations sur les routines dont l'utilisation est autorisée et celles dont l'utilisation n'est pas autorisée.
Bien entendu, il est possible de remplir la zone réservée en spécifiant les zones de mémoire autorisées pour tel ou tel accès, ou au contraire en spécifiant les zones interdites.

Claims

REVENDICATIONS
1. Carte à mémoire à microprocesseur, comportant au moins une mémoire morte de système (MSYS) contenant des programmes d'un système d'exploitation, et une mémoire utilisateur non volatile (MU) contenant des données et programmes relatifs à au moins une application de la carte à mémoire, caractérisé en ce que la mémoire morte ou la mémoire utilisateur contient un programme interpréteur pour l'exécution des instructions d'accès mémoire des programmes applicatifs, en ce que, à cet effet, les instructions d'accès à une adresse désirée d'une des mémoires de la carte, instructions présentes dans un programme d'application de la mémoire utilisateur, sont de type interprétable et non exécutable directement, et sont aptes à déclencher l'exécution par l'interpréteur d'un sous-programme d'interprétation comportant : examen d'une zone de contrôle (ZR) dans la mémoire utilisateur, cette zone définissant les autorisations d'accès aux différentes mémoires, comparaison entre l'instruction d'accès demandée pour une adresse déterminée et 1'autorisation correspondante donnée dans la zone de contrôle (ZR) , et exécution de l'instruction d'accès uniquement si l'autorisation existe pour le type d'accès demandé et pour l'adresse demandée.
2. Carte à mémoire selon la revendication 1, caractérisée en ce que la zone de contrôle contient des autorisations d'accès distinctes pour plusieurs zones différentes à l'intérieur de chaque mémoire.
3. Carte à mémoire selon l'une des revendications 1 et 2, caractérisée en ce que le système d'exploitation contient un programme de chargement de programmes applicatifs, ce programme étant apte à écrire dans la mémoire utilisateur, en dehors de la zone de contrôle, un nouveau programme applicatif et à écrire dans la zone de contrôle (ZR) des données représentant des autorisations d'accès aux différentes mémoires pendant l'exécution du programme applicatif.
4. Carte à mémoire selon l'une des revendications précédentes, caractérisée en ce que les autorisations d'accès comportent des autorisations de lecture, d'écriture, et/ou d'exécution.
5. Carte à mémoire selon l'une des revendications précédentes, caractérisé en ce que les données d'autorisation contenues dans la zone de contrôle comportent une interdiction d'écrire dans la zone réservée lors de l'exécution d'un programme applicatif présent dans la mémoire utilisateur.
6. Procédé de fonctionnement de carte à mémoire à microprocesseur, pour exécuter des programmes d'application (PGl, PG2, PG3) contenus dans une mémoire utilisateur (MU) en utilisant les programmes de système d'exploitation (SYS) contenus dans une mémoire morte de système (MSYS) , caractérisé en ce que toute instruction d'accès à une mémoire (MSYS, MU, MT) de la carte, instruction contenue dans un programme applicatif en mémoire utilisateur (MU) , est interprétée par un sous-programme d'interprétation contenu dans la mémoire morte de système (MSYS) ou dans la mémoire utilisateur, ce sous-programme effectuant un contrôle d'accès selon l'instruction demandée, à partir de données d'autorisation d'accès contenues au moins en partie dans une zone réservée (ZR) de la mémoire utilisateur, et le sous programme effectuant ensuite l'accès uniquement si les données d'autorisation comportent une autorisation d'accès correspondant au type d'accès demandé et à l'adresse demandée.
7. Procédé selon la revendication 1, caractérisé en ce que l'on charge un programme applicatif dans la mémoire utilisateur en dehors de la zone de contrôle à 1•aide d' n programme de chargement contenu dans la mémoire morte de système, et que l'on modifie les données de la zone de contrôle à partir du programme de chargement pour y inclure des données d'autorisations relatives au programme applicatif.
8. Procédé selon la revendication 7, caractérisé en ce que le programme de chargement est conçu pour empêcher l'inscription dans la zone de contrôle de données autorisant une écriture dans la zone de contrôle pendant l'exécution d'un programme applicatif chargé dans la mémoire utilisateur.
PCT/FR1994/001420 1993-12-07 1994-12-06 Carte a memoire et procede de fonctionnement WO1995016246A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE69404674T DE69404674T2 (de) 1993-12-07 1994-12-06 Speicherkarte und verfahren zum betrieb
US08/663,166 US5963980A (en) 1993-12-07 1994-12-06 Microprocessor-based memory card that limits memory accesses by application programs and method of operation
EP95903372A EP0733245B1 (fr) 1993-12-07 1994-12-06 Carte a memoire et procede de fonctionnement

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9314668A FR2713803B1 (fr) 1993-12-07 1993-12-07 Carte à mémoire et procédé de fonctionnement.
FR93/14668 1993-12-07

Publications (1)

Publication Number Publication Date
WO1995016246A1 true WO1995016246A1 (fr) 1995-06-15

Family

ID=9453651

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1994/001420 WO1995016246A1 (fr) 1993-12-07 1994-12-06 Carte a memoire et procede de fonctionnement

Country Status (8)

Country Link
US (1) US5963980A (fr)
EP (1) EP0733245B1 (fr)
JP (1) JP2727520B2 (fr)
DE (1) DE69404674T2 (fr)
ES (1) ES2105879T3 (fr)
FR (1) FR2713803B1 (fr)
SG (1) SG48191A1 (fr)
WO (1) WO1995016246A1 (fr)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997015027A1 (fr) * 1995-10-19 1997-04-24 Philips Electronics N.V. Jeton identificateur comportant un circuit electronique et un systeme conducteur exterieur au circuit pour constituer un code identificateur
EP0794519A1 (fr) * 1996-03-09 1997-09-10 Wolfgang Salge Carte à puce
EP0831435A2 (fr) * 1996-09-03 1998-03-25 Hitachi, Ltd. Carte à puce avec inscription de programme et méthode correspondante
FR2806813A1 (fr) * 2000-03-17 2001-09-28 Jean Michel Poupeau Systeme de gestion de memoire pour cartes a puce permettant a un utilisateur d'avoir acces a certaines prestations dans le cadre notamment d'une gestion informatisee des services de la ville
FR3105853A1 (fr) * 2019-12-31 2021-07-02 Proton World International N.V. Système embarqué
US11720358B2 (en) 2019-12-31 2023-08-08 Proton World International N.V. Embedded system

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963916A (en) * 1990-09-13 1999-10-05 Intouch Group, Inc. Network apparatus and method for preview of music products and compilation of market data
DE19626339A1 (de) * 1996-07-01 1998-01-08 Ibm Sicheres Laden von Anwendungen und Daten auf Chipkarten
US6089460A (en) * 1996-09-13 2000-07-18 Nippon Steel Corporation Semiconductor device with security protection function, ciphering and deciphering method thereof, and storage medium for storing software therefor
US6857099B1 (en) * 1996-09-18 2005-02-15 Nippon Steel Corporation Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
CN1183449C (zh) * 1996-10-25 2005-01-05 施卢默格系统公司 用微控制器使用高级程序设计语言
JP3790323B2 (ja) 1997-04-16 2006-06-28 株式会社ルネサステクノロジ データ転送制御装置、マイクロコンピュータ及びデータ処理システム
US6094724A (en) * 1997-11-26 2000-07-25 Atmel Corporation Secure memory having anti-wire tapping
EP1050028A1 (fr) * 1998-01-22 2000-11-08 Mondex International Limited Codelets
DE19804784A1 (de) * 1998-02-06 1999-08-12 Philips Patentverwaltung Chipkarte mit integrierter Schaltung
US6226728B1 (en) 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
DE19822218B4 (de) * 1998-05-18 2018-01-25 Giesecke+Devrient Mobile Security Gmbh Zugriffsgeschützter Datenträger
DE19822220B4 (de) * 1998-05-18 2018-01-25 Giesecke+Devrient Mobile Security Gmbh Zugriffsgeschützter Datenträger
FR2784479B1 (fr) * 1998-10-09 2000-11-17 Bull Cp8 Protocole d'echange interne de donnees entre applications d'un objet portatif multi-applications et objet portatif multi-applications correspondant
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US7139915B2 (en) * 1998-10-26 2006-11-21 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US7174457B1 (en) 1999-03-10 2007-02-06 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
FR2785424B1 (fr) * 1998-10-30 2000-12-15 Schlumberger Ind Sa Dispositif pour la gestion d'acces dans une carte a circuit integre
US6401160B1 (en) 1999-03-31 2002-06-04 Intel Corporation Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6775779B1 (en) * 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
US6510501B1 (en) * 1999-05-11 2003-01-21 National Semiconductor Corporation Non-volatile memory read/write security protection feature selection through non-volatile memory bits
WO2001029791A1 (fr) * 1999-10-21 2001-04-26 Tresor Tv Produktions Gmbh Carte a puce perfectionnee et procede permettant d'interagir avec celle-ci
GB9925227D0 (en) 1999-10-25 1999-12-22 Internet Limited Data storage retrieval and access system
US6757824B1 (en) * 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
EP1113387A3 (fr) * 1999-12-31 2001-11-21 SCHLUMBERGER Systèmes Carte à puce comportant une mémoire non volatile avec un mappage nouveau
JP2001250092A (ja) * 2000-03-03 2001-09-14 Toshiba Corp カード型電子機器、及びカード型電子機器に適用されるコンテンツ管理方法
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US20030061074A1 (en) * 2001-09-27 2003-03-27 International Business Machines Corporation Patient information management system
US7159240B2 (en) * 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
US7243230B2 (en) 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7487365B2 (en) * 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
TWI241481B (en) * 2002-06-25 2005-10-11 Lite On Technology Corp Repeated burning method of flash memory program
US7395435B2 (en) 2002-09-20 2008-07-01 Atmel Corporation Secure memory device for smart cards
US20030177051A1 (en) * 2003-03-13 2003-09-18 Robin Driscoll Method and system for managing worker resources
EP1477877A1 (fr) * 2003-05-12 2004-11-17 Infineon Technologies AG Méthode d'implémentation d'un pare-feu java card dans le contrôleur d'une carte à puce
EP1477878A1 (fr) * 2003-05-12 2004-11-17 Infineon Technologies AG Méthode d'implémentation d'un pare-feu pour un language interprété dans un contrôleur
WO2006040798A1 (fr) * 2004-10-08 2006-04-20 Renesas Technology Corp. Dispositif de circuit integre a semi-conducteur et systeme electronique
EP2096884A1 (fr) 2008-02-29 2009-09-02 Koninklijke KPN N.V. Réseau de télécommunication et procédé d'accès de réseau en fonction du temps
US8225106B2 (en) * 2008-04-02 2012-07-17 Protegrity Corporation Differential encryption utilizing trust modes
FR3050847B1 (fr) * 2016-05-02 2019-04-05 Morpho Procede d'optimisation d'ecritures en memoire dans un dispositif

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2612316A1 (fr) * 1987-03-13 1988-09-16 Mitsubishi Electric Corp Carte a circuits integres ayant une capacite de verification d'erreur interne
US4816654A (en) * 1986-05-16 1989-03-28 American Telephone And Telegraph Company Improved security system for a portable data carrier
EP0540095A1 (fr) * 1991-10-30 1993-05-05 Philips Composants Et Semiconducteurs Microcircuit pour carte à puce à mémoire programmable protégée

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60160491A (ja) * 1984-01-31 1985-08-22 Toshiba Corp Icカードとicカード発行装置
JPH0818473B2 (ja) * 1985-07-31 1996-02-28 トッパン・ムーア株式会社 機密水準を設定できるicカード
US4868376A (en) * 1987-05-15 1989-09-19 Smartcard International Inc. Intelligent portable interactive personal data system
JPH03102483A (ja) * 1989-09-18 1991-04-26 Hitachi Ltd 自動車用組込み形1チップマイコン、プログラム開発装置
FR2667171B1 (fr) * 1990-09-25 1994-08-26 Gemplus Card Int Support portable a micro-circuit facilement programmable et procede de programmation de ce micro-circuit.
FR2667417B1 (fr) * 1990-10-02 1992-11-27 Gemplus Card Int Carte a microprocesseur concue pour recevoir des programmes multiples en memoire programmable.
DE4115152C2 (de) * 1991-05-08 2003-04-24 Gao Ges Automation Org Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung
JPH06274397A (ja) * 1993-03-24 1994-09-30 Toshiba Corp ファイル管理方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4816654A (en) * 1986-05-16 1989-03-28 American Telephone And Telegraph Company Improved security system for a portable data carrier
FR2612316A1 (fr) * 1987-03-13 1988-09-16 Mitsubishi Electric Corp Carte a circuits integres ayant une capacite de verification d'erreur interne
EP0540095A1 (fr) * 1991-10-30 1993-05-05 Philips Composants Et Semiconducteurs Microcircuit pour carte à puce à mémoire programmable protégée

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997015027A1 (fr) * 1995-10-19 1997-04-24 Philips Electronics N.V. Jeton identificateur comportant un circuit electronique et un systeme conducteur exterieur au circuit pour constituer un code identificateur
EP0794519A1 (fr) * 1996-03-09 1997-09-10 Wolfgang Salge Carte à puce
WO1997033258A1 (fr) * 1996-03-09 1997-09-12 Wolfgang Salge Carte a puce
EP0831435A2 (fr) * 1996-09-03 1998-03-25 Hitachi, Ltd. Carte à puce avec inscription de programme et méthode correspondante
EP0831435A3 (fr) * 1996-09-03 2000-06-21 Hitachi, Ltd. Carte à puce avec inscription de programme et méthode correspondante
US6732272B1 (en) 1996-09-03 2004-05-04 Hitachi, Ltd. Program writable integrated circuit card and method therefore
US7278029B2 (en) 1996-09-03 2007-10-02 Hitachi, Ltd. Program writable IC card and method thereof
FR2806813A1 (fr) * 2000-03-17 2001-09-28 Jean Michel Poupeau Systeme de gestion de memoire pour cartes a puce permettant a un utilisateur d'avoir acces a certaines prestations dans le cadre notamment d'une gestion informatisee des services de la ville
FR3105853A1 (fr) * 2019-12-31 2021-07-02 Proton World International N.V. Système embarqué
US11714643B2 (en) 2019-12-31 2023-08-01 Proton World International N.V. Embedded system
US11720358B2 (en) 2019-12-31 2023-08-08 Proton World International N.V. Embedded system

Also Published As

Publication number Publication date
FR2713803A1 (fr) 1995-06-16
DE69404674T2 (de) 1998-01-08
SG48191A1 (en) 1998-04-17
DE69404674D1 (de) 1997-09-04
US5963980A (en) 1999-10-05
EP0733245A1 (fr) 1996-09-25
JPH09500469A (ja) 1997-01-14
ES2105879T3 (es) 1997-10-16
JP2727520B2 (ja) 1998-03-11
FR2713803B1 (fr) 1996-01-12
EP0733245B1 (fr) 1997-07-30

Similar Documents

Publication Publication Date Title
EP0733245B1 (fr) Carte a memoire et procede de fonctionnement
US7395535B2 (en) Techniques for permitting access across a context barrier in a small footprint device using global data structures
RU2148856C1 (ru) Система информационного обмена
US7607175B2 (en) Techniques for permitting access across a context barrier on a small footprint device using an entry point object
EP0479655B1 (fr) Circuit intégré pour une carte à microprocesseur conçue pour recevoir des programmes multiples en mémoire programmable
CA2822417C (fr) Procede et dispositif de controle d'acces a un systeme informatique
EP0552079B1 (fr) Carte à mémoire de masse pour microordinateur
EP0552077B1 (fr) Carte à mémoire de masse pour microordinateur avec facilités d'exécution de programmes internes
FR2766942A1 (fr) Lecteur de carte a puce avec microcontroleur et composant de securite
EP1434121B1 (fr) Techniques permettant d'assurer la sécurité d'un dispositif à faible empreinte par utilisation d'une barrière de contexte
US6922835B1 (en) Techniques for permitting access across a context barrier on a small footprint device using run time environment privileges
EP1151378B1 (fr) Techniques permettant un acces a travers une barriere de contexte dans un dispositif a faible empreinte par utilisation d'interfaces objet partage
FR2833374A1 (fr) Procede et dispositif de controle d'acces dans un systeme embarque
EP1141903B1 (fr) Dispositif et procede d'initialisation d'un programme applicatif d'une carte a circuit integre
EP1155389B1 (fr) Dispositif d'acces securise a des applications d'une carte a puce
FR2814557A1 (fr) Protection contre l'exploitation abusive d'une instruction dans une memoire
EP1713023B1 (fr) Protection de données contenues dans un circuit intégré
EP1129430B1 (fr) Procede et dispositif de controle du cycle de vie d'un objet portatif, notamment d'une carte a puce
EP1202181A1 (fr) Contrôle d'accès à une mémoire intégrée avec un microprocesseur
EP1250645B1 (fr) Systeme de gestion de peripheriques dans un circuit integre
WO2002008897A1 (fr) Protocole d'echange de messages entre applications implantees sur un systeme embarque, et systeme embarque correspondant
FR2829847A1 (fr) Procede de controle d'acces a des ressources partagees dans un systeme embarque et systeme embarque pour la mise en oeuvre d'un tel procede
EP1995682A1 (fr) Personnalisation d'un microprocesseur et procédé de protection de données
FR2898704A1 (fr) Protection d'un programme contre un deroutement
EP4187392A1 (fr) Procédé de gestion d'une mémoire au sein d'un système sur puce

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1995903372

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 08663166

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1995903372

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1995903372

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1995903372

Country of ref document: EP