WO2003102883A1 - Procede securise de deploiement d'un programme informatique sur des supports d'informations distincts - Google Patents

Procede securise de deploiement d'un programme informatique sur des supports d'informations distincts Download PDF

Info

Publication number
WO2003102883A1
WO2003102883A1 PCT/FR2003/001627 FR0301627W WO03102883A1 WO 2003102883 A1 WO2003102883 A1 WO 2003102883A1 FR 0301627 W FR0301627 W FR 0301627W WO 03102883 A1 WO03102883 A1 WO 03102883A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
diversification
version
deploying
diversifying
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/FR2003/001627
Other languages
English (en)
Inventor
Sébastien PETIT
Assia Tria
Olivier Benoit
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
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 Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Priority to AU2003253057A priority Critical patent/AU2003253057A1/en
Publication of WO2003102883A1 publication Critical patent/WO2003102883A1/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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

Definitions

  • the invention relates to a secure method for deploying a computer program on separate information carriers. It also relates to a process for the diversification of computer programs.
  • the invention applies to securing electronic devices containing one or more computer programs and more particularly to securing portable devices of the smart card type.
  • the problem raised relates generally to the security of computer programs against attacks which make it possible to extract sensitive information when these programs are capable of processing confidential data. This problem relates in particular to the security against fraud of portable devices of the smart card type, which are by their nature used to store and exploit secret data.
  • a first attack called “side channel” consists in studying the electrical consumption, the electromagnetic radiation or any other modification of the environment of the electronic component when it takes part in the execution of a computer program. From the observation of this consumption, it becomes possible to deduce the instant of processing of confidential data as well as the data itself.
  • a second attack consists in modifying the physical environment of the electronic component (temperature, light ...) so as to modify the normal course of the program which is executed; it is then possible to determine and then intervene at the precise moment of the processing of confidential data. For example, external physical influence when processing a PIN can cause the program to accept a bad code.
  • a third possible attack consists of a physical intrusion into the electronic components in order to spy on or modify the information which travels on data buses for example. It is thus possible to determine the precise moment when confidential data is manipulated in order to intercept it.
  • the invention therefore aims to remedy these drawbacks. It relates to a secure method for deploying a Po program mainly characterized in that it consists in providing N diversified versions of this Po program and in loading different versions on separate information carriers.
  • the N different versions of the program Po are obtained in the following manner: the program Po is written in any language, the program is then translated N times by a diversification program.
  • the diversification program is a compilation program and a link editor program which introduce one or more variants to each compilation operation.
  • the supports provided may be X portable devices of the smart card type, the N versions being distributed over the X devices, X being greater than or equal to N.
  • the invention also relates to a method for diversifying a program Po mainly characterized in that it consists in providing a diversification program capable of introducing variants into the program Po so as to obtain N different versions of said program.
  • the diversification program is carried out by a compiler program and a link editor program, the diversification is done during the compilation and / or editing of links of said Po program.
  • a first variant introduced during compilation and editing of links consists in modifying, from one version to another, the addresses of the functions or subprograms of said program Po, of the program memory in which it will be recorded.
  • a second variant introduced consists in modifying, from one version to another, the addresses of the buffer registers and variables of the working memory.
  • a third variant consists in modifying at least one parameter of said program or an instruction by an equivalent instruction, or a subset of instructions by another functionally equivalent subset of instructions or adding unnecessary operations from one version to the other of the said program.
  • the method for diversifying a Po program is advantageously used for implementing the secure deployment of said Po program on separate information carriers such as portable devices of the smart card type.
  • the invention further relates to a method of personalizing information carriers of the smart card type, mainly characterized in that it consists in using the method for the secure deployment of a program Po set out above.
  • FIG. 1 a classic diagram illustrating the classic transformation of a program written in any language into an executable program
  • FIG. 2 illustrates the principle of the present invention making it possible to have several versions of the same program
  • FIG. 3 illustrates a first example of diversification
  • FIG. 4 illustrates a second example of diversification
  • Figure 5 illustrates a third example of diversification.
  • Figure 6 illustrates the deployment of a program on smart cards.
  • a processing unit conventionally comprises a processor
  • the processing unit can be installed either in a microcomputer or in any other electronic device based on a microprocessor.
  • the N versions can of course be obtained by individual programming of each of them or by means of a diversification program.
  • a single Po program written in any language (C for example)
  • the different versions provide the same functions as the Po program while presenting different characteristics which mean that knowing the behavior of a program will not allow it to extract useful information for another version of the same program.
  • a first solution proposed consists in diversifying the addresses at which the necessary functions or subroutines are found during the execution of the program Po, in the program memory MP (electrically programmable memory of EEPROM or Flash / EEPROM type). These addresses are therefore modified by the compiler (if they are program functions) or by the linker when they are called subroutines. This solution is illustrated in Figure 3.
  • FI is located at the adl-adp addresses; F2 is located at adr-ads addresses and F3 is located at ads-adn addresses.
  • FI is at the ado-ad4 addresses, F2 is at the ad4-adp addresses and F3 is at the adp-adq addresses.
  • FI is at the addresses ado-ad4, F2 is at the addresses adp-adq and F3 is at the addresses adq-adr.
  • Another solution consists in carrying out this same type of address diversification but this time for the working memory MT (volatile memory RAM).
  • the arithmetic and logic unit of the support device uses two registers RI and R2.
  • the compiler loads the value A which is at the address AD1 of the working memory in the register RI and loads the value B which is at the address AD2 of this memory in the register R2.
  • the result C is stored at address AD3 (the loading and transfer instructions are used for the implementation of this operation.)
  • An A-B transfer operation can be changed to A ⁇ C ⁇ B.
  • a conditional operation if A + B then F otherwise G, can be modified by the conditional operation: if A ⁇ B then G otherwise F.
  • the invention is particularly applicable to the deployment of programs containing sensitive data for portable devices such as smart cards or other equivalent objects.
  • the program (s) deployed will be loaded into electrically programmable memory of the type
  • FIG. 6 illustrates the deployment of the Pol, ... PoN, PoN + 1 versions of the Po program on Cl, ... CN, CN + 1 smart cards.
  • a given version of a program can be loaded at any time into a smart card, either before its distribution to personalization organizations or during personalization or after, that is to say when a user has this card.
  • the programs that can be the subject of such diversification can be application programs but also the operating system (OS) program of the portable device.
  • OS operating system

