WO2008055902A1 - Procede de passation d'instructions entre une station hote et un dispositif electronique portable, et dispositif de mise en oeuvre - Google Patents

Procede de passation d'instructions entre une station hote et un dispositif electronique portable, et dispositif de mise en oeuvre Download PDF

Info

Publication number
WO2008055902A1
WO2008055902A1 PCT/EP2007/061938 EP2007061938W WO2008055902A1 WO 2008055902 A1 WO2008055902 A1 WO 2008055902A1 EP 2007061938 W EP2007061938 W EP 2007061938W WO 2008055902 A1 WO2008055902 A1 WO 2008055902A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic device
portable electronic
instruction
command
read
Prior art date
Application number
PCT/EP2007/061938
Other languages
English (en)
Inventor
Olivier Chamley
Stéphane ANDREAU
Original Assignee
Oberthur Technologies
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 Oberthur Technologies filed Critical Oberthur Technologies
Priority to EP07822255A priority Critical patent/EP2089806A1/fr
Priority to US12/513,404 priority patent/US8327036B2/en
Priority to CA2702373A priority patent/CA2702373C/fr
Publication of WO2008055902A1 publication Critical patent/WO2008055902A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Definitions

  • the invention relates to the handover of instructions to a microcircuit card, by means of a generic program of management of removable data storage unit belonging to the category of "drivers” or “drivers” systematically associated with the systems of operation of microprocessor-based electronic equipment such as personal computers, digital cameras, camcorders, digital music players, mobile phones, etc.
  • These generic drivers for management of removable data storage units such as, for example, the drivers adapted to the communication protocol of the "USB mass storage device class" type, use specific transaction protocols between the host station and the removable storage unit. data with a limited set of commands.
  • a removable data storage unit consisting of an MMC card communicates with a host station by a limited set of standard commands for managing its memory space, including read and write commands. data writing.
  • each read / write command at physical addresses subject to read / write restriction must be followed by a single password for a read command or data header to be entered for a write command
  • the password associated with a read / write command on a memory space or a file with a restriction read / write must match the saved password for the command to execute.
  • the placing of a command presence signal or a password via the data to be entered in the removable data storage device has the disadvantage of making possible a fortuitous reproduction of a control signal or a password by the ordinary data to register that can lead the microcontroller of the removable device to a misinterpretation of writing data as commands or a password.
  • the present invention aims to overcome the aforementioned drawback.
  • It relates to a method for issuing instructions between a microprocessor host station and a portable electronic device connected by a data transmission, by means of a transaction initiated by a read / write command of data packets, generated by within the host station, by a removable data storage unit management program and transmitted to the portable electronic device in the form of a binary code comprising an index defining the type of read / write command concerned and an argument containing one or more parameters specifying the manner of applying to the portable electronic device, the type of read / write command defined in the index.
  • This method is remarkable in that an instruction is signaled to the portable electronic device by means of an instruction presence parameter placed in the argument of a read / write command.
  • an instruction is passed to the portable electronic device via a data packet writing command whose argument contains an instruction presence parameter defining the instruction.
  • an instruction is passed to the portable electronic device via a write command of data packets whose argument contains an instruction presence parameter signaling an instruction in the data packets to be written.
  • an instruction is passed to the portable electronic device via a data packet writing command whose argument contains an instruction presence parameter signaling a command script containing a sequence of instructions, in which the data packets to write.
  • the instruction presence parameter points, in the portable electronic device, a pre-existing file address.
  • the data resulting from the execution of an instruction by the portable electronic device are placed in memory locations of the portable electronic device that can be consulted by means of an instruction passed to the portable electronic device by means of the argument of a command to read data packets.
  • the data resulting from the execution of an instruction by the portable electronic device are placed in volatile memory locations of the portable electronic device that can be consulted by means of an instruction transmitted by the host station to the portable electronic device via the argument of a command to read data packets.
  • the instructions are of APDU type (acronym for the English expression "Application Protocol Data Unit"), defined by the ISO 7816 standard.
  • the instructions are requests transmitted to the portable electronic device via commands. for writing packets of data and responses of the portable electronic device searchable through packet read commands, requests and response being in accordance with an internet protocol.
  • the requests transmitted to the portable electronic device through Data packet write commands and portable electronic device responses that are searchable through packet read commands conform to the http protocol. It also relates to a portable electronic device for implementing the above method equipped with an USB standard input-output port.
  • the portable electronic device is a microcircuit card.
  • the portable electronic device is an electronic key.
  • the removable data storage unit management program complies with the MMC specification.
  • FIG. 1 is a block diagram of a removable portable electronic device connectable to a microprocessor host station
  • FIG. 2 is a diagram illustrating the composition of a binary word defining a write command according to the MMC transaction protocol
  • FIG. 3 is a diagram illustrating a data reading transaction in accordance with the MMC transaction protocol
  • FIG. 4 is a diagram illustrating a possible mode of operation for the microcontroller of a portable electronic equipment implementing the method according to the invention.
  • FIG. 1 shows the block diagram of a removable portable electronic device such as a microcircuit card 1 designed both for storing data and for controlling the execution of a banking or other transaction by a system computer equipped with a suitable communication terminal called "microcircuit card reader" which constitutes a host station.
  • This microcircuit card 1 comprises a flash memory 10, a management microcontroller 11 provided with a volatile RAM 12 working memory and a ROM 13 non-volatile program memory and an input / output port 14 connected by a bus. internal to the management microcontroller 1 1.
  • the input-output port 14 of the microcircuit card 1 can be placed in communication with an input-output port of a host station.
  • SDC Serial Digital Memory Card
  • USB port an RS
  • the transaction protocol MMC is more particularly oriented towards the management of a removable data storage unit having a memory space which appears to the host station as a volume organized in sectors or blocks of the same capacity and which is managed by the generic driver. of a host station by means of logical block addresses to which the management microcontroller 1 1 of the removable unit matches physical block addresses.
  • FIG. 2 illustrates the composition of the frame 2 of a binary word encoding a control of the MMC transaction protocol. This one consists of 6 bytes enclosing successively:
  • a 4-byte argument field 23 containing a control parameter such as a read / write start block logical address or the number of blocks affected by the subsequent read / write operations, an error correction code of 7 bits and, a bit of end 25 always at the value 1.
  • a command is followed by a period of inactivity corresponding to a response time given to the microcircuit card 1.
  • the latter acknowledges receipt of an order by a response or acknowledgment of 1 to 2 bytes indicating conditions for error.
  • the data to be exchanged when there is, are issued in the form of data packets.
  • Figure 3 illustrates the progress of a read transaction of a block.
  • the generic program for managing the removable unit of the host station sends the microcircuit card 1 on the line D1 a read command 5 of one or more blocks identified by its index, with the logical address of the first block to read in his argument.
  • the microcircuit card 1 responds on the line DO by an acknowledgment 6 and then by making available to the packet 7 data read in the block whose logical address corresponds to that in the argument of the read command.
  • the microcircuit card responds with an acknowledgment followed subsequently by the data packets read in the different blocks.
  • a write command proceeds in the same way, except that the data packets sent by the host station are on line D1.
  • a portion of the addressing capacity of the argument field 21 reading or writing commands is reserved for an instruction presence parameter. This is then interpreted by the microcircuit card 1 as an order to inhibit the execution of the read or write command received, instruction search in the command argument and / or in the one or more data packets to write according to a write command, and execution of the found instruction.
  • the instruction presence parameter may identify an instruction alone or signify the presence of an instruction in the data packet (s) of a write command.
  • the instruction presence parameter can point, in a write command, a pre-existing file address because its detection by the microcontroller 1 1 of the microcircuit card 1 inhibits the execution of the write command to replace it by an instruction search followed by the execution of the found statement.
  • FIG. 4 is an operating diagram illustrating a way of operating for the microcontroller 1 1 of the microcircuit card 1.
  • the microcontroller 1 1 of the microcircuit card 1 is initialized and sets, at 31, waiting for a command according to the MMC protocol from the station host.
  • the microcircuit card receives a command conforming to the MMC protocol from the host station, its microcontroller 11 detects it and analyzes its argument at 32 to look for an instruction presence parameter.
  • the microcontroller 11 When the microcontroller 11 does not find an instruction presence parameter in the command, it examines at 33 whether the argument of the command is compatible with the type of command announced in the index field. If there is compatibility, it executes at 34 the command that interests the management of the flash memory 10 and waits for a new command. If there is no compatibility, it issues an error signaling by the acknowledgment message and waits for a new command.
  • the microcontroller locates an instruction presence parameter in the command's argument, it interprets it to locate the instruction, either in the argument of the command where the parameter appears, or in data to be written and analyzed. in 36 the instruction to recognize if it corresponds to a request to execute a treatment. If the instruction corresponds to a request for execution of a processing, it executes at 37 the requested processing, places, if necessary, the result obtained in its volatile memory 12 to allow its consultation by a subsequent instruction of the host station and is waiting for a new command.
  • the instruction does not correspond to a request to execute a processing, it looks at 38, if it corresponds to a request to report the execution of an earlier instruction. If this is the case, it sends 39 to the host station, its report it has possibly temporarily placed in its RAM 12 and is waiting for a new command. The sending is preferably done by the data packet or packets expected in response to a read command transmitting by its argument the report request instruction.
  • the microcontroller sends at 40, an error signaling by the acknowledgment message and goes into action. waiting for a new order.
  • a report request statement can be passed as an argument of a read command.
  • the report is sent back by the microcircuit card in the following packet of read data.
  • the report request instruction can also be passed by an instruction presence parameter placed in the argument of a write command, and the report returned by the acknowledgment message following the order. It is possible to subject, condition, the execution of an instruction by the microcircuit card, using a flag value associated with the instruction, indicating the satisfaction or not of the condition.
  • the execution by the microcircuit card 1 of a request from the host station that reaches it by an instruction may be conditioned upon the prior reception by the microcircuit card 1, a consultation instruction of execution results placed in the volatile memory 12 of the microcircuit card 1.
  • an instruction of the host station to the microcircuit card 1 is accompanied by parameters, it is preferably transmitted with its parameters by the data packets of a write command whose argument contains a presence parameter instruction. It can also be transmitted by the argument of the write command, its parameters when they exist, being transmitted in the data packets to be written. An instruction can also be stored in the microcircuit card, the instruction presence parameter is then used to locate it in the microcircuit card.
  • An instruction may be in accordance with the "Application Protocol Data Unit” (APDU) transaction protocol defined in ISO 7816, as well as the response resulting from the execution of the instruction by the card. with microcircuit 1.
  • APDU Application Protocol Data Unit
  • microcircuit card 1 When it is a request for the provision of a setpoint, it is passed through the host station to the microcircuit card 1, preferably via a packet read command data whose argument points to the address of a memory location reserved for the setpoint communication from the portable electronic device.
  • requests from the host station transmitted to the microcircuit card 1 preferably, by commands for writing data packets and the responses of the microcircuit card 1 searchable by the host station by means of read commands data packets may comply with the Internet protocol http 1 .0 (acronym for the expression "HyperText Transfer Protocol") or the internet protocol FTP (acronym for the English expression: "File Transfer Protocol”) .
  • An instruction may be a command script, for example conforming to the Java® specification, placed in the data packet (s) following a write command whose argument contains an instruction presence parameter warning of the presence of instructions in the data packet (s) to be written. Many variants are possible.
  • the microcircuit card can be mounted in a USB key managed by a host station according to a SCSI transaction protocol (acronym for the English expression “Small Computer System Interface”) such as the SBC-2 acronym for the expression in English: "SCSI Blocks Command”) which presents a limited set of commands including commands read / write blocks of a data storage memory space, coded by a binary word comprising an index field identifying the type of command read / write, and an argument field containing parameters such as a read or write start block logical address.
  • SCSI transaction protocol (acronym for the English expression "Small Computer System Interface”) such as the SBC-2 acronym for the expression in English: "SCSI Blocks Command”) which presents a limited set of commands including commands read / write blocks of a data storage memory space, coded by a binary word comprising an index field identifying the type of command read / write, and an argument field containing parameters such as a read or write start block logical address.
  • a processing execution instruction can be passed to a microcircuit card by means of a simultaneous writing and verification command ("write and verify” in English) of the SCSI protocol, the "Expected initial flag logical block reference tag "in the argument of this command that can be used in addition to the instruction presence parameter using the location of the logical block address (" logical block address ”) to mean the presence of instructions in the data packet or packets to be written.
  • a report request instruction may be passed by means of a read command (“read” in English) including the instruction presence parameter at the location of the argument reserved for the message. logical block address.

Abstract

Le procédé consiste à placer un paramètre de présence d'instruction dans le champ 'argument' d'un mot binaire définissant une commande de lecture/écriture engendrée par des programmes génériques de gestion (drivers) d'unités amovibles de stockage de données. Cela permet de s'affranchir de la limitation du jeu des commandes autorisées par un programme générique de gestion d'unité amovible de stockage de données, sans risquer que des données soit interprétées à tort comme des instructions.

Description

PROCEDE DE PASSATION D'INSTRUCTIONS ENTRE UNE STATION HÔTE ET UN DISPOSITIF ELECTRONIQUE PORTABLE, ET DISPOSITIF
DE MISE EN OEUVRE
L'invention concerne la passation d'instructions à une carte à microcircuit, au moyen d'un programme générique de gestion d'unité amovible de stockage de données appartenant à la catégorie des "pilotes" ou "drivers" systématiquement associé aux systèmes d'exploitation d'équipements électroniques à microprocesseur tels que des ordinateurs personnels, des appareils photo numériques, des caméscopes, des baladeurs numériques, des téléphones portables, etc..
Les unités amovibles de stockage de données à mémoires flash, pour ordinateurs personnels et appareillages électroniques présentées sous des conditionnements à très faible encombrement : carte mémoire MMC (acronyme de l'expression anglo-saxonne "Multimedia Memory Card") ou clef USB de type "Mass Storage" sont de plus en plus répandues. Prévues initialement pour se connecter à des ordinateurs personnels par des ports d'entrée-sortie de type USB (acronyme de l'expression anglo-saxonne " Universal Sériai Bus") ou autre, ces unités amovibles de stockage de données nécessitaient à l'origine la présence d'un driver spécifique dans la station hôte. Comme cela nuisait à leur portabilité, des drivers génériques ont été rapidement développés, à leur intention pour les principaux systèmes d'exploitation tels que Windows®, Mac®, Unix®, Linux®, etc., fonctionnant sur les ordinateurs personnels existants.
Ces drivers génériques de gestion d'unités amovibles de stockage de données tels que, par exemple, les drivers adapté au protocole de communication du type "USB mass storage device class", utilisent des protocoles spécifiques de transaction entre station hôte et unité amovible de stockage de données dotés d'un jeu limité de commandes. Ainsi, selon le protocole au standard MMC, une unité amovible de stockage de données constituées d'une carte MMC, communique avec une station hôte par un jeu limité de commandes standard destinées à gérer son espace mémoire, dont des commandes de lecture et d'écriture de données.
Très rapidement, le besoin s'est fait sentir de dépasser les limitations des jeux de commandes de ces drivers génériques en utilisant les données échangées au cours d'une transaction initiée par une commande standard de lecture/écriture pour passer des instructions supplémentaires aux unités amovibles de stockage depuis une station hôte.
C'est ainsi qu'il a été proposé, dans la demande de brevet japonais JP 2001-147850, une méthode pour autoriser ou interdire l'écriture et/ou la lecture de l'espace mémoire ou de parties de l'espace mémoire ou même seulement de fichiers d'une unité amovible de stockage de données sans transmettre de commandes spécifiques autres que celles autorisée par un driver générique de gestion d'unité amovible de stockage de données. Dans cette méthode, des drapeaux d'état d'autorisation/interdiction de lecture/écriture sont associés aux adresses physiques stockées dans la table d'allocation de fichiers FAT (acronyme de l'expression anglo-saxonne "file Allocation Table). Un mot de passe précède les données placées aux adresses physiques faisant l'objet d'une restriction de lecture/écriture. Pour être considérée, chaque commande de lecture/écriture à des adresses physiques faisant l'objet de restriction de lecture/écriture doit être suivie par un mot de passe seul pour une commande de lecture ou placé en entête des données à inscrire pour une commande d'écriture. Le mot de passe associé à une commande de lecture/écriture portant sur un espace mémoire ou un fichier frappé d'une restriction de lecture/écriture doit correspondre au mot de passe enregistré pour que la commande soit exécutée.
Il a également été proposé, dans la demande européenne de brevet EP 1.571.557 de passer des commandes et/ou des données à un dispositif amovible de stockage de données par l'intermédiaire d'une commande d'écriture standard provenant du driver générique d'un système d'exploitation d'ordinateur personnel, en introduisant dans les données à écrire un drapeau d'identification de commande détecté et interprété par le microcontrôleur de gestion du dispositif amovible de stockage comme marquant la présence d'une commande dans les données reçues. Chaque paquet de données envoyé pour écriture au dispositif amovible de stockage commence par un champ entête qui contient ou non le drapeau d'identification de commande et qui est analysé par le microcontrôleur de gestion du dispositif amovible de stockage préalablement à la prise en compte des données. La passation d'une signalisation de présence de commande ou d'un mot de passe par l'intermédiaire des données à inscrire dans le dispositif amovible de stockage de données présente l'inconvénient de rendre possible une reproduction fortuite d'une signalisation de commande ou d'un mot de passe par les données ordinaires à inscrire pouvant conduire le microcontrôleur du dispositif amovible à une interprétation erronée de données d'écriture en tant que commandes ou un mot de passe.
La présente invention a pour but de remédier à l'inconvénient précité.
Elle a pour objet un procédé de passation d'instructions entre une station hôte à microprocesseur et un dispositif électronique portable reliés par une transmission de données, au moyen d'une transaction initiée par une commande de lecture/écriture de paquets de données, engendrée au sein de la station hôte, par un programme de gestion d'unité amovible de stockage de données et transmise au dispositif électronique portable sous la forme d'un code binaire comportant un index définissant le type de commande de lecture/écriture concernée et un argument contenant un ou des paramètres précisant la manière d'appliquer au dispositif électronique portable, le type de commande de lecture/écriture défini dans l'index. Ce procédé est remarquable en ce qu'une instruction est signalée au dispositif électronique portable au moyen d'un paramètre de présence d'instruction, placé dans l'argument d'une commande de lecture/écriture. Ainsi, il est possible de commander un dispositif électronique portable pour réaliser des traitements autres que l'écriture et la lecture de données tout en se limitant aux commandes d'écriture et de lecture générées par des programmes gestionnaires existants associés aux systèmes d'exploitation des stations hôte. Avantageusement, une instruction est passée au dispositif électronique portable par l'intermédiaire d'une commande d'écriture de paquets de données dont l'argument renferme un paramètre de présence d'instruction définissant l'instruction.
Avantageusement, une instruction est passée au dispositif électronique portable par l'intermédiaire d'une commande d'écriture de paquets de données dont l'argument renferme un paramètre de présence d'instruction signalant une instruction dans les paquets de données à écrire.
Avantageusement, une instruction est passée au dispositif électronique portable par l'intermédiaire d'une commande d'écriture de paquets de données dont l'argument renferme un paramètre de présence d'instruction signalant un script de commande renfermant une suite d'instructions, dans les paquets de données à écrire.
Avantageusement, le paramètre de présence d'instruction pointe, dans le dispositif électronique portable, une adresse de fichier préexistant. Avantageusement, les données résultant de l'exécution d'une instruction par le dispositif électronique portable sont placées dans des emplacements mémoire du dispositif électronique portable consultables au moyen d'une instruction passée au dispositif électronique portable par l'intermédiaire de l'argument d'une commande de lecture de paquets de données.
Avantageusement, les données résultant de l'exécution d'une instruction par le dispositif électronique portable sont placées dans des emplacements mémoire volatile du dispositif électronique portable consultables au moyen d'une instruction passée par la station hôte au dispositif électronique portable par l'intermédiaire de l'argument d'une commande de lecture de paquets de données.
Avantageusement, les instructions sont de type APDU (acronyme de l'expression anglo-saxonne :"Application Protocol Data Unit), défini par la norme ISO 7816. Avantageusement, les instructions sont des requêtes transmises au dispositif électronique portable par l'intermédiaire de commandes d'écriture de paquets de données et des réponses du dispositif électronique portable consultables par l'intermédiaire de commandes de lecture de paquets, requêtes et réponse étant conformes à un protocole internet. Avantageusement, les requêtes transmises au dispositif électronique portable par l'intermédiaire de commandes d'écriture de paquets de données et les réponses du dispositif électronique portable consultables par l'intermédiaire de commandes de lecture de paquets sont conformes au protocole http. Elle a également pour objet un dispositif électronique portable pour la mise en œuvre du procédé précédent équipé d'un port entrée-sortie au standard USB.
Avantageusement, le dispositif électronique portable est une carte à microcircuit.
Avantageusement, le dispositif électronique portable est une clef électronique.
Avantageusement, le programme de gestion d'unité amovible de stockage de données est conforme à la spécification MMC.
D'autres caractéristiques et avantages de l'invention ressortiront de la description ci-après d'un mode de réalisation donné à titre d'exemple. Cette description sera faite en regard du dessin dans lequel :
- une figure 1 est un schéma fonctionnel d'un dispositif électronique portable amovible raccordable à une station hôte à microprocesseur,
- une figure 2 est un diagramme illustrant la composition d'un mot binaire définissant une commande d'écriture conforme au protocole de transaction MMC, - une figure 3 est un diagramme illustrant une transaction de lecture de données conforme au protocole de transaction MMC, et
- une figure 4 est un diagramme illustrant un mode possible de fonctionnement pour le microcontrôleur d'un équipement électronique portable mettant en œuvre le procédé selon l'invention.
La figure 1 montre le schéma fonctionnel d'un dispositif électronique portable amovible tel qu'une carte à microcircuit 1 conçue à la fois pour le stockage de données et pour le contrôle de l'exécution d'une transaction bancaire ou autre, par un système informatique pourvu d'un terminal de communication adapté dit "lecteur de carte à microcircuit" qui constitue une station hôte. Cette carte à microcircuit 1 comporte une mémoire flash 10, un microcontrôleur de gestion 11 pourvu d'une mémoire de travail volatile RAM 12 et d'une mémoire de programme non volatile ROM 13 et un port d'entrée-sortie 14 raccordé par un bus interne au microcontrôleur de gestion 1 1. Le port d'entrée-sortie 14 de la carte à microcircuit 1 peut être mis en communication avec un port d'entrée-sortie d'une station hôte. C'est ici un port série compatible avec le standard SPI (acronyme de l'expression anglo- saxonne :"Serial Peripheral Interface Bus") supportant le protocole de transaction MMC, bien adapté aux cartes mémoire flash. Mais il pourrait être d'un tout autre type de port de communication, comme un port SDC (acronyme de l'expression anglo-saxonne :"Secure Digital memory Card"), un port USB, un port série RS232, un port GPIO (acronyme de l'expression anglo-saxonne :"General Purpose Input/Output") au format de transmission I2C (acronyme de l'expression anglo-saxonne :"lnter Integrated Circuit Bus"), ou SMBus (acronyme de l'expression anglo-saxonne :"System Management Bus"), un port PCMCIA, etc., avec un protocole de transaction offrant un jeu limité de commandes dont des commandes standard de lecture/écriture de données, codées par un mot binaire comportant au moins un champ index précisant un type de commande lecture/écriture et un champ argument contenant un ou des paramètres précisant la manière d'appliquer le type de commande de lecture/écriture défini dans l'index.
Le protocole de transaction MMC est plus particulièrement orienté vers la gestion d'une unité de stockage amovible de données ayant un espace mémoire qui apparaît à la station hôte comme un volume organisé en secteurs ou blocs de même capacité et qui est géré par le driver générique d'une station hôte au moyen d'adresses logiques de blocs auxquelles le microcontrôleur de gestion 1 1 de l'unité amovible fait correspondre des adresses physiques de blocs. La figure 2 illustre la composition de la trame 2 d'un mot binaire codant une commande du protocole de transaction MMC. Celle-ci se compose de 6 octets renfermant successivement :
- un bit de début 20 toujours à la valeur 0,
- un bit de transfert 21 toujours à la valeur 1 , - un champ index 22 occupant 6 bits et identifiant le type de la commande,
- un champ argument 23 de 4 octets contenant un paramètre de commande tel qu'une adresse logique de bloc de début de lecture/écriture ou le nombre de blocs affectés par les opérations ultérieures de lecture/écriture, - un code correcteur d'erreur 24 de 7 bits et, - un bit de fin 25 toujours à la valeur 1.
Une commande est suivie d'un temps d'inactivité correspondant à un délai de réponse accordé à la carte à microcircuit 1. Celle-ci 1 accuse réception d'un ordre par une réponse ou acquittement de 1 à 2 octets indiquant des conditions d'erreur. Puis les données à échanger lorsqu'il y en a, sont émises sous forme de paquets de données.
La figure 3 illustre le déroulement d'une transaction de lecture d'un bloc. Le programme générique de gestion d'unité amovible de la station hôte envoie à la carte à microcircuit 1 sur la ligne D1 , une commande 5 de lecture d'un ou plusieurs blocs identifiée par son index, avec l'adresse logique du premier bloc à lire dans son argument. La carte à microcircuit 1 répond sur la ligne DO par un acquittement 6 puis par une mise à disposition du paquet 7 des données lues dans le bloc dont l'adresse logique correspond à celle figurant dans l'argument de la commande de lecture. Pour une transaction de lecture de plusieurs blocs, la carte à microcircuit répond par un acquittement suivi par la suite des paquets de données lues dans les différents blocs. Une commande d'écriture se déroule de la même manière, excepté le fait que les paquets de données envoyés par la station hôte se retrouvent sur la ligne D1. Pour augmenter le nombre de commandes disponibles, qui est limité dans le cas du protocole de transaction MMC à la capacité d'un quart d'octet, c'est-à-dire 64, une partie de la capacité d'adressage du champ argument 21 des commandes de lecture ou écriture, considérées au sens large, c'est-à-dire incluant les commandes indirectement liées à l'écriture ou à la lecture comme par exemple, la commande CMD16 de dénombrement des blocks à lire ou écrire (connue sous l'abréviation anglo- saxonne :"SET_BLOCKLEN"), est réservée à un paramètre de présence d'instruction. Celui-ci est alors interprété par la carte à microcircuit 1 comme un ordre d'inhibition de l'exécution de la commande de lecture ou écriture reçue, de recherche d'instruction dans l'argument de la commande et/ou dans le ou les paquets de données à écrire suivant une commande d'écriture, et d'exécution de l'instruction trouvée. Le paramètre de présence d'instruction peut identifier une instruction à lui seul ou signifier la présence d'une instruction dans le ou les paquets de données d'une commande d'écriture. Le paramètre de présence d'instruction peut pointer, dans une commande d'écriture, une adresse de fichier préexistant car sa détection par le microcontrôleur 1 1 de la carte à microcircuit 1 inhibe l'exécution de la commande d'écriture pour la remplacer par une recherche d'instruction suivie par l'exécution de l'instruction trouvée.
Comme une réponse à une commande d'écriture selon le protocole de transaction MMC est toujours envoyée avant des données d'écriture, les données résultant de l'exécution d'une instruction par la carte à microcircuit 1 sont récupérées par la station hôte au moyen d'une commande de lecture.
La figure 4 est un diagramme de fonctionnement illustrant une façon d'opérer pour le microcontrôleur 1 1 de la carte à microcircuit 1.
Au démarrage, à la mise sous tension 30 de la carte à microcircuit
1 par son embrochage sur un connecteur d'une station hôte en activité, le microcontrôleur 1 1 de la carte à microcircuit 1 s'initialise et se met, en 31 , en attente d'une commande conforme au protocole MMC en provenance de la station hôte.
Dès que la carte à microcircuit reçoit une commande conforme au protocole MMC en provenance de la station hôte, son microcontrôleur 1 1 la détecte et analyse son argument en 32 pour y rechercher un paramètre de présence d'instruction.
Lorsque le microcontrôleur 11 ne repère pas de paramètre de présence d'instruction dans la commande, il examine en 33, si l'argument de la commande est compatible avec le type de commande annoncé dans le champ index. S'il y a compatibilité, il exécute en 34 la commande qui intéresse la gestion de la mémoire flash 10 et se met en attente d'une nouvelle commande. S'il n'y a pas compatibilité, il émet en 35 une signalisation d'erreur par le message d'acquittement et se met en attente d'une nouvelle commande. Lorsque le microcontrôleur repère un paramètre de présence d'instruction dans l'argument de la commande, il l'interprète pour localiser l'instruction, soit dans l'argument de la commande où figure le paramètre, soit dans des données à écrire et analyse en 36 l'instruction pour reconnaître si elle correspond à une requête d'exécution d'un traitement. Si l'instruction correspond à une requête d'exécution d'un traitement, il exécute en 37 le traitement demandé, place, si nécessaire, le résultat obtenu dans sa mémoire volatile 12 pour permettre sa consultation par une instruction ultérieure de la station hôte et se met en attente d'une nouvelle commande.
Si l'instruction ne correspond pas à une requête d'exécution d'un traitement, il recherche en 38, si elle correspond à une requête de compte- rendu d'exécution d'une instruction antérieure. Si tel est le cas, il envoie en 39, à la station hôte, son compte-rendu qu'il a éventuellement placé provisoirement dans sa mémoire RAM 12 et se met en attente d'une nouvelle commande. L'envoi se fait préférablement par le ou les paquets de données attendus en réponse à une commande de lecture transmettant par son argument l'instruction de requête de compte-rendu.
Enfin, Si l'instruction ne correspond ni à une requête d'exécution d'un traitement, ni à une requête de compte-rendu, le microcontrôleur envoie en 40, une signalisation d'erreur par le message d'acquittement et se met en attente d'une nouvelle commande.
Une instruction de requête de compte-rendu peut être passée en argument d'une commande de lecture. Dans ce cas le compte-rendu est renvoyé par la carte à microcircuit dans la suite des paquets des données lues. Lorsque le compte-rendu attendu est très court, l'instruction de requête de compte-rendu peut aussi être passée par un paramètre de présence d'instruction placé dans l'argument d'une commande d'écriture, et le compte rendu retourné par le message d'acquittement suivant la commande. II est possible de soumettre à condition, l'exécution d'une instruction par la carte à microcircuit, à l'aide d'une valeur drapeau associée à l'instruction, signalant la satisfaction ou non de la condition. Par exemple, lors du déroulement, sous le contrôle de la carte à microcircuit 1 , d'une transaction bancaire ou autre exécutée par un système informatique raccordé à la station hôte, faisant intervenir des échanges de message entre la carte à microcircuit 1 et le système informatique accessible de la station hôte, l'exécution par la carte à microcircuit 1 d'une requête de la station hôte lui parvenant par une instruction peut être conditionnée à la réception préalable par la carte à microcircuit 1 , d'une instruction de consultation de résultats d'exécution placés dans la mémoire volatile 12 de la carte à microcircuit 1.
Lorsqu'une instruction de la station hôte à destination de la carte à microcircuit 1 est accompagnée de paramètres, elle est préférablement transmise avec ses paramètres, par les paquets de données d'une commande d'écriture dont l'argument renferme un paramètre de présence d'instruction. Elle peut être également transmise par l'argument de la commande d'écriture, ses paramètres lorsqu'ils existent, étant transmis dans les paquets de données à écrire. Une instruction peut également être mémorisée dans la carte à microcircuit, le paramètre de présence d'instruction sert alors à la localiser au sein de la carte à microcircuit.
Une instruction peut être conforme au protocole de transaction APDU (acronyme de l'expression anglo-saxonne "Application Protocol Data Unit") défini dans la norme ISO 7816, de même que la réponse résultant de l'exécution de l'instruction par la carte à microcircuit 1. Lorsqu'il s'agit d'une requête de mise à disposition de consigne, elle est passée par la station hôte à la carte à microcircuit 1 , de préférence, par l'intermédiaire d'une commande de lecture de paquets de données dont l'argument pointe l'adresse d'un emplacement mémoire réservé à la communication de consigne de la part du dispositif électronique portable.
Plus généralement, les requêtes de la station hôte transmises à la carte à microcircuit 1 préférablement, par des commandes d'écriture de paquets de données et les réponses de la carte à microcircuit 1 consultables par la station hôte par l'intermédiaire de commandes de lecture de paquets de données peuvent être conformes au protocole Internet http 1 .0 (acronyme de l'expression anglo-saxonne " HyperText Transfer Protocol") ou au protocole internet FTP (acronyme de l'expression anglo-saxonne :" File Transfer Protocol"). Une instruction peut être un script de commande, par exemple conforme à la spécification Java®, placé dans le ou les paquets de données suivant une commande d'écriture dont l'argument renferme un paramètre de présence d'instruction prévenant de la présence d'instructions dans le ou les paquets de données à écrire. De nombreuses variantes sont envisageables. La carte à microcircuit peut être montée dans une clef USB gérée par une station hôte selon un protocole de transaction SCSI (acronyme de l'expression anglo- saxonne :"Small Computer System Interface") tel que le SBC-2 acronyme de l'expression anglo-saxonne :"SCSI Blocks Command") qui présente un jeu limité de commandes dont des commandes de lecture/écriture des blocs d'un espace mémoire de stockage de données, codées par un mot binaire comportant un champ index identifiant le type de commande lecture/écriture, et un champ argument contenant des paramètres comme une adresse logique de bloc de début de lecture ou d'écriture.
Ainsi, une instruction d'exécution de traitement peut être passée à une carte à microcircuit au moyen d'une commande d'écriture et de vérification simultanées ("write and verify" en anglo-saxon) du protocole SCSI, le drapeau "Expected initial logical block référence tag" figurant dans l'argument de cette commande pouvant être utilisé en complément avec le paramètre de présence d'instruction utilisant l'emplacement de l'adresse logique de bloc ("logical block address" en anglo-saxon) pour signifier la présence d'instructions dans le ou les paquets de données à écrire. De même, une instruction de requête de compte-rendu peut être passée au moyen d'une commande de lecture ("read" en anglo-saxon) comportant le paramètre de présence d'instruction à l'emplacement de l'argument réservé à l'adresse logique de bloc.

Claims

REVENDICATIONS
1. Procédé de passation d'instructions entre une station hôte à microprocesseur et un dispositif électronique portable (1 ) reliés par une transmission de données, au moyen d'une transaction initiée par une commande de lecture/écriture (2) de paquets de données, engendrée au sein de la station hôte, par un programme de gestion d'unité amovible de stockage de données et transmise au dispositif électronique portable (1) sous la forme d'un code binaire comportant un index (20) définissant un type de commande de lecture/écriture et un argument (21 ) contenant un ou des paramètres précisant la manière d'appliquer au dispositif électronique portable (1 ), le type de commande de lecture/écriture défini dans l'index (20), caractérisé en ce qu'une instruction est signalée au dispositif électronique portable (1) au moyen d'un paramètre de présence d'instruction, placé dans l'argument (21) d'une commande de lecture/écriture (2).
2. Procédé selon la revendication 1 , caractérisé en ce qu'une instruction est passée au dispositif électronique portable (1 ) par l'intermédiaire d'une commande (2) d'écriture de paquets de données dont l'argument (21 ) renferme un paramètre de présence d'instruction définissant l'instruction.
3. Procédé selon la revendication 1, caractérisé en ce qu'une instruction est passée au dispositif électronique portable (1 ) par l'intermédiaire d'une commande (2) d'écriture de paquets de données dont l'argument (21) renferme un paramètre de présence d'instruction signalant une instruction dans des paquets de données à écrire.
4. Procédé selon la revendication 3, caractérisé en ce que les paquets à écrire comportent un script de commande renfermant une suite d'instructions.
5. Procédé selon la revendication 1 , caractérisé en ce que le paramètre de présence d'instruction pointe une adresse de fichier préexistant.
6. Procédé selon la revendication 1 , caractérisé en ce que les données résultant de l'exécution d'une instruction par le dispositif électronique portable (1 ) sont placées dans des emplacements mémoire du dispositif électronique portable (1 ) consultables au moyen d'une instruction passée au dispositif électronique portable (1 ) par l'intermédiaire de l'argument (21 ) d'une commande de lecture de paquets de données.
7. Procédé selon la revendication 1 , caractérisé en ce que les données résultant de l'exécution d'une instruction par le dispositif électronique portable (1 ) sont placées dans des emplacements mémoire volatile du dispositif électronique portable (1 ) consultables au moyen d'une instruction passée au dispositif électronique portable (1 ) par l'intermédiaire de l'argument (21) d'une commande de lecture de paquets de données.
8. Procédé selon la revendication 1 , caractérisé en ce que les instructions sont du type APDU défini dans la norme ISO 7816.
9. Procédé selon la revendication 1 , caractérisé en ce que les requêtes transmises au dispositif électronique portable (1 ) par l'intermédiaire de commandes d'écriture de paquets de données et les réponses du dispositif électronique portable (1 ) consultables par l'intermédiaire de commandes de lecture de paquets sont conformes à un protocole internet.
10. Procédé selon la revendication 9, caractérisé en ce que requêtes et réponses sont conformes au protocole http.
1 1 . Dispositif électronique portable mettant en œuvre le procédé selon la revendication 1 , caractérisé en ce qu'il est équipé d'un port entrée- sortie au standard USB.
12. Dispositif électronique portable mettant en oeuvre le procédé selon la revendication 1 , caractérisé en ce qu'il est constitué d'une carte à microcircuit.
13. Dispositif électronique portable mettant en œuvre le procédé selon la revendication 1 , caractérisé en ce qu'il est constitué d'une clef électronique.
14. Procédé selon la revendication 1 , caractérisé en ce que le programme de gestion d'unité amovible de stockage de données est conforme à la spécification MMC.
PCT/EP2007/061938 2006-11-06 2007-11-06 Procede de passation d'instructions entre une station hote et un dispositif electronique portable, et dispositif de mise en oeuvre WO2008055902A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP07822255A EP2089806A1 (fr) 2006-11-06 2007-11-06 Procede de passation d'instructions entre une station hote et un dispositif electronique portable, et dispositif de mise en oeuvre
US12/513,404 US8327036B2 (en) 2006-11-06 2007-11-06 Method of passing instructions between a host station and a portable electronic device, and device for implementation
CA2702373A CA2702373C (fr) 2006-11-06 2007-11-06 Procede de passation d'instructions entre une station hote et un dispositif electronique portable, et dispositif de mise en oeuvre

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0609673 2006-11-06
FR0609673A FR2908195B1 (fr) 2006-11-06 2006-11-06 Procede de passation d'instructions entre une station hote et un dispositif electronique portable, et dispositif de mise en oeuvre

Publications (1)

Publication Number Publication Date
WO2008055902A1 true WO2008055902A1 (fr) 2008-05-15

Family

ID=38110466

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2007/061938 WO2008055902A1 (fr) 2006-11-06 2007-11-06 Procede de passation d'instructions entre une station hote et un dispositif electronique portable, et dispositif de mise en oeuvre

Country Status (5)

Country Link
US (1) US8327036B2 (fr)
EP (1) EP2089806A1 (fr)
CA (1) CA2702373C (fr)
FR (1) FR2908195B1 (fr)
WO (1) WO2008055902A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053917A (zh) * 2010-12-29 2011-05-11 北京握奇数据系统有限公司 一种降低内存占用的智能卡及其处理指令的方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856292B2 (en) * 2009-10-27 2014-10-07 Cisco Technology, Inc. Managing command compliance in internetworking devices
US10888119B2 (en) * 2014-07-10 2021-01-12 Rai Strategic Holdings, Inc. System and related methods, apparatuses, and computer program products for controlling operation of a device based on a read request
KR102395190B1 (ko) * 2017-07-31 2022-05-06 삼성전자주식회사 호스트와 인터페이스를 수행하는 스토리지 장치, 호스트 및 스토리지 장치의 동작방법
US11853610B2 (en) * 2021-02-16 2023-12-26 iodyne, LLC Pass-through command queues for unmodified storage drivers

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001147850A (ja) * 1999-11-19 2001-05-29 Seiko Epson Corp コンピューターシステム
EP1304665A2 (fr) * 2001-10-22 2003-04-23 Kabushiki Kaisha Toshiba Dispositif et procédé de commande d'un dispositif à carte
US20040210715A1 (en) * 2003-04-17 2004-10-21 Eliyahou Harari Memory cards including a standard security function
EP1571557A1 (fr) * 2002-11-18 2005-09-07 Netac Technology Co., Ltd. Methode d'envoi d'instructions et de donnees a une memoire mobile
US20060101199A1 (en) * 2004-11-10 2006-05-11 Nokia Corporation Method and system for controlling a hard disk drive using a multimediacard physical interface

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002236767A (ja) * 2001-02-07 2002-08-23 Sony Corp 情報処理装置および方法、プログラム格納媒体、並びにプログラム
US7334077B2 (en) * 2003-10-17 2008-02-19 Renesas Technology America, Inc. Method and apparatus for smart memory pass-through communication
US7427027B2 (en) * 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
JP4735100B2 (ja) * 2005-03-08 2011-07-27 ソニー株式会社 複合型記憶装置、データ処理方法及びプログラム
US8078788B2 (en) * 2005-12-08 2011-12-13 Sandisk Technologies Inc. Media card command pass through methods
US7739487B2 (en) * 2006-01-17 2010-06-15 Nokia Corporation Method for booting a host device from an MMC/SD device, a host device bootable from an MMC/SD device and an MMC/SD device method a host device may booted from

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001147850A (ja) * 1999-11-19 2001-05-29 Seiko Epson Corp コンピューターシステム
EP1304665A2 (fr) * 2001-10-22 2003-04-23 Kabushiki Kaisha Toshiba Dispositif et procédé de commande d'un dispositif à carte
EP1571557A1 (fr) * 2002-11-18 2005-09-07 Netac Technology Co., Ltd. Methode d'envoi d'instructions et de donnees a une memoire mobile
US20040210715A1 (en) * 2003-04-17 2004-10-21 Eliyahou Harari Memory cards including a standard security function
US20060101199A1 (en) * 2004-11-10 2006-05-11 Nokia Corporation Method and system for controlling a hard disk drive using a multimediacard physical interface

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ISO: "IDENTIFICATION CARDS -- INTEGRATED CIRCUIT CARDS -- PART 4: ORGANIZATION, SECURITY AND COMMANDS FOR INTERCHANGE ISO/IEC 7816-4", INTERNATIONAL STANDARD ISO/IEC, XX, XX, 5 January 2005 (2005-01-05), pages 90, XP008077622 *
SAMSUNG ELECTRONICS: "S3F49DAX MultiMediaCard Controllers Datasheet Revision 1.0", INTERNET CITATION, 17 August 2004 (2004-08-17), XP002369242, Retrieved from the Internet <URL:http://origin.samsung.com/Products/Semiconductor/SystemLSI/Microcontrollers/32_bit/MemoryCardController/S3F49DAX/ds_s3f49dax_rev10.pdf> [retrieved on 20060207] *
See also references of EP2089806A1 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053917A (zh) * 2010-12-29 2011-05-11 北京握奇数据系统有限公司 一种降低内存占用的智能卡及其处理指令的方法

Also Published As

Publication number Publication date
US20100070655A1 (en) 2010-03-18
FR2908195A1 (fr) 2008-05-09
FR2908195B1 (fr) 2009-02-06
CA2702373A1 (fr) 2008-05-15
US8327036B2 (en) 2012-12-04
CA2702373C (fr) 2017-05-23
EP2089806A1 (fr) 2009-08-19

Similar Documents

Publication Publication Date Title
CN1229705C (zh) 基于生物统计的装置和系统以及相关的安全系统
US8887295B2 (en) Method and system for enabling enterprises to use detachable memory devices that contain data and executable files in controlled and secure way
WO2015188788A1 (fr) Procédé et appareil de protection de sécurité de paiement par terminal mobile, et terminal mobile
EP2336962A2 (fr) Appareil de traitement d&#39;informations, procédé, support de stockage et système de traitement d&#39;informations
WO2008055902A1 (fr) Procede de passation d&#39;instructions entre une station hote et un dispositif electronique portable, et dispositif de mise en oeuvre
US20040123132A1 (en) Enhancing data integrity and security in a processor-based system
FR2806505A1 (fr) Procede de communication entre une carte a puce et une station hote
CN1452039A (zh) 采用用户标识模块卡的安全计算机系统及其控制方法
EP0681242B1 (fr) Procédé de sécurisation des accès aux cartes amovibles pour ordinateur
CN110688657A (zh) 一种u盘病毒隔离器及其工作方法
CN111756750A (zh) 安全访问方法、装置、设备及存储介质
US7437563B2 (en) Software integrity test
EP1958418B1 (fr) Entite electronique portable destinee a etablir une communication voix sur ip securisee
CN108600259B (zh) 设备的认证和绑定方法及计算机存储介质、服务器
CN113141332B (zh) 一种命令注入识别方法、系统、设备及计算机存储介质
EP2447873A1 (fr) Procédé pour accéder à une application et dispositif correspondant
CN112953957B (zh) 一种入侵防御方法、系统及相关设备
EP2048576B2 (fr) Procédé de mise à jour sécurisée d&#39;un programme à lancement automatique et entité électronique portable le mettant en oeuvre
CN108491745B (zh) 数据采集方法及装置、计算机可读存储介质
CN114117511A (zh) 数据脱敏方法、数据脱敏装置以及存储设备
WO2014106464A1 (fr) Carte à mémoire flash ainsi que dispositif et procédé permettant d&#39;accéder à une carte à mémoire flash
CN113852638B (zh) 一种攻击检测方法、装置、设备及存储介质
CN111327683B (zh) 加密信息提取方法、装置、计算机设备及可读存储介质
CN112040248B (zh) 视频压缩方法、系统、终端设备及存储介质
CN110941835B (zh) 数据处理方法及电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07822255

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2007822255

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 12513404

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2702373

Country of ref document: CA