FR2893431A1 - Composant integre securise et procede de securisation associe - Google Patents
Composant integre securise et procede de securisation associe Download PDFInfo
- Publication number
- FR2893431A1 FR2893431A1 FR0511594A FR0511594A FR2893431A1 FR 2893431 A1 FR2893431 A1 FR 2893431A1 FR 0511594 A FR0511594 A FR 0511594A FR 0511594 A FR0511594 A FR 0511594A FR 2893431 A1 FR2893431 A1 FR 2893431A1
- Authority
- FR
- France
- Prior art keywords
- register
- software task
- task
- executing
- component
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1497—Details of time redundant execution on a single processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1487—Generic software techniques for error detection or fault masking using N-version programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
L'invention concerne un composant intégré sécurisé comprenant un premier registre et des moyens pour exécuter une première tâche logicielle à partir du contenu du premier registre.Selon l'invention, le composant comprend également :● un deuxième registre,● des moyens pour mémoriser le contenu du premier registre dans le deuxième registre, et● des moyens exécuter une deuxième tâche logicielle à partir du contenu du deuxième registre.L'invention permet ainsi de réaliser dans un composant deux tâches logicielles totalement indépendantes l'une de l'autre.
Description
104546FR / 05-GR2-236 COMPOSANT INTEGRE SECURISE ET PROCEDE DE
SECURISATION ASSOCIE La présente invention concerne d'une manière générale la validation des données produites par un système informatique.
Plus particulièrement, l'invention s'applique au domaine des composants intégrés programmables du type comprenant un premier registre, comme par exemple un registre de réception d'un périphérique, et des moyens tels qu'un système à microprocesseur pour exécuter une première tâche logicielle à partir du contenu du premier registre. Dans le cadre de la présente invention, on entend par périphérique du microprocesseur tout dispositif du circuit intégré programmable distinct de l'unité centrale de traitement (microprocesseur) à laquelle il est relié et qui est susceptible d'assurer l'entrée ou la sortie de données. Il s'agit notamment des périphériques de communication avec l'extérieur du composant intégré. Un inconvénient des périphériques actuels est qu'ils ne sont pas sécurisés. Ainsi, en cas de défaillance logicielle ou matérielle d'un périphérique ou du microprocesseur, une information erronée peut être transmise vers l'extérieur. Or, si une information erronée peut être tolérée pour certaines applications, elle n'est pas acceptable pour des applications pour des applications sensibles. Par exemple, dans le domaine de l'automobile, il n'est pas acceptable qu'un microprocesseur transmette une commande d'activation erronée vers un dispositif de freinage ou vers un dispositif de déclenchement d'un coussin gonflable.
Une solution connue et largement utilisée consiste à mettre en parallèle un deuxième composant intégré, généralement identique au premier, parfois appelé "watchdog", dont la fonction principale est de surveiller les informations émises et / ou reçues par le premier composant intégré, et de signaler un défaut éventuel. Le deuxième composant intégré réalise généralement les mêmes fonctions que le premier, puis compare ses résultats avec des résultats produits par le premier composant avant de signaler ou non une erreur. Cette solution est certes efficace, mais elle est particulièrement chère à mettre en oeuvre dans la mesure où elle entraîne l'utilisation d'un deuxième composant intégré, susceptible de réaliser les mêmes fonctions. L'invention a pour but essentiel de proposer une nouvelle solution, beaucoup plus pratique et moins onéreuse que la solution connue.
Ce but est atteint avec un composant comprenant, de même qu'un composant connu, un premier registre et des moyens pour exécuter une première tâche logicielle à partir du contenu du premier registre. composant intégré comprend
registre, pour mémoriser le contenu du premier le deuxième registre, et exécuter une deuxième tâche logicielle à 25 partir du contenu du deuxième registre. L'invention concerne également un procédé de sécurisation d'un composant intégré programmable comprenant un premier registre et un système à microprocesseur. De même qu'un procédé connu, le procédé selon l'invention comprend les 30 étapes suivantes, consistant à : • mémoriser des données d'entrée dans le premier registre, v Selon l'invention, le également : • un deuxième • des moyens registre dans • des moyens • exécuter, par le système à microprocesseur, une première tâche logicielle à partir du contenu du premier registre. Le procédé selon l'invention se différencie des procédés connus en ce qu'il comprend les étapes suivantes consistant à : • mémoriser le contenu du premier registre dans un deuxième registre, • exécuter une deuxième tâche logicielle à partir du contenu du deuxième registre. Ainsi, l'idée essentielle de l'invention est de dupliquer une partie des informations reçues en entrée du composant, et notamment les données d'entrée mémorisées dans un premier registre tel que par exemple un registre de réception d'un port de communication du composant, afin de faire exécuter par le composant deux tâches logicielles de manière totalement indépendantes l'une de l'autre. On pourra prévoir éventuellement, en fonction des besoins des applications choisies, de dupliquer d'autres informations comme par exemple des signaux de commande tels que des signaux d'interruption. Les deux tâches logicielles étant exécutées de manière indépendante, une défaillance logicielle de l'une des tâches pourra être repérée par l'autre tâche. Ainsi, avec un composant selon l'invention, il n'est plus nécessaire d'utiliser un composant parallèle pour détecter une éventuelle défaillance. La deuxième tâche exécutée par le composant est ainsi en quelque sorte une tâche de surveillance de l'exécution de la première tâche.
L'invention sera mieux comprise et d'autres caractéristiques et avantages apparaîtront à la lecture de la description qui va suivre, d'un exemple de mise en oeuvre d'un composant intégré selon l'invention. La description, faite à titre indicatif et nullement limitatif, est à lire en relation au dessin annexé dans lequel la figure unique est un schéma de principe d'un composant intégré selon l'invention.
A titre d'exemple d'application, le composant selon l'invention et son fonctionnement vont être décrit dans le cadre d'un composant utilisé pour le déclenchement d'un coussin gonflable dans un véhicule. Bien sûr, l'invention n'est pas limitée à cet exemple particulier. Comme dit précédemment, l'invention concerne un composant intégré 100, comprenant notamment un premier registre 110 et des moyens 120 pour exécuter une première tâche logicielle à partir du contenu du premier registre.
Dans l'exemple choisi, le premier registre est un premier registre de réception de données d'un port d'entrée du composant intégré ; le dit port est destiné à recevoir des données externes, fournies par exemple par des capteurs de mesure 112 aptes à mesurer par exemple des accélérations ou des décélérations brutales associées à un choc, ou bien des instructions telles qu'une instruction d'activation, d'interruption, etc. fournies par des dispositifs externes 114. Le premier registre sert ainsi à mémoriser des données d'entrée, ou plus généralement des informations telles que des données ou des instructions, nécessaires à l'exécution de la première tâche logicielle. Eventuellement, le premier registre peut également comprendre un premier registre d'état pour mémoriser un signal d'interruption nécessaire à la mise en oeuvre de la première tâche logicielle. Les moyens pour exécuter la première tâche logicielle sont par exemple un système comprenant notamment un microprocesseur et une mémoire de programme dans laquelle est mémorisée la première tâche logicielle sous forme de lignes d'instructions à exécuter. Ils peuvent comprendre également un port de sortie 140, notamment pour fournir à l'extérieur du composant un résultat issu de la première tâche logicielle. La première tâche logicielle est une suite d'instructions, permettant de déterminer, dans l'exemple choisi et en fonction des données d'entrée reçues dans le premier registre, si un coussin gonflable doit être déclenché ou non, et de fournir ce résultat de type oui/non à un dispositif externe de déclenchement d'un coussin gonflable. La première tâche logicielle est connue et utilisée dans les composants actuels. Le composant selon l'invention est caractérisé en ce qu'il comprend également : • un deuxième registre 130, • des moyens (non représentés) pour mémoriser le contenu du premier registre 110 dans le deuxième registre 130, et • des moyens 140 pour exécuter une deuxième tâche logicielle à partir du contenu du registre 130. Le deuxième registre est dans un exemple de réalisation, une zone dédiée d'une mémoire de données du composant. Le deuxième registre comprend un deuxième registre de données et éventuellement un deuxième registre de d'état. Le deuxième registre est utilisé pour dupliquer le contenu (données et éventuellement signal d'interruption) mémorisé dans le premier registre. Les moyens pour exécuter la deuxième tâche logicielle sont dans un exemple les moyens 120 prévus également pour réaliser la première tâche logicielle. Dans ce cas, les deux tâches sont réalisées successivement. Dans un autre exemple, les moyens pour réaliser la deuxième tâche logicielle sont des moyens 140 différents mais similaires des moyens 120, ils vont comprendre également un processeur dédié et des ressources telles que une mémoire, un port de sortie, etc. Dans ce cas, les moyens pour exécuter la première tâche logicielle et les moyens pour exécuter la deuxième tâche logicielle sont deux systèmes à microprocesseur exécutant les deux tâches en parallèle. Le ou les systèmes à microprocesseur peuvent comprendre un microprocesseur, au moins une mémoire de travail et au moins un périphérique de sortie et / ou d'entrée. La deuxième tâche logicielle est en quelque sorte une tâche de surveillance, elle comprend une série d'instructions pour vérifier que la première tâche logicielle est exécutée correctement et / ou que le résultat que la première tâche produit est vraisemblable, en fonction des données d'entrée. Après exécution de la deuxième tâche logicielle de surveillance, on peut produire une information de type oui/non.
Dans un exemple, la deuxième tâche logicielle est strictement identique à la première tâche et elle comprend la même série d'instructions. Dans ce cas, le composant comprend de préférence également des moyens pour comparer un résultat produit par la deuxième tâche logicielle avec un résultat produit par la première tâche logicielle, et des moyens pour produire un signal d'alerte si le résultat de la comparaison est supérieur à une valeur prédéfinie, par exemple de l'ordre de quelques pourcents ou quelques dizaines de pourcents. Les deux tâches étant identiques, et les données d'entrée étant identiques (puisque le premier registre et son contenu ont été dupliqués à l'identique), les résultats fournis par les deux tâches devraient être identiques, à moins d'une défaillance dans l'exécution de l'une des tâches, ce qui est signalé par le signal d'alerte le cas échéant.
Dans un autre exemple, la deuxième tâche logicielle réalise la même fonction que la première tâche, mais elle comprend une série d'instructions différente (c'est le cas par exemple si on utilise deux algorithmes différents produisant soit le même résultat, soit deux résultats différents mais cohérents entre eux. Dans ce cas, le composant comprend de préférence également des moyens pour vérifier qu'un résultat produit par la deuxième tâche logicielle et un résultat produit par la première tâche logicielle sont cohérents entre eux, à quelques pourcent près. Les deux tâches étant identiques, et les données d'entrée étant identiques (puisque le premier registre et son contenu ont été dupliqués à l'identique), les résultats fournis par les deux tâches devraient être identiques ou cohérents, à moins d'une défaillance dans l'exécution de l'une des tâches, ce qui est signalé par le signal d'alerte le cas échéant. Dans un autre exemple, la deuxième tâche logicielle comprend une série d'instructions visant à déterminer, en fonction des données d'entrée, si certaines conditions sont réunies pour que le résultat de la première tâche soit positif (c'est-à-dire dans l'application choisie pour que la première tâche commande le gonflement du coussin). Dans l'application choisie, la deuxième tâche peut par exemple déterminer si la valeur absolue de la décélération mesurée par un capteur de choc est inférieure à une valeur minimale. La deuxième tâche est dans ce cas différente de la première, et on prévoit de préférence dans le composant des moyens (par exemple le port de sortie 160) pour autoriser ou non la transmission à l'extérieur (ou l'utilisation à l'extérieur) d'un résultat produit par la première tâche logicielle, en fonction d'un résultat produit par la deuxième tâche logicielle.35
Claims (13)
1. Composant intégré comprenant un premier registre et des moyens pour exécuter une première tâche logicielle à partir du contenu du premier registre, le composant étant caractérisé en ce qu'il comprend également • un deuxième registre, • des moyens pour mémoriser le contenu du premier registre dans le deuxième registre, et • des moyens exécuter une deuxième tâche logicielle à partir du contenu du deuxième registre.
2. Composant intégré selon la revendication 1, comprenant également des moyens pour comparer un résultat produit par la deuxième tâche logicielle avec un résultat produit par la première tâche logicielle, et des moyens pour produire un signal d'alerte si le résultat de la comparaison est supérieur à une valeur prédéfinie.
3. Composant intégré selon la revendication 2, comprenant également des moyens pour autoriser ou non la transmission à l'extérieur d'un résultat produit par la première tâche logicielle, en fonction d'un résultat produit par la deuxième tâche logicielle.
4. Composant selon l'une des revendications 1 à 3 dans lequel les moyens pour exécuter la première tâche logicielle et les moyens pour exécuter la deuxième tâche logicielle sont un unique système à microprocesseur exécutant les deux tâches successivement.
5. Composant selon l'une des revendications 1 à 4 dans lequel les moyens pour exécuter la première tâche logicielle et les moyens pour exécuter la deuxième tâche logicielle sont deux systèmes à microprocesseur exécutant les deux tâches en parallèle.
6. Composant selon la revendication 4 à 5, dans lequel le ou les systèmes à microprocesseur comprennent un microprocesseur, au moins une mémoire de travail et au moins un périphérique de sortie et / ou d'entrée.
7. Composant selon l'une des revendications précédentes, dans lequel le premier registre est un registre de réception d'un périphérique de communication du composant.
8. Composant selon l'une des revendications précédentes, dans lequel le deuxième registre est une zone d'une mémoire du composant.
9. Procédé de sécurisation d'un composant intégré programmable comprenant un premier registre et un système à microprocesseur, le procédé comprenant les étapes suivantes, consistant à : • mémoriser des données d'entrée dans le premier registre, • exécuter, par le système à microprocesseur, une première tâche logicielle à partir du contenu du premier registre, le dit procédé étant caractérisé en ce qu'il comprend les étapes suivantes consistant à : • mémoriser le contenu du premier registre dans un deuxième registre, • exécuter une deuxième tâche logicielle à partir du contenu du deuxième registre.
10. Procédé selon la revendication 9 au cours duquel, après exécution de la deuxième tâche logicielle de surveillance, on produit une information de type oui/non.
11. Procédé selon la revendication 1 au cours duquel, après exécution de la deuxième tâche logicielle de surveillance, on autorise ou non la transmission d'un résultat produit par la première tâche logicielle.
12. Procédé selon l'une des revendications 9 à 11 au cours duquel, la tâche logicielle de surveillance est exécutée par un deuxième système à microprocesseur en parallèle de la première tâche logicielle.
13. Procédé selon l'une des revendications 9 à 11, au cours duquel la première tâche logicielle et la deuxième tâche logicielle sont réalisées successivement par un même système à microprocesseur.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0511594A FR2893431A1 (fr) | 2005-11-16 | 2005-11-16 | Composant integre securise et procede de securisation associe |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0511594A FR2893431A1 (fr) | 2005-11-16 | 2005-11-16 | Composant integre securise et procede de securisation associe |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2893431A1 true FR2893431A1 (fr) | 2007-05-18 |
Family
ID=36590168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0511594A Pending FR2893431A1 (fr) | 2005-11-16 | 2005-11-16 | Composant integre securise et procede de securisation associe |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2893431A1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2927436A1 (fr) * | 2008-02-12 | 2009-08-14 | Ingenico Sa | Procede de securisation d'un programme informatique, dispositif, procede de mise a jour et serveur de mise a jour correspondants. |
EP3138019A4 (fr) * | 2014-04-30 | 2018-01-17 | Pivotal Software, Inc. | Validation de résultats d'analyse |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4864202A (en) * | 1986-11-14 | 1989-09-05 | Robert Bosch Gmbh | Method and apparatus for monitoring the operation of a computer-controlled operating element, particularly triggered safety apparatus for an automotive vehicle |
US5243607A (en) * | 1990-06-25 | 1993-09-07 | The Johns Hopkins University | Method and apparatus for fault tolerance |
US5359515A (en) * | 1989-06-29 | 1994-10-25 | Robert Bosch Gmbh | Vehicle occupant safety system and method for operating the same |
US5920715A (en) * | 1995-02-10 | 1999-07-06 | Pilz Gmbh & Co. | System architecture permitting verified and unverified programs to execute safely on one processor |
US6819992B1 (en) * | 1999-10-05 | 2004-11-16 | Autoliv Development Ab | Vehicle safety arrangement |
-
2005
- 2005-11-16 FR FR0511594A patent/FR2893431A1/fr active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4864202A (en) * | 1986-11-14 | 1989-09-05 | Robert Bosch Gmbh | Method and apparatus for monitoring the operation of a computer-controlled operating element, particularly triggered safety apparatus for an automotive vehicle |
US5359515A (en) * | 1989-06-29 | 1994-10-25 | Robert Bosch Gmbh | Vehicle occupant safety system and method for operating the same |
US5243607A (en) * | 1990-06-25 | 1993-09-07 | The Johns Hopkins University | Method and apparatus for fault tolerance |
US5920715A (en) * | 1995-02-10 | 1999-07-06 | Pilz Gmbh & Co. | System architecture permitting verified and unverified programs to execute safely on one processor |
US6819992B1 (en) * | 1999-10-05 | 2004-11-16 | Autoliv Development Ab | Vehicle safety arrangement |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2927436A1 (fr) * | 2008-02-12 | 2009-08-14 | Ingenico Sa | Procede de securisation d'un programme informatique, dispositif, procede de mise a jour et serveur de mise a jour correspondants. |
EP2090984A1 (fr) * | 2008-02-12 | 2009-08-19 | Compagnie Industrielle et Financiere d'Ingenierie "Ingenico" | Procédé de sécurisation d'un programme informatique, dispositif, procédé de mise à jour et serveur de mise à jour correspondants |
EP3138019A4 (fr) * | 2014-04-30 | 2018-01-17 | Pivotal Software, Inc. | Validation de résultats d'analyse |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110300686B (zh) | 数据分析装置及存储介质 | |
US11899785B2 (en) | Method for detecting an unauthorized physical access to a bus system | |
CA3135956A1 (fr) | Systeme de surveillance de la sante d'un helicoptere | |
US20230229762A1 (en) | Anomaly detection device and anomaly detection method | |
FR2926377A1 (fr) | Circuit et procede de traitement d'erreurs dans des systemes fonctionnant en temps reel | |
JP2020047086A (ja) | 車両用監視装置 | |
CN117818623A (zh) | 交通工具的安全和关键信息记录机制 | |
FR2893431A1 (fr) | Composant integre securise et procede de securisation associe | |
KR20160062259A (ko) | 차량 이상 상태를 관리하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록매체 | |
FR3088909A1 (fr) | Procédé et système de sécurisation d’un aéronef contre les cyberattaques | |
EP0661673A1 (fr) | Procédé de gestion de la maintenance d'un véhicule, ordinateur de bord et station de diagnostic associée mettant en oeuvre le procédé | |
FR2916290A1 (fr) | Systeme de selection d'une donnee representative d'un parametre de l'air, procede et programme d'ordinateur associes | |
WO2020059807A1 (fr) | Dispositif de surveillance de véhicule | |
WO2017178550A1 (fr) | Procédé de contrôle d'intégrité de l'avionique d'un aéronef, dispositif et produit programme d'ordinateur associés | |
US20230098727A1 (en) | Methods and systems for monitoring driving automation | |
CN111145386A (zh) | 一种基于区块链管理行车电脑数据的方法、设备及介质 | |
FR3091400A1 (fr) | Procédé et dispositifs de calcul d'un indice de responsabilité d’un conducteur de véhicule | |
EP4275124B1 (fr) | Dispositif et procédé de calcul de paramètres de conduite | |
JP2020047088A (ja) | 車両用監視装置 | |
CN114189463B (zh) | 提醒方法、装置、电子设备及存储介质 | |
US11403858B2 (en) | Vehicular monitoring device | |
WO2023083693A1 (fr) | Module et procédé d'aide à la conduite d'un véhicule automobile | |
CN117037328A (zh) | 车辆的异常检测方法、相关设备及车辆 | |
EP2574944B1 (fr) | Déclenchement d'attaques sur des composants de carte à puce | |
EP2922712B1 (fr) | Procede et systeme de surveillance de pression des pneumatiques d'un vehicule automobile |