Landscapes

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

Abstract

L'invention concerne un procédé sécurisé de déploiement d'un programme Po consistant à fournir N versions diversifiées (Po1, Po2, PoN) de ce programme Po et à charger des versions différentes sur des supports d'informations distincts (C1,..., CN). Avantageusement, la diversification est réalisée par un programme de compilation et un programme éditeur de liens (Ced) qui introduisent une ou plusieurs variantes à chaque opération de compilation. L'invention s'applique au déploiement sécurisé des programmes sur des supports d'informations distincts tels que des dispositifs portables de type cartes à puce.

Description

PROCEDE SECURISE DE DEPLOIEMENT D'UN PROGRAMME INFORMATIQUE SUR DES SUPPORTS D'INFORMATIONS DISTINCTS
L' invention concerne un procédé sécurisé de déploiement d'un programme informatique sur des supports d'informations distincts. Elle concerne également un procédé de diversification de programmes informatiques. L'invention s'applique à la sécurisation de dispositifs électroniques contenant un ou plusieurs programmes informatiques et plus particulièrement à la sécurisation des dispositifs portables de type cartes à puce. Le problème posé concerne d'une manière générale la sécurité des programmes d'ordinateurs contre les attaques qui permettent d'extraire des informations sensibles lorsque ces programmes sont susceptibles de traiter des données confidentielles. Ce problème concerne en particulier la sécurité contre la fraude de dispositifs portables de type cartes à puce, lesquels sont par nature, utilisés pour stocker et exploiter des données secrètes.
On constate malheureusement que ces dispositifs sont sujets à de nombreuses attaques malveillantes de nature diverses. Ces attaques ont été répertoriées et analysées et leurs principes vont être rappelés ci- dessous :
Une première attaque dite « side channel » consiste à étudier la consommation électrique, la radiation électromagnétique ou toute autre modification de l'environnement du composant électronique lorsqu'il participe à l'exécution d'un programme informatique. A partir de l'observation de cette consommation, il devient possible de déduire l'instant de traitement des données confidentielles ainsi que les données elles- mêmes .
Une deuxième attaque consiste à modifier l'environnement physique du composant électronique (température, lumière ...) de manière à modifier le déroulement normal du programme qui est exécuté; il est alors possible de déterminer puis d'intervenir au moment précis du traitement des données confidentielles. Par exemple, une influence physique externe au moment du traitement d'un code confidentiel peut amener le programme à accepter un mauvais code.
Une troisième attaque possible consiste en une intrusion physique au sein des composants électroniques afin d'espionner ou de modifier les informations qui transitent sur des bus de données par exemple. Il est ainsi possible de déterminer l'instant précis où les données confidentielles sont manipulées afin de les intercepter.
Pour lutter contre ces fraudes, les solutions de sécurité de l'art antérieur consistent à prévoir des protections et contre-mesures qui repoussent au maximum ces attaques.
Globalement les solutions connues à ce jour ont pour but de rajouter des obstacles logiques ou physiques à toute tentatives de fraude. En pratique, ces obstacles augmentent le temps nécessaire et la complexité pour décoder le déroulement du programme. Malheureusement une fois que le déroulement du programme est connu, il est possible d'appliquer facilement cette connaissance sur tous les dispositifs contenant le même programme afin de récupérer les données confidentielles qu'ils peuvent détenir.
L'invention a donc pour but de remédier à ces inconvénients . Elle a pour objet un procédé sécurisé de déploiement d'un programme Po principalement caractérisé en ce qu'il consiste à fournir N versions diversifiées de ce programme Po et à charger des versions différentes sur des supports d'informations distincts .
Les différentes versions d'un même programme réalisent les mêmes fonctions essentielles, donnent le même résultat mais ont un comportement légèrement différent lors de leur exécution.
Avantageusement, les N versions différentes du programme Po sont obtenues de la manière suivante : le programme Po est écrit dans un langage quelconque, le programme est ensuite traduit N fois par un programme de diversification.
Selon un mode de réalisation, le programme de diversification est un programme de compilation et un programme éditeur de liens qui introduisent une ou plusieurs variantes à chaque opération de compilation.
Les supports prévus peuvent être X dispositifs portables de type cartes à puce, les N versions étant réparties sur les X dispositifs, X étant supérieur ou égal à N. L'invention a également pour objet un procédé de diversification d'un programme Po principalement caractérisé en ce qu'il consiste à prévoir un programme de diversification apte à introduire des variantes dans le programme Po de manière à obtenir N versions différentes dudit programme.
Selon un mode de réalisation, le programme de diversification est réalisé par un programme compilateur et un programme éditeur de liens, la diversification se faisant durant la compilation et/ou l'édition de liens dudit programme Po.
Une première variante introduite durant la compilation et l'édition de liens consiste à modifier, d'une version à l'autre, les adresses des fonctions ou sous -programmes dudit programme Po, de la mémoire de programmes dans laquelle il sera enregistré.
Une deuxième variante introduite consiste à modifier, d'une version à l'autre, les adresses des registres tampons et des variables de la mémoire de travail .
Une troisième variante consiste a modifier au moins un paramètre dudit programme ou une instruction par une instruction équivalente, ou un sous-ensemble d'instructions par un autre sous-ensemble d'instructions fonctionnellement équivalent ou ajouter des opérations inutiles d'une version à l'autre dudit programme .
Le procédé de diversification d'un programme Po, est avantageusement utilisé pour la mise en œuvre du déploiement sécurisé dudit programme Po sur des supports d'informations distincts tels que des dispositifs portables de type cartes à puce.
L'invention concerne en outre un procédé de personnalisation de supports d'informations de type cartes à puce principalement caractérisé en ce qu'il consiste à utiliser le procédé de déploiement sécurisé d'un programme Po énoncé ci -dessus.
D'autres particularités et avantages de l'invention apparaîtront clairement dans la description suivante, présentée à titre d'exemple non limitatif en regard des figures annexées qui représentent : - la figure 1, un schéma classique illustrant la transformation classique d'un programme écrit en langage quelconque en un programme exécutable,
- la figure 2, illustre le principe de la présente invention permettant d'avoir plusieurs versions d'un même programme, la figure 3, illustre un premier exemple de diversification, la figure 4, illustre un deuxième exemple de diversification,
- la figure 5, illustre un troisième exemple de diversification. la figure 6, illustre le déploiement d'un programme sur des cartes à puces .
On rappelle pour mieux comprendre la suite qu'un programme principal Po écrit en langage de programmation fait l'objet d'une compilation réalisée par un programme de compilation pour pouvoir être compris par l'unité de traitement du dispositif support qui exécute le programme. Une unité de traitement comprend, et cela de manière classique, un processeur
(ou microprocesseur ou microcontrôleur) et des mémoires volatiles et non volatiles. L'unité de traitement peut être installée soit dans un microordinateur soit dans tout autre dispositif électronique à base d'un microprocesseur .
Lorsque le programme principal Po fait appel à un ou plusieurs sous-programmes SP1, SP2 , SP3 , un autre programme appelé éditeur de liens ed, intègre les différents sous-programmes dans le programme principal Po compilé pour le rendre exécutable. Cette transformation est schématisée par le bloc Ced de la figure 1. Afin de simplifier la description qui va suivre on désignera par FI, F2 , F3 , des fonctions ou des sous programmes du programme principal Po .
Selon l'invention, il est donc proposé de déployer le programme Po sous différentes versions Pol, Po2 ,
PoN de manière à assurer une sécurité contre la f aude.
La transformation réalisée est illustrée par le schéma de la figure 2.
Ce déploiement est réalisé par diversification du programme Po .
Plusieurs solutions de diversification vont être décrites dans la suite. Ces solutions peuvent être bien évidemment combinées c'est-à-dire qu'une même version présentera plusieurs variantes par rapport à une autre version. Ceci contribue à renforcer encore plus la sécurité apportée par la diversification.
Les N versions peuvent être obtenues bien entendu par une programmation individuelle de chacune d'elle ou au moyen d'un programme de diversification. De façon avantageuse, il est prévu que cette diversification soit mise en œuvre par un programme compilateur réalisé à cet effet et/ ou par un programme éditeur de liens comme cela va être détaillé à travers les différents exemples donnés dans la suite. Comme cela est illustré sur la figure 2, un programme Po unique écrit dans un langage quelconque (C par exemple) , va donc pouvoir être fourni en N versions Pol, Po2 ..., PoN, grâce aux opérations de compilation et d'édition de liens Ced. Les différentes versions assurent les mêmes fonctions que le programme Po tout en présentant des caractéristiques différentes qui font que la connaissante du comportement d'un programme ne permettra pas d'en retirer des informations utiles pour une autre version de ce même programme. Une première solution proposée consiste à diversifier les adresses aux quelles se trouvent les fonctions ou sous-programmes nécessaires lors de l'exécution du programme Po, dans la mémoire de programme MP (mémoire électriquement programmable de type EEPROM ou Flash/EEPROM) . Ces adresses sont donc modifiées par le compilateur (s'il s'agit de fonctions du programme) ou par l'éditeur de lien lorsqu'il s'agit de sous-programmes appelés. Cette solution est illustrée sur la figure 3.
On suppose, pour illustrer le propos que le programme Po fait appel aux trois fonctions et/ou sous- programmes FI, F2 , F3 , tel que cela est illustré sur la figure 2. Ces fonctions se trouvent classiquement à des adresses fixées de la mémoire de programme MP. Grâce à la transformation opérée par le compilateur, les fonctions vont se trouver à des adresses distinctes sur chaque version du programme. Sur la version Pol, FI se trouve aux adresses adl-adp ; F2 se trouve aux adresses adr-ads et F3 se trouve aux adresses ads-adn. Sur la version Po2 , FI se trouve aux adresses ado-ad4, F2 se trouve aux adresses ad4-adp et F3 se trouve aux adresses adp-adq. Sur la version PoN, FI se trouve aux adresses ado-ad4, F2 se trouve aux adresses adp-adq et F3 se trouve aux adresses adq-adr.
Une autre solution consiste à effectuer ce même type de diversification d'adresse mais cette fois ci pour la mémoire de travail MT (mémoire volatile RAM) .
On rappelle que classiquement et à titre d'exemple, pour exécuter une opération arithmétique par exemple C=A+B, l'unité arithmétique et logique du dispositif support utilise deux registres RI et R2. Le compilateur charge la valeur A qui est à l'adresse AD1 de la mémoire de travail dans le registre RI et charge la valeur B qui est à l'adresse AD2 de cette mémoire dans le registre R2. Le résultat C est stocké à l'adresse AD3 (les instructions de chargement et de transfert sont utilisées pour la mise en œuvre de cette opération. )
Selon l'invention, il peut être prévu que le chargement du contenu de ces deux registres se fasse à des adresses différentes pour chaque version de programme Po . De manière plus générale, pour une instruction I donnée, l'adresse de chargement du contenu des registres peut être modifiée par le compilateur. Un exemple pratique est illustré sur la figure 4, pour la mise en œuvre de l'opération C=A+B. Une autre solution consiste à réaliser une diversification des paramètres du programme ou des instructions elles-mêmes.
Plusieurs exemples vont illustrer cette solution dans la suite : II peut être prévu par exemple d'exécuter une instruction d'une manière différente sans rien changer au résultat soit en rajoutant des opérations inutiles soit en changeant une instruction par une instruction équivalente . Par exemple, une opération arithmétique telle que A+B peut être modifiée par le compilateur en A+C+B-C.
Les valeurs de C seront différentes d'une version à 1 ' autre .
Une opération de transfert A-B peut être modifiée en A→C→B.
Une opération conditionnelle : si A+B alors F sinon G, peut être modifiée par l'opération conditionnelle : si A≠B alors G sinon F. Ces différents exemples sont illustrés par le schéma de la figure 5.
Comme cela a été dit, l'invention s'applique tout particulièrement au déploiement de programmes contenant des données sensibles pour des dispositifs portables tels que les cartes à puce ou autres objets équivalents. Le ou les programmes déployés seront chargés en mémoire électriquement programmable de type
EEPROM ou Flash/EEPROM. Si un programme est modifié de manière à se trouver sous forme de 100 versions distinctes, ces 100 versions seront déployées de manière aléatoire pour équiper l'ensemble du parc de carte à puce prévu. Il est bien évident que si ce parc représente 1 million de cartes à puce distribuées sur tout un territoire géographique
(qui peut être très étendu) , des lots de cartes à puce posséderont une même version dudit programme. Cependant le nombre de carte à puce par lot sera insuffisant pour pouvoir retirer des caractéristiques intéressantes pour un fraudeur, d'autant plus que le déploiement géographique des cartes va empêcher pratiquement la reconstitution d'un même lot pour tout fraudeur.
La figure 6, illustre le déploiement des versions Pol, ...PoN, PoN+1 du programme Po sur des cartes à puce Cl,... CN, CN+1.
Une version donnée d'un programme peut être chargée à tout moment dans une carte à puce, soit avant sa distribution aux organismes de personnalisation soit pendant la personnalisation soit après c'est-à-dire lorsqu'un utilisateur possède cette carte.
Les programmes pouvant faire l'objet d'une telle diversification peuvent être des programmes d'application mais aussi le programme du système d'exploitation (OS) du dispositif portable.

