FR3128545A1 - Procédé de transaction entre une application et un périphérique - Google Patents
Procédé de transaction entre une application et un périphérique Download PDFInfo
- Publication number
- FR3128545A1 FR3128545A1 FR2111294A FR2111294A FR3128545A1 FR 3128545 A1 FR3128545 A1 FR 3128545A1 FR 2111294 A FR2111294 A FR 2111294A FR 2111294 A FR2111294 A FR 2111294A FR 3128545 A1 FR3128545 A1 FR 3128545A1
- Authority
- FR
- France
- Prior art keywords
- transaction
- configuration
- peripheral
- transformed
- abstraction layer
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/75—Protecting 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 by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting 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 by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
Selon un aspect, il est proposé un procédé de transaction entre une application (APP) exécutée par un processeur (PROC) et un périphérique (IP) par l’intermédiaire d’une couche d’abstraction matérielle (HAL), procédé comprenant : - une configuration du périphérique (IP) dans laquelle une configuration de transaction émise par l’application (APP) est écrite dans des registres de configuration du périphérique (IP) par l’intermédiaire de la couche d’abstraction matérielle (HAL), puis - une vérification d’une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), puis - une exécution de la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP) est conforme.
Figure pour l’abrégé : Fig 1
Description
Des modes de réalisation et de mise en œuvre concernent la sécurisation de certains aspects d'un système sur puce comme par exemple les transactions entre un processeur et un périphérique du système sur puce, notamment par rapport à la sécurité contre des attaques par injection de faute.
Un système sur puce comprend généralement un processeur et des périphériques, notamment des mémoires. Le processeur est configuré pour exécuter une application donnée. L’application peut prévoir un ou plusieurs services pouvant être mis en œuvre à l’exécution de l’application par le processeur.
Il est courant d’utiliser une couche d’abstraction matérielle (connue également par l’acronyme HAL, de l’anglais « hardware abstraction layer ») entre l’application et les périphériques matériels. Cette couche est un logiciel intermédiaire offrant des fonctions standardisées de manipulation du périphérique tout en cachant des détails techniques de la mise en œuvre de ce périphérique.
La couche d’abstraction matérielle est utilisée comme intermédiaire dans les transactions entre l’application mise en œuvre par le processeur et des accès à des registres des périphériques. En particulier, la couche d’abstraction matérielle peut être configurée pour écrire une configuration de transaction dans des registres de configuration des périphériques. Les registres de configuration d’un périphérique permettent à une application d’interagir avec ce périphérique par l’intermédiaire de la couche d’abstraction matérielle.
Par ailleurs, une personne mal avisée peut effectuer une attaque par injection de faute sur le système sur puce afin de perturber, voir rendre incontrôlable, l’exécution d’une application. Une attaque par injection de faute peut notamment être exécutée afin de modifier les valeurs dans les registres des périphériques. Cela peut créer des problèmes de sécurité pour le système sur puce.
Par exemple, une attaque par injection de faute peut être exécutée afin de modifier les valeurs d’un bloc d’une mémoire flash. De telles attaques par injection de faute peuvent être utilisées pour qu’une mauvaise opération soit effectuée par les périphériques. Une attaque par injection de faute peut également être effectuée sur un contrôleur d’accès direct à la mémoire pour transférer de façon non sécurisée des données de la mémoire. Une attaque par injection de fautes peut aussi être effectuée pour modifier une clé utilisée par un circuit de cryptographie.
La couche d’abstraction matérielle peut être adaptée pour vérifier la configuration de transaction qu’elle reçoit par l’application afin de s’assurer que la configuration de transaction est correcte avant de l’écrire dans les registres de configuration du périphérique. Néanmoins, une telle vérification est insuffisante si une attaque par injection de faute est mise en œuvre sur les registres de configuration du périphérique après cette vérification.
Afin de prévenir les attaques par injection de faute, il est possible d’exécuter des instructions d’un programme en ajoutant des délais aléatoires entre les exécutions des instructions. De tels délais aléatoires permettent de compliquer une répétition des attaques par injection de fautes.
Néanmoins, cette solution présente plusieurs inconvénients. Tout d’abord, cette solution ne permet pas d’obtenir une robustesse suffisante par rapport à des attaques par injection de faute poussées. En particulier, il est possible de répéter une attaque par injection de fautes en observant la consommation électrique du système sur puce. Un autre inconvénient est que l’utilisation de délais aléatoires ne permet pas de détecter une attaque par injection de faute. Ainsi, il n’est pas possible de savoir quand une mauvaise transaction a été effectuée suite à une telle attaque. En outre, l’ajout de délais aléatoires dans l’exécution du programme la ralentie. Ainsi, une telle solution n’est pas toujours adaptée pour des systèmes en temps réel.
Il existe donc un besoin de proposer une solution permettant de détecter les attaques par injection de faute lors des transactions entre une application et un périphérique.
Selon un aspect, il est proposé un procédé de transaction entre une application exécutée par un processeur et un périphérique par l’intermédiaire d’une couche d’abstraction matérielle, procédé comprenant :
- une configuration du périphérique dans laquelle une configuration de transaction émise par l’application est écrite dans des registres de configuration du périphérique par l’intermédiaire de la couche d’abstraction matérielle, puis
- une vérification d’une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique, puis
- une exécution de la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique est conforme.
- une configuration du périphérique dans laquelle une configuration de transaction émise par l’application est écrite dans des registres de configuration du périphérique par l’intermédiaire de la couche d’abstraction matérielle, puis
- une vérification d’une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique, puis
- une exécution de la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique est conforme.
Un tel procédé est mis en œuvre avant d’effectuer une transaction. Il permet de vérifier si la configuration de transaction définie dans les registres de configuration du périphérique par la couche d’abstraction matérielle n’a pas été modifiée avant d’effectuer la transaction.
Le procédé permet ainsi de détecter une attaque par injection de faute sur les registres de configuration du périphérique.
Le périphérique peut être une mémoire flash, un contrôleur d’accès direct à la mémoire ou un circuit de cryptographie par exemple. Dans le cas où le périphérique est un circuit de cryptographie, la configuration de transaction peut être une clé de cryptographie.
Dans un mode de mise en œuvre avantageux, le procédé comprend en outre une émission par le périphérique d’un signal d’avertissement à destination de l’application si la configuration de transaction n’est pas conforme, de façon à indiquer à l’application que la transaction n’est pas effectuée. Cela permet à l’application de savoir qu’une transaction n’a pas été effectuée pour pouvoir la renouveler.
Dans un mode de mise en œuvre avantageux, la vérification de la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique comprend :
- une lecture par la couche d’abstraction matérielle de la configuration de transaction enregistrée dans les registres de configuration du périphérique, puis
- un calcul par la couche d’abstraction matérielle d’une configuration de transaction transformée à partir de la configuration de transaction lue,
- un calcul par le périphérique d’une configuration de transaction transformée à partir de la configuration de transaction enregistrée dans les registres de configuration du périphérique,
- une comparaison entre la configuration de transaction transformée calculée par la couche d’abstraction matérielle et la configuration de transaction transformée calculée par le périphérique.
- une lecture par la couche d’abstraction matérielle de la configuration de transaction enregistrée dans les registres de configuration du périphérique, puis
- un calcul par la couche d’abstraction matérielle d’une configuration de transaction transformée à partir de la configuration de transaction lue,
- un calcul par le périphérique d’une configuration de transaction transformée à partir de la configuration de transaction enregistrée dans les registres de configuration du périphérique,
- une comparaison entre la configuration de transaction transformée calculée par la couche d’abstraction matérielle et la configuration de transaction transformée calculée par le périphérique.
La transaction est alors exécutée uniquement si la configuration de transaction transformée calculée par la couche d’abstraction matérielle est égale à la configuration de transaction transformée calculée par le périphérique.
Avantageusement, la vérification de la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique comprend en outre :
- une génération d’une valeur aléatoire dans un registre du périphérique après ladite configuration du périphérique, puis
- une lecture par la couche d’abstraction matérielle de la valeur aléatoire enregistrée dans un registre du périphérique, puis
- un calcul par la couche d’abstraction matérielle d’une valeur aléatoire transformée à partir de la valeur aléatoire lue,
- un calcul par le périphérique d’une valeur aléatoire transformée à partir de la valeur aléatoire enregistrée dans un registre du périphérique,
- une comparaison entre la valeur aléatoire transformée calculée par la couche d’abstraction matérielle et la valeur aléatoire transformée calculée par le périphérique.
- une génération d’une valeur aléatoire dans un registre du périphérique après ladite configuration du périphérique, puis
- une lecture par la couche d’abstraction matérielle de la valeur aléatoire enregistrée dans un registre du périphérique, puis
- un calcul par la couche d’abstraction matérielle d’une valeur aléatoire transformée à partir de la valeur aléatoire lue,
- un calcul par le périphérique d’une valeur aléatoire transformée à partir de la valeur aléatoire enregistrée dans un registre du périphérique,
- une comparaison entre la valeur aléatoire transformée calculée par la couche d’abstraction matérielle et la valeur aléatoire transformée calculée par le périphérique.
La transaction est alors exécutée uniquement si la valeur aléatoire transformée calculée par la couche d’abstraction matérielle est égale à la valeur aléatoire transformée calculée par le périphérique.
Selon un autre aspect, il est proposé un système sur puce comprenant :
- un processeur configuré pour exécuter une application,
- un périphérique comprenant des registres de configuration, l’application étant configurée pour communiquer avec le périphérique par l’intermédiaire d’une couche d’abstraction matérielle,
dans lequel la couche d’abstraction matérielle est adaptée pour :
- configurer le périphérique pour une transaction en écrivant, dans les registres de configuration du périphérique, une configuration de transaction émise par l’application,
et dans lequel la couche d’abstraction matérielle et le périphérique sont adaptés pour vérifier une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique,
le périphérique étant adapté pour exécuter la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique est conforme.
- un processeur configuré pour exécuter une application,
- un périphérique comprenant des registres de configuration, l’application étant configurée pour communiquer avec le périphérique par l’intermédiaire d’une couche d’abstraction matérielle,
dans lequel la couche d’abstraction matérielle est adaptée pour :
- configurer le périphérique pour une transaction en écrivant, dans les registres de configuration du périphérique, une configuration de transaction émise par l’application,
et dans lequel la couche d’abstraction matérielle et le périphérique sont adaptés pour vérifier une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique,
le périphérique étant adapté pour exécuter la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique est conforme.
Dans un mode de réalisation avantageux, le périphérique est configuré pour émettre un signal d’avertissement à destination de l’application si la configuration de transaction n’est pas conforme de façon à indiquer à l’application que la transaction n’est pas effectuée.
Avantageusement, pour vérifier la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique, la couche d’abstraction matérielle est configurée pour :
- lire la configuration de transaction enregistrée dans les registres de configuration du périphérique, puis
- calculer une configuration de transaction transformée à partir de la configuration de transaction lue,
et le périphérique est configuré pour :
- calculer une configuration de transaction transformée à partir de la configuration de transaction enregistrée dans les registres de configuration du périphérique,
- comparer entre la configuration de transaction transformée calculée par la couche d’abstraction matérielle et la configuration de transaction transformée calculée par le périphérique,
le périphérique étant adapté pour exécuter la transaction uniquement si la configuration de transaction transformée calculée par la couche d’abstraction matérielle est égale à la configuration de transaction transformée calculée par le périphérique.
- lire la configuration de transaction enregistrée dans les registres de configuration du périphérique, puis
- calculer une configuration de transaction transformée à partir de la configuration de transaction lue,
et le périphérique est configuré pour :
- calculer une configuration de transaction transformée à partir de la configuration de transaction enregistrée dans les registres de configuration du périphérique,
- comparer entre la configuration de transaction transformée calculée par la couche d’abstraction matérielle et la configuration de transaction transformée calculée par le périphérique,
le périphérique étant adapté pour exécuter la transaction uniquement si la configuration de transaction transformée calculée par la couche d’abstraction matérielle est égale à la configuration de transaction transformée calculée par le périphérique.
De préférence, pour vérifier la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique, le périphérique est en outre adapté pour générer une valeur aléatoire dans un registre du périphérique après la configuration du périphérique,
la couche d’abstraction matérielle est en outre configurée pour :
- lire la valeur aléatoire enregistrée dans un registre du périphérique, puis
- calculer une valeur aléatoire transformée à partir de la valeur aléatoire lue,
le périphérique est également adapté pour :
- calculer une valeur aléatoire transformée à partir de la valeur aléatoire enregistrée dans un registre du périphérique,
- comparer la valeur aléatoire transformée calculée par la couche d’abstraction matérielle au la valeur aléatoire transformée calculée par le périphérique,
le périphérique étant adapté pour exécuter la transaction uniquement si la valeur aléatoire transformée calculée par la couche d’abstraction matérielle est égale à la valeur aléatoire transformée calculée par le périphérique.
la couche d’abstraction matérielle est en outre configurée pour :
- lire la valeur aléatoire enregistrée dans un registre du périphérique, puis
- calculer une valeur aléatoire transformée à partir de la valeur aléatoire lue,
le périphérique est également adapté pour :
- calculer une valeur aléatoire transformée à partir de la valeur aléatoire enregistrée dans un registre du périphérique,
- comparer la valeur aléatoire transformée calculée par la couche d’abstraction matérielle au la valeur aléatoire transformée calculée par le périphérique,
le périphérique étant adapté pour exécuter la transaction uniquement si la valeur aléatoire transformée calculée par la couche d’abstraction matérielle est égale à la valeur aléatoire transformée calculée par le périphérique.
D'autres avantages et caractéristiques de l’invention apparaîtront à l’examen de la description détaillée de modes de mise en œuvre et de réalisation, nullement limitatifs, et des dessins annexés sur lesquels :
La illustre un système sur puce SOC selon un mode de réalisation. Le système sur puce SOC comprend un processeur PROC et au moins un périphérique IP. Ici, un seul périphérique est représenté. Toutefois, bien entendu, le système sur puce peut comprendre plusieurs périphériques. Le périphérique peut être une mémoire flash, un contrôleur d’accès direct à la mémoire ou un circuit de cryptographie par exemple.
Le processeur est configuré pour exécuter une application APP. L’application APP peut prévoir un ou plusieurs services pouvant être mis en œuvre à l’exécution de l’application APP par le processeur. L’application APP est enregistrée dans une mémoire MEM non volatile.
Le périphérique IP comprend des registres REG dont des registres de configuration. Les registres de configuration sont configurés pour enregistrer une configuration de transaction avant chaque transaction. Dans le cas où le périphérique est un circuit de cryptographie, la configuration de transaction peut être une clé de cryptographie.
Une couche d’abstraction matérielle HAL est prévue entre l’application APP et les registres REG du périphérique IP. L’application APP est configurée pour appeler la couche d’abstraction matérielle HAL pour interagir avec les registres du périphérique IP. La couche d’abstraction matérielle HAL est une couche logicielle enregistrée dans la mémoire MEM.
La couche d’abstraction matérielle HAL sert ainsi d’intermédiaire dans les transactions entre l’application APP et les registres du périphérique IP.
Le système sur puce est configuré pour mettre en œuvre un procédé de transaction entre l’application APP et le périphérique IP.
Les figures 2 à 5 illustrent un mode de mise en œuvre d’un tel procédé de transaction.
Le procédé comprend une étape 20, illustrée à la , dans laquelle l’application APP appelle la couche d’abstraction matérielle HAL pour effectuer une transaction avec le périphérique IP.
En particulier, l’application APP transmet à la couche d’abstraction matérielle HAL une configuration de transaction HALCONF, puis la couche d’abstraction matérielle HAL traduit cette configuration de transaction et écrit la configuration de transaction traduite CONF dans les registres PRGF de configuration du périphérique IP. Le périphérique IP génère ensuite une valeur aléatoire RND dans un de ses registres. Si le périphérique est un circuit de cryptographie, la configuration de transaction traduite CONF peut être une valeur de hachage de la clé de cryptographie (c’est-à-dire le résultat d’une fonction de hachage prenant en entrée la clé de cryptographie).
Le procédé comprend ensuite une étape 21, illustrée à la , dans laquelle la couche d’abstraction matérielle HAL lit la configuration de transaction CONF écrite dans les registres de configuration du périphérique IP. La couche d’abstraction matérielle HAL traduit cette configuration de transaction puis transmet sa traduction HALCONF à l’application APP. La couche d’abstraction matérielle HAL lit également le registre comprenant la valeur aléatoire RND puis transmet cette valeur aléatoire RND à l’application APP. Si le périphérique est un circuit de cryptographie, la couche d’abstraction matérielle lit la valeur de hachage de la clé de cryptographie qu’elle transmet ensuite à l’application, pour que cette dernière puisse la contrôler.
Le procédé comprend ensuite une étape 22, illustrée à la , dans laquelle l’application APP transmet à la couche d’abstraction matérielle HAL la configuration de transaction HALCONF et la valeur aléatoire RND reçues à l’étape 21. Si le périphérique est un circuit de cryptographie, l’application APP transmet à la couche d’abstraction matérielle HAL la valeur de hachage de la clé de cryptographie reçue à l’étape 21.
La couche d’abstraction matérielle HAL traduit ensuite cette configuration de transaction et calcule une configuration de transaction transformée CONFT à partir de la configuration de transaction traduite CONF. Par exemple, la couche d’abstraction matérielle HAL peut calculer un complément à un de la configuration de la transaction traduite CONF.
La couche d’abstraction matérielle HAL peut également effectuer une transformation de la valeur aléatoire RND reçue pour obtenir une valeur aléatoire transformée RNDT. Par exemple, la couche d’abstraction matérielle HAL peut calculer un complément à un de la valeur aléatoire.
Puis, la couche d’abstraction matérielle HAL écrit la configuration de transaction transformé CONFT et la valeur aléatoire RND ou la valeur aléatoire transformée RNDT dans des registres du périphérique IP. Ici, la couche d’abstraction matérielle HAL écrit la configuration de transaction transformé CONFT dans des registres PRGFT du périphérique IP et la valeur aléatoire transformée RNDT dans un autre registre du périphérique IP.
Si le périphérique est un circuit de cryptographie, la couche d’abstraction matérielle HAL calcule une valeur de hachage transformée de la clé de cryptographie à partir de la valeur de hachage transmise par l’application APP, puis écrit cette valeur de hachage transformée dans les registres du périphérique IP.
Le procédé comprend ensuite une étape 24, illustrée à la , dans laquelle le périphérique IP calcule une configuration de transaction transformée CONFTP à partir de la configuration CONF enregistrée dans les registres de configuration PRGF du périphérique IP. Cette configuration de transaction transformée CONFTP est calculée de la même manière que la configuration de transaction CONFT calculée précédemment par la couche d’abstraction matérielle HAL. Par exemple, le périphérique IP peut calculer un complément à un de la configuration de transaction CONF enregistrée dans les registres de configuration du périphérique IP.
Pour calculer la configuration de transaction transformée CONFTP, le périphérique IP comprend un circuit (non représenté) configuré pour effectuer ce calcul. Par exemple, le circuit peut être configuré pour générer un complément à un de la configuration transformée enregistrée dans les registres de configuration.
Dans le cas où, la couche d’abstraction matérielle HAL a précédemment calculé une valeur aléatoire transformée RNDT, le périphérique IP calcule également une valeur aléatoire transformée RNDTP à partir de la valeur aléatoire RND générée par le périphérique IP à l’étape 20.
La configuration de transaction transformée CONFTP calculée par le périphérique IP et la configuration de transaction transformée CONFT calculée par la couche d’abstraction matérielle HAL sont ensuite comparées par le périphérique IP. De même, la valeur aléatoire RND générée par le périphérique IP ou la valeur aléatoire transformée RNDTP calculée par le périphérique IP est ensuite comparé à la valeur aléatoire ou à la valeur aléatoire transformée RNDT écrite par la couche d’abstraction dans les registres du périphérique IP. Ici, c’est la valeur aléatoire transformée RNDTP calculée par le périphérique IP qui est comparé à la valeur aléatoire transformée RNDT écrite par la couche d’abstraction dans les registres du périphérique IP.
Si la configuration de transformée CONFTP calculée par le périphérique IP est égale à la configuration de transaction transformée CONFT calculée par la couche d’abstraction matérielle HAL sont égales et si la valeur aléatoire générée par le périphérique IP ou la valeur aléatoire transformée RNDTP par le périphérique IP est égale à la valeur aléatoire ou à la valeur aléatoire transformée RNDT écrite par la couche d’abstraction dans les registres du périphérique IP, alors la transaction est autorisée par le périphérique (OKT). Sinon, la transaction est refusée (NOT).
En particulier, si le périphérique est un circuit de cryptographie, le périphérique IP calcule une valeur de hachage transformée de la clé de cryptographie à partir de la valeur de hachage enregistrée dans les registres de configuration PRGF du périphérique IP, puis compare la valeur de hachage transformée calculée par le périphérique IP et la valeur de hachage transformée calculée par la couche d’abstraction matérielle HAL.
Ainsi, une transaction ne peut être effectuée uniquement en cas d’égalité entre les configurations de transaction transformées CONFTP et CONFT et entre les champs aléatoires ou les champs aléatoires transformés RNDT, RNDTP.
Il est alors possible d’empêcher une exécution d’une transaction lorsqu’une attaque par injection de faute intervient pour modifier la configuration de transaction CONF écrite dans les registres de configuration. En effet, une modification de la configuration de transaction dans les registres de configuration du périphérique IP peut être détectée grâce à la comparaison effectuée.
En particulier, comme vu précédemment, la configuration de transaction CONF enregistrée dans les registres de configuration est lue par la couche d’abstraction matérielle HAL à l’étape 21. Cette configuration lue est ensuite utilisée pour calculer une configuration de transaction transformée CONFT qui est par la suite comparée avec une configuration de transaction transformée CONFTP calculée à partir de la configuration de transaction CONF enregistrée dans les registres de comparaison du périphérique IP. Ainsi, une modification de la configuration de transaction CONF enregistrée dans les registres implique que la configuration de transaction transformée CONFTP calculée par le périphérique IP est différente de la configuration de transaction transformée CONFT calculée par la couche d’abstraction matérielle HAL. La comparaison permet alors de détecter cette différence entre les configurations de transaction transformées CONFTP, CONFT. La comparaison permet ainsi d’évaluer avant d’effectuer la transaction si la configuration de transaction CONF enregistré dans les registres de configuration du périphérique IP est bien celle souhaitée. Il est donc ainsi possible de détecter une attaque par injection de faute.
Ainsi, un tel procédé permet d’éviter que le périphérique IP effectue une transaction non contrôlée à partir d’une configuration non souhaitée.
Le procédé peut également comprendre, si une différence entre les configurations de transaction transformées CONFTP, CONFT est détectée, une émission d’un signal d’avertissement par le périphérique IP permettant d’indiquer à l’application APP que la transaction n’est pas effectuée. De la sorte, l’application APP peut savoir qu’une transaction n’a pas été exécutée et peut alors renouveler la transaction.
Claims (8)
- Procédé de transaction entre une application (APP) exécutée par un processeur (PROC) et un périphérique (IP) par l’intermédiaire d’une couche d’abstraction matérielle (HAL), procédé comprenant :
- une configuration du périphérique (IP) dans laquelle une configuration de transaction émise par l’application (APP) est écrite dans des registres de configuration du périphérique (IP) par l’intermédiaire de la couche d’abstraction matérielle (HAL), puis
- une vérification d’une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), puis
- une exécution de la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP) est conforme. - Procédé selon la revendication 1, comprenant en outre une émission par le périphérique (IP) d’un signal d’avertissement à destination de l’application (APP) si la configuration de transaction n’est pas conforme de façon à indiquer à l’application que la transaction n’est pas effectuée.
- Procédé selon l’une des revendications 1 ou 2, dans lequel la vérification de la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP) comprend :
- une lecture par la couche d’abstraction matérielle (HAL) de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), puis
- un calcul par la couche d’abstraction matérielle (HAL) d’une configuration de transaction transformée à partir de la configuration de transaction lue,
- un calcul par le périphérique (IP) d’une configuration de transaction transformée à partir de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP),
- une comparaison entre la configuration de transaction transformée calculée par la couche d’abstraction matérielle (HAL) et la configuration de transaction transformée calculée par le périphérique (IP),
et dans lequel la transaction est exécutée uniquement si la configuration de transaction transformée calculée par la couche d’abstraction matérielle (HAL) est égale à la configuration de transaction transformée calculée par le périphérique (IP). - Procédé selon la revendication 3, dans lequel la vérification de la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP) comprend en outre :
- une génération d’une valeur aléatoire dans un registre du périphérique (IP) après ladite configuration du périphérique (IP), puis
- une lecture par la couche d’abstraction matérielle (HAL) de la valeur aléatoire enregistrée dans un registre du périphérique (IP), puis
- un calcul par la couche d’abstraction matérielle (HAL) d’une valeur aléatoire transformée à partir de la valeur aléatoire lue,
- un calcul par le périphérique (IP) d’une valeur aléatoire transformée à partir de la valeur aléatoire enregistrée dans un registre du périphérique (IP),
- une comparaison entre la valeur aléatoire transformée calculée par la couche d’abstraction matérielle (HAL) et la valeur aléatoire transformée calculée par le périphérique (IP),
et dans lequel la transaction est exécutée uniquement si la valeur aléatoire transformée calculée par la couche d’abstraction matérielle (HAL) est égale à la valeur aléatoire transformée calculée par le périphérique (IP). - Système sur puce comprenant :
- un processeur configuré pour exécuter une application,
- un périphérique (IP) comprenant des registres de configuration, l’application étant configurée pour communiquer avec le périphérique (IP) par l’intermédiaire d’une couche d’abstraction matérielle (HAL),
dans lequel la couche d’abstraction matérielle (HAL) est adaptée pour :
- configurer le périphérique (IP) pour une transaction en écrivant, dans les registres de configuration du périphérique (IP), une configuration de transaction émise par l’application,
et dans lequel la couche d’abstraction matérielle (HAL) et le périphérique (IP) sont adaptés pour vérifier une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP),
le périphérique (IP) étant adapté pour exécuter la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP) est conforme. - Système selon la revendication 5, dans lequel le périphérique (IP) est configuré pour émettre un signal d’avertissement à destination de l’application si la configuration de transaction n’est pas conforme de façon à indiquer à l’application que la transaction n’est pas effectuée.
- Système selon l’une des revendications 5 ou 6, dans lequel pour vérifier la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), la couche d’abstraction matérielle (HAL) est configurée pour :
- lire la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), puis
- calculer une configuration de transaction transformée à partir de la configuration de transaction lue,
et le périphérique (IP) est configuré pour :
- calculer une configuration de transaction transformée à partir de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP),
- comparer entre la configuration de transaction transformée calculée par la couche d’abstraction matérielle (HAL) et la configuration de transaction transformée calculée par le périphérique (IP),
le périphérique (IP) étant adapté pour exécuter la transaction uniquement si la configuration de transaction transformée calculée par la couche d’abstraction matérielle (HAL) est égale à la configuration de transaction transformée calculée par le périphérique (IP). - Système selon la revendication 7, dans lequel pour vérifier la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), le périphérique (IP) est en outre adapté pour générer une valeur aléatoire dans un registre du périphérique (IP) après la configuration du périphérique (IP),
la couche d’abstraction matérielle (HAL) est en outre configurée pour :
- lire la valeur aléatoire enregistrée dans un registre du périphérique, puis
- calculer une valeur aléatoire transformée à partir de la valeur aléatoire lue,
le périphérique est également adapté pour :
- calculer une valeur aléatoire transformée à partir de la valeur aléatoire enregistrée dans un registre du périphérique,
- comparer la valeur aléatoire transformée calculée par la couche d’abstraction matérielle au la valeur aléatoire transformée calculée par le périphérique,
le périphérique (IP) étant adapté pour exécuter la transaction uniquement si la valeur aléatoire transformée calculée par la couche d’abstraction matérielle est égale à la valeur aléatoire transformée calculée par le périphérique.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR2111294A FR3128545A1 (fr) | 2021-10-25 | 2021-10-25 | Procédé de transaction entre une application et un périphérique |
| US18/048,940 US12437056B2 (en) | 2021-10-25 | 2022-10-24 | Transaction process between an application and a device |
| CN202211313947.9A CN116028165A (zh) | 2021-10-25 | 2022-10-25 | 应用和设备之间的事务处理过程 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR2111294 | 2021-10-25 | ||
| FR2111294A FR3128545A1 (fr) | 2021-10-25 | 2021-10-25 | Procédé de transaction entre une application et un périphérique |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| FR3128545A1 true FR3128545A1 (fr) | 2023-04-28 |
Family
ID=81325181
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR2111294A Pending FR3128545A1 (fr) | 2021-10-25 | 2021-10-25 | Procédé de transaction entre une application et un périphérique |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12437056B2 (fr) |
| CN (1) | CN116028165A (fr) |
| FR (1) | FR3128545A1 (fr) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118260760A (zh) * | 2022-12-26 | 2024-06-28 | 博通集成电路(上海)股份有限公司 | 安全启动中抵御故障注入攻击的方法 |
| FR3158816A1 (fr) * | 2024-01-26 | 2025-08-01 | Stmicroelectronics International N.V. | Protection de l'écriture de données |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190172047A1 (en) * | 2016-08-09 | 2019-06-06 | Huawei Technologies Co.,Ltd. | System on chip and processing device |
| US20200125756A1 (en) * | 2014-01-27 | 2020-04-23 | Cryptography Research, Inc. | Implementing access control by system-on-chip |
| US20210160134A1 (en) * | 2019-11-22 | 2021-05-27 | STMicroelectronics (Alps) SAS | Method for managing the operation of a system on chip, and corresponding system on chip |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6671802B1 (en) * | 2000-04-13 | 2003-12-30 | Hewlett-Packard Development Company, L.P. | Performance optimization of computer system by dynamically and immediately updating a configuration setting based on detected change in preferred use |
| US8638216B2 (en) * | 2004-09-17 | 2014-01-28 | Keith Lamon | Systems and methods for direct current system digital carried message conveyance |
| WO2021083349A1 (fr) * | 2019-11-01 | 2021-05-06 | 浙江地芯引力科技有限公司 | Procédé et système d'authentification de sécurité basée sur une puce de sécurité, puce de sécurité et support de stockage lisible |
| US11075809B2 (en) * | 2019-12-11 | 2021-07-27 | Vmware, Inc. | Methods and apparatus to deploy security-compliant workload domains |
| US11340960B2 (en) * | 2020-03-27 | 2022-05-24 | Intel Corporation | Apparatuses, methods, and systems for hardware-assisted lockstep of processor cores |
| EP4271271A4 (fr) * | 2020-12-31 | 2025-02-26 | Abbott Diabetes Care, Inc. | Systèmes intégrés dans des systèmes de surveillance médicale |
| US11550494B2 (en) * | 2021-02-03 | 2023-01-10 | Macronix International Co., Ltd. | Method to support high reliability multiple times program non-volatile configuration setting |
| US11636047B2 (en) * | 2021-08-31 | 2023-04-25 | Micron Technology, Inc. | Hash operations in memory for data sharing |
-
2021
- 2021-10-25 FR FR2111294A patent/FR3128545A1/fr active Pending
-
2022
- 2022-10-24 US US18/048,940 patent/US12437056B2/en active Active
- 2022-10-25 CN CN202211313947.9A patent/CN116028165A/zh active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200125756A1 (en) * | 2014-01-27 | 2020-04-23 | Cryptography Research, Inc. | Implementing access control by system-on-chip |
| US20190172047A1 (en) * | 2016-08-09 | 2019-06-06 | Huawei Technologies Co.,Ltd. | System on chip and processing device |
| US20210160134A1 (en) * | 2019-11-22 | 2021-05-27 | STMicroelectronics (Alps) SAS | Method for managing the operation of a system on chip, and corresponding system on chip |
Also Published As
| Publication number | Publication date |
|---|---|
| US20230127971A1 (en) | 2023-04-27 |
| CN116028165A (zh) | 2023-04-28 |
| US12437056B2 (en) | 2025-10-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9998438B2 (en) | Verifying the security of a remote server | |
| US8255578B2 (en) | Preventing access to a device from an external interface | |
| EP3665609B1 (fr) | Procédé et serveur de certification d'un document électronique | |
| EP2463833A1 (fr) | Procédé et dispositif de contrôle d'exécution pour des fonctions internes et des applications protégées embarquées dans des cartes à microcircuits pour terminaux mobiles | |
| FR2895608A1 (fr) | Procede pour la realisation d'un compteur securise sur un systeme informatique embarque disposant d'une carte a puce | |
| EP3241137B1 (fr) | Procede mis en oeuvre dans un document d'identite et document d'identite associe | |
| EP2988243A1 (fr) | Dispositif et procédé pour assurer des services de module de plateforme sécurisée | |
| EP3033857B1 (fr) | Authentification de code binaire | |
| FR3128545A1 (fr) | Procédé de transaction entre une application et un périphérique | |
| EP2011048B1 (fr) | Systeme et procede securise de traitement de donnees entre un premier dispositif et au moins un second dispositif disposant de moyens de surveillance | |
| CN106533685A (zh) | 身份认证方法、装置及系统 | |
| EP1830295A1 (fr) | Procédé de vérification de la conformité du contenu logique d'un appareil informatique à un contenu de référence | |
| CN101621512A (zh) | 一种p2p网络中识别伪造评价和防止恶意攻击的方法 | |
| EP2309409B1 (fr) | Procédé et dispositif de traitement de données | |
| FR3002670A1 (fr) | Procede et systeme de traitement cryptographique utilisant une donnee sensible | |
| WO2019129937A1 (fr) | Contrôle d'intégrité d'un dispositif électronique | |
| EP3579588B1 (fr) | Procédé de gestion d'une procédure d'un mode de secours de transaction, et dispositif associé | |
| FR3124288A1 (fr) | Technique d’accès à un support de stockage. | |
| WO2013174796A1 (fr) | Procede et carte a puce pour transmettre des informations | |
| WO2025125562A1 (fr) | Procédé d'authentification d'un individu pour la mise en œuvre d'une transaction sur un terminal marchand | |
| FR3043232A1 (fr) | Procede de verification d'identite lors d'une virtualisation | |
| KR20250050793A (ko) | 디지털 매체 또는 일반 출력 매체의 위변조 검증을 위한 전자인증 방법 및 시스템 | |
| CN120632889A (zh) | 一种应用程序的验证审核系统、方法、装置及存储介质 | |
| EP4348483A1 (fr) | Procede de gestion d'un registre local d'un noeud appartenant a un ensemble de noeuds contribuant a un registre distribue | |
| FR2856815A1 (fr) | Procede d'authentification de donnees contenues dans un objet a memoire |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PLFP | Fee payment |
Year of fee payment: 2 |
|
| PLSC | Publication of the preliminary search report |
Effective date: 20230428 |
|
| PLFP | Fee payment |
Year of fee payment: 3 |
|
| PLFP | Fee payment |
Year of fee payment: 4 |
|
| PLFP | Fee payment |
Year of fee payment: 5 |