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 PDF

Info

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
Application number
FR2111294A
Other languages
English (en)
Inventor
Michel Jaouen
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.)
STMicroelectronics Grand Ouest SAS
Original Assignee
STMicroelectronics Grand Ouest SAS
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 STMicroelectronics Grand Ouest SAS filed Critical STMicroelectronics Grand Ouest SAS
Priority to FR2111294A priority Critical patent/FR3128545A1/fr
Priority to US18/048,940 priority patent/US12437056B2/en
Priority to CN202211313947.9A priority patent/CN116028165A/zh
Publication of FR3128545A1 publication Critical patent/FR3128545A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/54Monitoring 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/75Protecting 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/755Protecting 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
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures 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

PROCÉDÉ DE TRANSACTION ENTRE UNE APPLICATION ET UN PÉRIPHÉRIQUE
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.
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.
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.
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.
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.
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.
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 :
illustrent schématiquement des modes de réalisation et de mise en œuvre de l’invention.
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)

  1. 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.
  2. 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.
  3. 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).
  4. 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).
  5. 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.
  6. 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.
  7. 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).
  8. 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.
FR2111294A 2021-10-25 2021-10-25 Procédé de transaction entre une application et un périphérique Pending FR3128545A1 (fr)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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