Claims

REVENDICATIONS
1. Procédé de déploiement d'un programme Po, caractérisé en ce qu'il consiste à fournir N versions diversifiées de ce programme Po et à charger des versions différentes sur des supports d'informations distincts assurant ainsi une sécurité contre la fraude par analyse des caractéristiques dudit programme.
2. Procédé sécurisé de déploiement d'un programme selon la revendication 1, caractérisé en ce que les N versions différentes du programme Po sont obtenues de la manière suivante : le programme Po est écrit dans un langage quelconque, le programme est ensuite traduit N fois par un programme de diversification.
3. Procédé sécurisé de déploiement d'un programme selon la revendication 2, caractérisé en ce que le programme de diversification est un programme de compilation et un programme éditeur de liens qui introduisent une ou plusieurs variantes à chaque opération de compilation.
4. Procédé sécurisé de déploiement d'un programme selon l'une quelconque des revendications précédentes, caractérisé en ce que les supports prévus sont X dispositifs portables de type cartes à puce, les N versions étant réparties sur les X dispositifs, X étant supérieur ou égal à N.
5. Procédé de diversification d'un programme Po, caractérisé en ce qu'il consiste à prévoir un programme de diversification apte à introduire des variantes dans le programme Po de manière à obtenir N versions différentes de ce programme Po, assurant les mêmes fonctions que celui-ci tout en ayant des caractéristiques de comportement différentes, la connaissance du comportement d'une version de programme ne permettant pas ' de retirer des informations utiles pour une autre version.
6. Procédé de diversification d'un programme Po selon la revendication 5, caractérisé en ce que le programme de diversification est réalisé par un programme compilateur et un programme éditeur de liens, la diversification se faisant ' durant la compilation et/ou l'édition de liens dudit programme Po .
7. Procédé de diversification d'un programme Po selon la revendication 5 ou 6, caractérisé en ce qu'une première variante introduite durant la compilation et l'édition de liens consiste à modifier, d'une version à l'autre, les adresses de chargement des fonctions ou sous-programmes dudit programme Po, de la mémoire de programmes dans laquelle il sera enregistré.
8. Procédé de diversification d'un programme Po, selon les revendications 5, 6 ou 7 , caractérisé en ce qu'une deuxième variante introduite consiste à modifier, d'une version à l'autre, les adresses des registres tampons et des variables de la mémoire de travail utilisée pendant l'exécution dudit programme Po.
9. Procédé de diversification d'un programme Po, selon l'une quelconque des revendications 5 à 8, caractérisé qu'une troisième variante consiste à modifier au moins un paramètre dudit programme ou une instruction par une instruction équivalente, ou un sous-ensemble d'instructions par un autre sous-ensemble d'instructions fonctionnellement équivalent ou ajouter des opérations inutiles d'une version à l'autre dudit programme .
10. Procédé de diversification d'un programme Po, selon l'une quelconque des revendications 5 à 9, caractérisé en ce qu'il est mis en œuvre pour réaliser un déploiement sécurisé dudit programme Po sur des supports d'informations distincts tels que des dispositifs portables de type cartes à puce et assurer ainsi une sécurité contre la fraude par analyse des caractéristiques dudit programme.
11. Procédé de personnalisation de supports d'informations de type cartes à puce, caractérisé en ce qu'il comprend le chargement d'un programme Po, ce chargement étant mis en œuvre le procédé de déploiement selon la revendication 1.
PCT/FR2003/001627 2002-05-30 2003-05-28 Procede securise de deploiement d'un programme informatique sur des supports d'informations distincts Ceased WO2003102883A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003253057A AU2003253057A1 (en) 2002-05-30 2003-05-28 Secured method for deploying a computer programme on discrete data supports

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0206592A FR2840428B1 (fr) 2002-05-30 2002-05-30 Procede securise de deploiement d'un programme informatique sur des supports d'informations distincts
FR02/06592 2002-05-30

Publications (1)

Publication Number Publication Date
WO2003102883A1 true WO2003102883A1 (fr) 2003-12-11

Family

ID=29558825

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2003/001627 Ceased WO2003102883A1 (fr) 2002-05-30 2003-05-28 Procede securise de deploiement d'un programme informatique sur des supports d'informations distincts

Country Status (3)

Country Link
AU (1) AU2003253057A1 (fr)
FR (1) FR2840428B1 (fr)
WO (1) WO2003102883A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2980600A1 (fr) * 2011-09-23 2013-03-29 Oberthur Technologies Procede et systeme de securisation d'une application logicielle comprenant une instruction conditionnelle basee sur une variable booleenne

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996028795A1 (fr) * 1995-03-10 1996-09-19 Siemens Aktiengesellschaft Carte a puce avec systeme d'exploitation protege
US5559884A (en) * 1994-06-30 1996-09-24 Microsoft Corporation Method and system for generating and auditing a signature for a computer program
FR2809847A1 (fr) * 2000-06-06 2001-12-07 Gemplus Card Int Procede de personnalisation electrique de carte a puce

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559884A (en) * 1994-06-30 1996-09-24 Microsoft Corporation Method and system for generating and auditing a signature for a computer program
WO1996028795A1 (fr) * 1995-03-10 1996-09-19 Siemens Aktiengesellschaft Carte a puce avec systeme d'exploitation protege
FR2809847A1 (fr) * 2000-06-06 2001-12-07 Gemplus Card Int Procede de personnalisation electrique de carte a puce

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
COHEN F B: "OPERATING SYSTEM PROTECTION THROUGH PROGRAM EVOLUTION", COMPUTERS & SECURITY. INTERNATIONAL JOURNAL DEVOTED TO THE STUDY OF TECHNICAL AND FINANCIAL ASPECTS OF COMPUTER SECURITY, ELSEVIER SCIENCE PUBLISHERS. AMSTERDAM, NL, vol. 12, no. 6, 1 October 1993 (1993-10-01), pages 565 - 584, XP000415701, ISSN: 0167-4048 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2980600A1 (fr) * 2011-09-23 2013-03-29 Oberthur Technologies Procede et systeme de securisation d'une application logicielle comprenant une instruction conditionnelle basee sur une variable booleenne

Also Published As

Publication number Publication date
AU2003253057A1 (en) 2003-12-19
FR2840428A1 (fr) 2003-12-05
FR2840428B1 (fr) 2004-08-20

Similar Documents

Publication Publication Date Title
EP0475837B1 (fr) Procédé de gestion d'un programme d'application chargé dans un support à microcircuit
FR2681165A1 (fr) Procede de transmission d'information confidentielle entre deux cartes a puces.
FR2667171A1 (fr) Support portable a micro-circuit facilement programmable et procede de programmation de ce micro-circuit.
FR2713803A1 (fr) Carte à mémoire et procédé de fonctionnement.
EP0720098B1 (fr) Dispositif de sécurisation de systèmes d'information organisés autour de microprocesseurs
WO2005119583A2 (fr) Composant pour module de sécurité
WO2014063940A1 (fr) Procede de gestion d'identifiants dans une carte a circuit integre et carte a circuit integre correspondante
FR2872309A1 (fr) Procede de gestion d'une carte a puce multi-applicative
FR2823330A1 (fr) Procede et systeme de gestion de donnees destinees a etre stockees dans une memoire, par exemple du code d'une application charge dans une carte a puce programmable
EP1344137A1 (fr) Procede et dispositif de securisation d'un traitement de donnees
WO2003102883A1 (fr) Procede securise de deploiement d'un programme informatique sur des supports d'informations distincts
EP1960934B1 (fr) Procede pour securiser l'execution d'un code logiciel en langage intermediaire dans un appareil portatif
WO2020254761A1 (fr) Système d'applications de service pour terminaux de paiement
EP2901291B1 (fr) Procédé de gestion des ressources mémoire d'un dispositif de sécurité, tel qu'une carte à puce, et dispositif de sécurité mettant en oeuvre ledit procédé.
EP3470999A1 (fr) Sécurisation d'instructions de branchement conditionnel composé dans un programme informatique en code intermédiaire
EP1058917B1 (fr) Chargement de programmes informatiques en blocs
EP1942428B1 (fr) Procédé de vérification de conformité d'une plateforme électronique et/ou d'un programme informatique présent sur cette plateforme, dispositif et programme d'ordinateur correspondants
FR2875656A1 (fr) Diversification de cle dans un circuit integre
FR2812101A1 (fr) Protocole d'echange de messages entre applications implantees sur un systeme embarque, et systeme embarque correspondant
WO2005050343A2 (fr) Procede pour l'amelioration de l'efficacite et de la consommation memoire d'un systeme informatique
WO2003071733A1 (fr) Procede de generation de cles securisees pour un algorithme cryptographique
CA2283158A1 (fr) Procede de controle de l'etancheite d'applications chargees dans un terminal multi-applicatif et terminal pour la mise en oeuvre
EP2304559A1 (fr) Procédé de basculement entre deux versions d'une même application au sein d'un dispositif de traitement de l'information et ledit dispositif
FR2888369A1 (fr) Protection contre les attaques par generation de fautes sur les instructions de saut
FR3050847A1 (fr) Procede d'optimisation d'ecritures en memoire dans un dispositif

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP