FR3142576A1 - Interface de dispositif hôte pour une authentification de débogage - Google Patents

Interface de dispositif hôte pour une authentification de débogage Download PDF

Info

Publication number
FR3142576A1
FR3142576A1 FR2212575A FR2212575A FR3142576A1 FR 3142576 A1 FR3142576 A1 FR 3142576A1 FR 2212575 A FR2212575 A FR 2212575A FR 2212575 A FR2212575 A FR 2212575A FR 3142576 A1 FR3142576 A1 FR 3142576A1
Authority
FR
France
Prior art keywords
register
processing unit
port
external device
host
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
FR2212575A
Other languages
English (en)
Inventor
Xavier Chbani
Nadia VAN-DEN-BOSSCHE
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.)
ST MICROELECTRONICS INT NV
STMICROELECTRONICS INTERNATIONAL NV
Original Assignee
ST MICROELECTRONICS INT NV
STMICROELECTRONICS INTERNATIONAL NV
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 ST MICROELECTRONICS INT NV, STMICROELECTRONICS INTERNATIONAL NV filed Critical ST MICROELECTRONICS INT NV
Priority to FR2212575A priority Critical patent/FR3142576A1/fr
Priority to EP23210739.1A priority patent/EP4379582A1/fr
Priority to US18/521,480 priority patent/US20240176864A1/en
Priority to CN202311619883.XA priority patent/CN118113544A/zh
Publication of FR3142576A1 publication Critical patent/FR3142576A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

Interface de dispositif hôte pour une authentification de débogage La présente description concerne un dispositif électronique comprenant : un port de débogage (112) fournissant une interface de communication à des fins de débogage ; un ou plusieurs ports d'accès à des unités de traitement (AP1, APn) ; un circuit d'interface d'authentification (110) configuré pour authentifier le dispositif externe (200) ; et un port d'accès supplémentaire (AP0) relié entre le port de débogage (112) et le circuit d'interface d'authentification (110), le port d'accès supplémentaire (AP0) étant configuré pour être dans un état ouvert dans lequel des communications sont relayées entre le port de débogage et le circuit d'authentification d'interface (110), le circuit d'authentification d'interface (110) comprenant des registres (202) comportant un registre d'état (302) qui peut être lu par le dispositif externe (200) par l'intermédiaire du port de débogage (112) et du port d'accès supplémentaire (AP0), le registre d'état étant configuré pour stocker une indication de l'état ouvert ou fermé de chacun des ports d'accès à des unités de traitement (AP1, APn). Figure pour l'abrégé : Fig. 2

Description

Interface de dispositif hôte pour une authentification de débogage
La présente description concerne de façon générale de façon générale le domaine des dispositifs électroniques tels que des microcontrôleurs et, en particulier, un circuit d'interface et un procédé permettant de sécuriser l'accès à des fonctions données de dispositifs électroniques, tels que des fonctions de débogage.
Des dispositifs électroniques tels que des microcontrôleurs ou d'autres types de circuits intégrés comprennent souvent des mémoires, telles qu'une mémoire Flash, une mémoire vive RAM (de l'anglais "random access memory", mémoire à accès aléatoire) et des registres, qui peuvent stocker des données sensibles. En outre, des unités de traitement, telles que des CPU (de l'anglais "Central Processing Units", unités de traitement centrales) de tels dispositifs électroniques peuvent manipuler des données sensibles pendant un traitement. Des données sensibles désignent de quelconques données qui devraient rester secrètes et ne devraient donc pas être accessibles depuis l'extérieur du dispositif. Les données sensibles comprennent par exemple des clefs de chiffrement, des mots de passe, des codes logiciels, des codes de démarrage, ou analogues. De tels dispositifs électroniques comprennent généralement des mécanismes pour protéger les données stockées sur ou sinon manipulées par le dispositif. Par exemple, des données sont stockées dans les mémoires au moment de la fabrication du dispositif en utilisant un ou plusieurs ports d'accès, et ces ports d'accès sont ensuite fermés pour éviter un accès ultérieur aux mémoires ou aux unités de traitement pendant la durée de vie du dispositif. De tels ports d'accès peuvent également être utilisés pour éviter un accès à des périphériques du dispositif électronique.
Toutefois, il est parfois souhaitable que des mémoires, des unités de traitement et/ou des périphériques d'un dispositif électronique soient rendus accessibles pendant la durée de vie du dispositif, par exemple à des fins de débogage. En particulier, une analyse des données stockées dans la mémoire et/ou dans des registres d'une CPU par un ingénieur d'application de champ peut identifier des origines d'un comportement défectueux. Toutefois, il y a des défis techniques et sécuritaires à mettre en œuvre une interface permettant d'ouvrir des ports d'accès afin d'accéder à une mémoire, des unités de traitement et/ou des dispositifs périphériques pendant la durée de vie du dispositif.
Un aspect prévoit un dispositif électronique comprenant : un port de débogage fournissant une interface de communication à des fins de débogage ; une première unité de traitement ; un ou plusieurs ports d'accès à des unités de traitement reliés au port de débogage, un premier des ports d'accès à des unités de traitement étant relié entre le port de débogage et la première unité de traitement, chacun des un ou plusieurs ports d'accès à des unités de traitement étant configuré pour être dans un état parmi un état ouvert dans lequel il relaie des communications vers et depuis le port de débogage et un état fermé dans lequel il bloque des communications vers et depuis le port de débogage ; un circuit d'interface d'authentification configuré pour authentifier un dispositif externe ; et un port d'accès supplémentaire relié entre le port de débogage et le circuit d'interface d'authentification, le port d'accès supplémentaire étant configuré pour être dans un état ouvert dans lequel des communications sont relayées entre le port de débogage et le circuit d'authentification d'interface, le circuit d'authentification d'interface comprenant des registres comportant un registre d'état qui peut être lu par le dispositif externe par l'intermédiaire du port de débogage et du port d'accès supplémentaire, le registre d'état étant configuré pour stocker une indication de l'état ouvert ou fermé de chacun des ports d'accès à des unités de traitement.
Selon un mode de réalisation, les registres comportent en outre un registre hôte configuré pour être lu par la première unité de traitement et dans lequel le dispositif externe peut écrire par l'intermédiaire du port de débogage et du port d'accès supplémentaire.
Selon un mode de réalisation, les registres comportent en outre un registre de dispositif configuré pour être lu par le dispositif externe par l'intermédiaire du port de débogage et du port d'accès supplémentaire et dans lequel la première unité de traitement peut écrire.
Selon un mode de réalisation, les registres comportent en outre un registre d'accusé de réception pour indiquer un moment auquel au moins une partie d'un message électronique est disponible pour être lue dans le registre hôte et un moment auquel au moins une partie d'un message électronique est disponible pour être lue dans le registre de dispositif, le registre d'accusé de réception étant par exemple à lecture seule pour la première unité de traitement et pour le dispositif externe.
Selon un mode de réalisation, le circuit d'interface d'authentification est configuré : pour détecter le moment auquel au moins une partie d'un message électronique a été écrite dans le registre hôte, et pour mettre à un, en réponse, un bit d'accusé de réception hôte dans le registre d'accusé de réception ; et pour détecter le moment auquel la première unité de traitement lit le registre hôte et, en réponse, pour réinitialiser le bit d'accusé de réception hôte dans le registre d'accusé de réception.
Selon un mode de réalisation, le circuit d'interface d'authentification est configuré : pour détecter le moment auquel au moins une partie d'un message électronique a été écrite dans le registre de dispositif, et pour mettre à un, en réponse, un bit d'accusé de réception de dispositif dans le registre d'accusé de réception ; et pour détecter le moment auquel le dispositif externe lit le registre de dispositif et, en réponse, pour réinitialiser le bit d'accusé de réception de dispositif dans le registre d'accusé de réception.
Selon un mode de réalisation, la première unité de traitement est configurée : pour lire à partir du registre hôte une requête d'authentification provenant du dispositif externe ; pour authentifier le dispositif externe ; et pour mettre au moins un parmi les un ou plusieurs ports d'accès à des unités de traitement à un état ouvert, amenant ainsi l'indication de l'état des un ou plusieurs ports d'accès à des unités de traitement à être mis à jour dans le registre d'état.
Selon un mode de réalisation, la première unité de traitement est configurée pour authentifier le dispositif externe en : stockant un une requête de mot de passe ou défi d'authentification dans le registre de dispositif ; lisant un mot de passe ou un certificat d'authentification à partir du registre hôte ; et en vérifiant le certificat ou le mot de passe.
Selon un mode de réalisation, le dispositif électronique comprend en outre un compteur monotone, la première unité de traitement étant en outre configurée pour lire à partir du certificat une indication d'une valeur de compte à partir de laquelle une fonctionnalité de débogage est autorisée, et la première unité de traitement est configurée pour exécuter une séquence de démarrage comprenant l'incrémentation du compteur monotone, la fonctionnalité de débogage étant autorisée une fois que le compteur monotone a atteint ladite valeur de compte.
Selon un mode de réalisation, les ports d'accès à des unités de traitement sont reliés chacun à une unité de traitement associée.
Selon un mode de réalisation, le dispositif électronique comprend en outre : une interface périphérique ; et un port d'accès à des interfaces périphériques relié entre le port de débogage et l'interface périphérique, le port d'accès à des interfaces périphériques étant configuré pour être dans un état parmi un état ouvert dans lequel il relaie des communications vers et depuis le port de débogage et un état fermé dans lequel il bloque des communications vers et depuis le port de débogage, dans lequel le registre d'état est configuré pour stocker une indication de l'état ouvert ou fermé du port d'accès des interfaces périphériques.
Un autre aspect prévoit un procédé de déclenchement d'un débogage du dispositif électronique précédent, comprenant : la lecture, par le dispositif externe par l'intermédiaire du port de débogage et du port d'accès supplémentaire, de l'état de chacun des ports d'accès à des unités de traitement stockés par le registre d'état ; et le déclenchement, par le dispositif externe, du débogage d'une ou de plusieurs des unités de traitement qui sont à l'état ouvert.
Un autre aspect de la présente description concerne un support non transitoire lisible par ordinateur stockant un programme qui, lorsqu'il est exécuté par un système informatique ou processeur dans un dispositif externe, amène le dispositif externe à mettre en œuvre le procédé tel que défini précédemment.
Le support non transitoire lisible par ordinateur peut avoir des caractéristiques et avantages qui sont analogues à ceux discutés ci-après en relation avec le procédé associé et le dispositif associé.
Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles :
la représente schématiquement un dispositif électronique selon un exemple de mode de réalisation de la présente description ;
la représente schématiquement des ports d'accès au dispositif électronique de la plus en détail selon un exemple de mode de réalisation de la présente description ;
la représente schématiquement des registres d'un circuit d'interface d'authentification de l'interface de communication de la selon un exemple de mode de réalisation de la présente description ; et
la est un organigramme représentant des opérations d'un procédé d'accès à un dispositif électronique à des fins de débogage à l'aide d'un dispositif externe selon un exemple de mode de réalisation de la présente description.
De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques.
Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. Par exemple, des techniques de débogage destinés à des dispositifs électroniques à l'aide d'un programme de débogage externe sont bien connues dans l'état de l'art et n'ont pas été décrites en détail.
Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments.
Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures.
Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près.
Le terme "mémoire volatile" est utilisé ici pour désigner un dispositif mémoire dans lequel des données stockées dans la mémoire sont conservées seulement tant que le dispositif est alimenté, ce qui signifie que les données sont perdues au moment d'un arrêt de l'alimentation. Par contre, une "mémoire non volatile" conserve ses données stockées même lorsque le dispositif n'est plus alimenté.
La représente schématiquement un dispositif électronique 100 selon un exemple de mode de réalisation de la présente description. Le dispositif électronique 100 est par exemple un circuit intégré. Dans certains modes de réalisation, le dispositif électronique est un microcontrôleur. Le dispositif électronique 100 comprend par exemple une ou plusieurs unités de traitement CPU1, CPU2, CPUn, telles que des unités de traitement centrales (CPU). Par exemple, dans certains modes de réalisation, le dispositif électronique 100 comprend au moins deux unités de traitement. Une des unités de traitement du dispositif électronique 100 est par exemple désignée comme étant une unité de traitement maître. Dans les exemples de mode de réalisation de la description qui suit, l'unité de traitement CPU1 est désignée comme étant l'unité de traitement maître, bien que dans des variantes de modes de réalisation une autre des unités de traitement pourrait être le maître.
Les unités de traitement CPU1 à CPUn sont par exemple reliées à un bus système 102, qui est en outre relié à un ou plusieurs circuits mémoire. Les circuits mémoire peuvent comprendre une ou plusieurs mémoires non volatiles et/ou une ou plusieurs mémoires volatiles. Dans l'exemple de la , les circuits mémoire comportent une mémoire non volatile 104 (FLASH), qui est par exemple une mémoire flash, et une mémoire volatile 106 (RAM), qui est par exemple une mémoire vive. Les un ou plusieurs circuits mémoire 104, 106 peuvent stocker par exemple un code logiciel comportant des instructions qui sont exécutées par les une ou plusieurs unités de traitement afin de mettre en œuvre les fonctionnalités du dispositif électronique 100.
Dans certains modes de réalisation, le dispositif électronique 100 comprend en outre un compteur monotone 108 (MONOTONIC CNTR). Le compteur monotone 108 peut être relié par exemple au bus 102.
Des compteurs monotones sont connus dans l'état de la technique, un exemple d'un tel compteur étant décrit dans la publication "Virtual Monotonic Counters and Count-Limited Objects using a TPM without a Trusted OS" de L.F.G. Sarmenta, M. Van Dijk, C.W. O'Donnell, J. Rhodes et S. Devadas, et en particulier dans la partie 3 de cet article. Cet article décrit des modes de réalisation de compteurs mis en œuvre de façon matérielle et/ou logicielle. Le compteur monotone 108 est par exemple mis en œuvre de façon matérielle sous forme d'un circuit numérique, tel qu'un circuit intégré propre à une application (ASIC). Le compteur monotone 108 est configuré pour maintenir une valeur de compte accessible au niveau d'une sortie 109 du compteur. Dans l'exemple de la , le compteur monotone 108 peut être relié à la mémoire non volatile 104.
Après une instruction d'incrémentation, par exemple générée par l'unité de traitement maître CPU1, le compteur monotone 108 est configuré pour augmenter irréversiblement sa valeur de compte de une ou de plusieurs unités, mais, après chaque incrément, l'opération n'est pas réversible. En effet, le compteur monotone 108 est configuré de sorte que sa valeur de compte puisse seulement augmenter et ne puisse jamais diminuer. De plus, entre deux incréments, la valeur de compte est protégée contre une quelconque modification, de sorte qu'elle ne puisse être ni effacée, ni modifiée. Seule l'instruction d'incrémentation permet de remplacer la valeur de compte par une nouvelle valeur qui est supérieure à la valeur courante.
Le compteur monotone 106 est configuré de sorte qu'aucune instruction, autre qu'une réinitialisation du dispositif électronique 100, ne permette au compteur de revenir à une valeur de compte précédente une fois que l'instruction d'incrémentation est exécutée. Dans le cas où la valeur de compte est stockée de façon volatile, chaque fois que le dispositif électronique 100 n'est plus alimenté, la valeur de compte est perdue et chaque fois que le dispositif 100 est redémarré, le compteur monotone 108 génère par exemple de nouveau une valeur de compte initiale. Dans le cas où la valeur de compte est stockée dans une mémoire non volatile, à chaque redémarrage, une valeur de compte courante stockée dans la mémoire non volatile est par exemple réécrite par la valeur de compte initiale.
Le dispositif électronique 100 comprend en outre un circuit d'interface d'authentification 110 (DBG AUTH HW I/F), qui est par exemple un circuit matériel relié au bus 102 et configuré pour permettre une authentification d'un dispositif externe (non représenté en ), qui peut être connecté au dispositif électronique 100 à des fins de débogage.
Le dispositif électronique 100 comprend en outre un port de débogage 112 (DEBUG PORT) fournissant une interface de communication à des fins de débogage. Par exemple, le port de débogage 112 est un circuit matériel comprenant des tampons de données et/ou un autre circuit destiné à faciliter des communications de données entre le dispositif électronique 100 et un dispositif externe qui est relié au port de débogage 112. Par exemple, le port de débogage 112 comprend une interface de communications câblées configurée pour fournir des communications câblées entre le dispositif électronique 100 et le dispositif externe, l'interface de communications câblées comprenant par exemple un socle pour recevoir une prise d'un câble reliant le dispositif 100 au dispositif externe. Selon une variante, le port de débogage 112 comprend une interface de communication sans fil pour fournir des communications sans fil entre le dispositif électronique 100 et le circuit externe.
Le port de débogage 112 est par exemple relié au circuit d'interface d'authentification 110 et à chacun des circuits de traitement CPU1 à CPUn par l'intermédiaire d'un bus dédié 114, différent du bus système 102.
Bien que cela ne soit pas représenté en , le dispositif électronique 100 peut comprendre en outre un ou plusieurs circuits d'interface de dispositifs périphériques pour interfacer avec des dispositifs périphériques du dispositif 100. Par exemple, de tels circuits d'interface sont également reliés au bus système 102 et sont également accessibles par le port de débogage 112 par l'intermédiaire du bus dédié 114.
La représente schématiquement des ports d'accès AP0 à APn du dispositif électronique 100 de la selon un exemple de mode de réalisation de la présente description.
En particulier, le port de débogage 112 est relié à chacune des unités de traitement CPU1 à CPUn par l'intermédiaire, par exemple, du bus dédié 114 et par l'intermédiaire de ports d'accès correspondants AP1 à APn. Ces ports d'accès seront également désignés ici comme étant des ports d'accès à des unités de traitement et sont capables chacun d'être dans des états ouvert et fermé. En outre, dans le cas où le dispositif électronique 100 comprend un ou plusieurs circuits d'interface de dispositifs périphériques, le port de débogage 112 est par exemple relié à chaque circuit d'interface par l'intermédiaire du bus dédié 114 et par l'intermédiaire d'un port d'accès à des interfaces périphériques correspondant (non représenté) similaire aux ports d'accès AP1 à APn. Dans ce qui suit, ce qui est décrit en relation avec les ports d'accès à des unités de traitement s'applique, toute choses étant égales par ailleurs, aux ports d'accès à des interfaces périphériques.
Lorsqu'il est à l'état ouvert, chaque port d'accès relaie des communications vers et depuis le port de débogage 112. Lorsqu'il est à l'état fermé, chaque port d'accès bloque des communications vers et depuis le port de débogage 112.
En outre, le port de débogage 112 est par exemple relié au circuit d'interface d'authentification 110, par exemple par l'intermédiaire du bis dédié 114 et par l'intermédiaire d'un port d'accès AP0. Le port d'accès AP0 est par exemple configuré pour être toujours ouvert pendant un ou plusieurs états du dispositif électronique 100, comme cela sera maintenant défini. Par exemple, le port d'accès AP0 est ouvert lorsque le dispositif électronique 100 est dans un état dans lequel il est alimenté mais avant de déclencher un état de réinitialisation du dispositif et pendant un état de démarrage dans le cas où une requête d'authentification de débogage a été effectuée, comme cela sera décrit plus en détail ultérieurement. Dans cet état ouvert, le port d'accès AP0 est configuré pour relayer des communications entre le port de débogage 112 et le circuit d'interface d'authentification 110.
Chacun des ports d'accès AP0 à APn est par exemple un circuit matériel comprenant des tampons mémoire et/ou un autre circuit pour relayer des communications, lorsqu'il est à l'état ouvert, entre le port de débogage et le circuit 110 ou les unités de traitement CPU1 à CPUn. Dans le cas des ports d'accès à des unités de traitement AP0 à APn, ceux-ci sont disposés entre le port de débogage 112 et les unités de traitement CPU1 à CPUn respectivement, et fournissent le seul canal de communication disponible entre le port de débogage 112 et les unités de traitement CPU1 à CPUn. Ainsi, lorsque ces ports d'accès AP0 à APn sont à l'état fermé, aucune liaison de communication n'est disponible entre le port de débogage 112 et les unités de traitement CPU1 à CPUn, et les unités de traitement CPU1 à CPUn sont ainsi protégés de tentatives d'accès non autorisés par l'intermédiaire du port de débogage 112.
Les ports d'accès AP0 à APn sont par exemple commandés pour être à l'état ouvert ou fermé par des bits de commande stockés dans un registre de commande système 201, qui est par exemple commandé par l'unité de traitement maître CPU1.
Comme cela est représenté en , un dispositif externe 200 (EXTERNAL DEVICE) est par exemple connecté au port de débogage 112 lorsqu'une procédure de débogage doit être déclenchée. Le dispositif externe 200 est par exemple un ordinateur exécutant un programme de débogage, qui est un programme logiciel à utiliser pour déboguer le dispositif électronique 100.
Le circuit d'interface d'authentification 110 comprend par exemple des registres 202 (HOST-DEVICE REGS) qui permettent des communications entre le dispositif externe 200 (host) et l'unité de traitement maître CPU1, comme cela sera décrit ci-après plus en détail en relation avec la .
La représente schématiquement les registres de dispositif hôte 202 du circuit d'interface d'authentification 110 de la plus en détail selon un exemple de mode de réalisation de la présente description.
Les registres 202 sont par exemple tous des registres volatiles.
Les registres 202 comprennent par exemple un registre d'état (DBG_AUTH status register [31 :0]) 302, qui est configuré pour stocker une indication de l'état ouvert ou fermé de chacun des ports d'accès du dispositif, tels que les ports d'accès des unités de traitement AP0 à APn et les un ou plusieurs ports d'accès des interfaces périphériques, s'ils sont présents. Le registre d'état 302 peut être lu par le dispositif externe 200 par l'intermédiaire du port de débogage 112 et par l'intermédiaire du port d'accès AP0. Dans certains modes de réalisation, le registre d'état 302 est à lecture seule. Dans l'exemple de la , le registre d'état 302 est un registre à 32 bits, bien que dans des variantes de mode de réalisation d'autres tailles soient possible. En outre, dans l'exemple de mode de réalisation de la , le registre d'état 302 peut indiquer l'état de jusqu'à 16 ports d'accès AP0 à AP15, bien que dans des variantes de mode de réalisation plus ou moins de ports d'accès pourraient être pris en charge, en fonction de la taille du registre d'état 302. Dans l'exemple de la , le registre d'état 302 stocke, pour chaque port d'accès, un premier bit AP0P à AP15P indiquant si le port d'accès correspondant AP0 à AP15 est présent, et un deuxième bit AP0S à AP15S indiquant l'état courant du port d'accès correspondant AP0 à AP15, en d'autres termes s'il est ouvert ou fermé.
Au moment du démarrage du dispositif électronique 100, le contenu du registre d'état 302 est par exemple chargé, par une machine d'état (non représentée), à partir d'un stockage sécurisé dans une mémoire non volatile, telle que la mémoire 104 de la . Par exemple, par défaut, au moment du démarrage, les ports d'accès AP1 à APn sont tous mis à l'état fermé, alors que le port AP0 est mis à l'état ouvert. L'état ouvert ou fermé de chacun des ports AP0 à APn est par exemple commandé directement par des états stockés du dispositif électronique 100 qui sont stockés dans un stockage sécurisé.
Un avantage du registre d'état est qu'il assure une solution évolutive susceptible de prendre en charge l'ajout de ports d'accès supplémentaires au système.
Dans certains modes de réalisation, les registres 202 comportent en outre un registre hôte 304 (DBG_AUTH host register [31 :0]) permettant au dispositif externe 200, agissant comme hôte, d'écrire dans le dispositif électronique 100, par exemple dans l'unité de traitement maître CPU1. Ainsi, le registre hôte 304 peut par exemple être écrit et lu par le dispositif externe 200 et être lu par le dispositif électronique 100, par exemple par l'unité de traitement maître CPU1. Dans l'exemple de la , le registre hôte 304 est un registre à 32 bits, bien que dans des variantes de mode de réalisation d'autres tailles soient possibles.
Dans certains modes de réalisation, les registres 202 comportent en outre un registre de dispositif 306 (DBG_AUTH device register [31 :0]) permettant au dispositif électronique 100, par exemple l'unité de traitement maître CPU1, d'écrire dans le dispositif externe 200. Ainsi, le registre de dispositif 306 peut par exemple être lu par le dispositif externe 200 par l'intermédiaire du port de débogage 112 et du port d'accès AP0, et être écrit ou lu par le dispositif électronique 100, par exemple l'unité de traitement maître CPU1. Dans l'exemple de la , le registre de dispositif 306 est un registre à 32 bits, bien que dans des variantes de mode de réalisation d'autres tailles soient possibles.
Les registres hôte et de dispositif 304, 306 sont par exemple configurés pour jouer un rôle d'un tampon FIFO (de l'anglais "first-in, first-out", premier entré, premier sorti) profond de réception/émission à un seul mot. En particulier, un message de données qui est plus grand que la taille de l'un ou l'autre des registres peut par exemple être transmis par l'intermédiaire des registres 304, 306 un mot à la fois, et lu un mot à la fois, jusqu'à ce que tout le message ait été communiqué.
Dans certains modes de réalisation, les registres 202 comportent en outre un registre d'accusé de réception 308 (DBG_AUTH acknowledge register [1 :0]) pour indiquer un moment auquel au moins une partie d'un message électronique est disponible pour être lue dans le registre hôte 304 et un moment auquel au moins une partie d'un message électronique est disponible pour être écrite dans le registre de dispositif 306.
Le registre d'accusé de réception 308 est par exemple à lecture seule pour l'unité de traitement CPU1 et pour le dispositif externe 200. Dans certains modes de réalisation, le registre d'accusé de réception 308 stocke un bit d'accusé de réception hôte HOST ACK et un bit d'accusé de réception dispositif DEV_ACK.
Par exemple, le circuit d'interface d'authentification 110 est configuré pour détecter le moment auquel au moins une partie d'un message électronique a été écrite dans le registre hôte 304 et pour mettre à un, en réponse, le bit d'accusé de réception hôte HOST_ACK dans le registre d'accusé de réception 308. L'unité de traitement maître est par exemple configurée pour appeler le bit d'accusé de réception hôte HOST_ACK, et pour lire le registre hôte 304 en réponse au fait que le bit d'accusé de réception hôte HOST_ACK soit mis à un. Le circuit d'interface d'authentification 110 est par exemple configuré en outre pour détecter le moment auquel le dispositif électronique, par exemple l'unité de traitement maître CPU1, lit le registre hôte 304, et, en réponse, pour réinitialiser le bit d'accusé de réception hôte HOST_ACK dans le registre d'accusé de réception 308.
Par exemple, le circuit d'interface d'authentification 110 est en outre configuré pour détecter le moment auquel au moins une partie d'un message électronique a été écrite dans le registre de dispositif et pour mettre à un, en réponse, le bit d'accusé de réception dispositif DEV_ACK dans le registre d'accusé de réception 308. Le dispositif externe 200 est par exemple configuré pour appeler le bit d'accusé de réception dispositif DEV_ACK et pour lire l'au moins un registre de dispositif 306 en réponse à la mise à un du bit d'accusé de réception dispositif DEV_ACK. Le circuit d'interface d'authentification 110 est par exemple configuré en outre pour détecter le moment auquel le dispositif externe lit le message électronique à partir du registre de dispositif 306, et, en réponse, pour réinitialiser le bit d'accusé de réception dispositif DEV_ACK dans le registre d'accusé de réception 308.
Un avantage technique du registre d'accusé de réception dédié 308 est qu'il conduit à une bande passante de communication améliorée entre le dispositif externe 200 et l'unité de traitement maître CPU1 car des messages de données, ou trames, peuvent circuler dans les deux directions à la fois en parallèle. Un effet technique du fait que le registre d'accusé de réception soit à lecture seule est que cela augmente la sécurité.
En outre, un avantage technique de la fourniture d'à la fois un registre de dispositif et un registre hôte est qu'ils accélèrent le processus d'authentification de débogage, comme il n'est pas nécessaire que le dispositif ou l'hôte attende un accusé de réception de lecture avant de transmettre dans l'autre direction.
La est un organigramme représentant des opérations d'un procédé d'accès au dispositif électronique 100 à des fins de débogage à l'aide du dispositif externe 200 selon un exemple de mode de réalisation de la présente description.
Dans une opération 401 (CONNECT DEBUGGER), le dispositif externe 200 est par exemple connecté au port de débogage 112 du dispositif électronique 100, par exemple par l'intermédiaire d'une connexion câblée ou sans fil.
Dans une opération 402 (DETECT UNDER RESET THAT DEBUG CLOSED), le dispositif externe 200, commandé par le programme de débogage, est par exemple configuré pour détecter que la fonction de débogage du dispositif électronique 100 est fermée, par exemple en lisant le registre d'état 302 et en déterminant que un ou plusieurs des ports d'accès AP1 à APn par l'intermédiaire desquels le débogage doit être effectué sont à l'état fermé. Par exemple, cette opération est effectuée pendant que le dispositif externe 200 applique une commande de réinitialisation au dispositif électronique 100, par exemple par l'intermédiaire d'une broche de réinitialisation du dispositif électronique 100.
Dans une opération 403 (WRITE AUTH REQUEST TO HOST REG + RELEASE RESET), le circuit externe 200, commandé par le programme de débogage, est par exemple configuré pour écrire une requête d'authentification au registre hôte 304, puis pour déclencher la réinitialisation du dispositif électronique 100. En réponse, le circuit d'interface d'authentification 110 est par exemple configuré pour mettre à un le bit ACK_HOST dans le registre d'accusé de réception 308.
Dans une opération 404 (MASTER CPU BOOTS + READS HOST REG), l'unité de traitement maître CPU1 est par exemple configurée pour démarrer, et pour lire la requête d'authentification dans le registre hôte 304, par exemple après avoir détecté que le bit ACK_HOST dans le registre d'accusé de réception 308 est mis à un. Cela amène par exemple l'unité de traitement maître à maintenir l'état ouvert du port d'accès AP0 pendant le démarrage. En réponse, le circuit d'interface d'authentification 110 est par exemple configuré pour réinitialiser le bit ACK_HOST dans le registre d'accusé de réception 308.
Dans une opération 405 (MASTER CPU WRITES AUTH CHALLENGE TO DEVICE REG AND DEVICE REG READ BY DEBUGGER), l'unité de traitement maître CPU1 est par exemple configurée pour écrire un défi d'authentification dans le registre de dispositif 306. En réponse, le circuit d'interface d'authentification 110 est par exemple configuré pour mettre à un le bit ACK_DEV dans le registre d'accusé de réception 308. Le dispositif externe 200, commandé par le programme de débogage, puis est par exemple configuré pour lire le défi d'authentification dans le registre de dispositif 306, par exemple après avoir détecté que le bit ACK_DEV dans le registre d'accusé de réception 308 est mis à un. En réponse, le circuit d'interface d'authentification 110 est par exemple configuré pour réinitialiser le bit ACK_DEV dans le registre d'accusé de réception 308. Bien sûr, si la taille du défi dépasse la taille du registre de dispositif 306, il est par exemple communiqué par l'unité de traitement maître au circuit externe 200 sur plusieurs cycles d'écriture/lecture jusqu'à ce qu'il ait été entièrement envoyé.
Dans une opération 406 (DEBUGGER STORES CERTIFICATE TO HOST REG), le circuit externe 200, commandé par le programme de débogage, est par exemple configuré pour générer un certificat d'authentification sur la base du défi, et pour stocker le certificat dans le registre hôte 304. En réponse, le circuit d'interface d'authentification 110 est par exemple configuré pour mettre à un le bit ACK_HOST dans le registre d'accusé de réception 308. L'unité de traitement maître CPU1 est ensuite configurée par exemple pour lire le registre hôte 304, par exemple après avoir détecté que le bit ACK_HOST dans le registre d'accusé de réception 308 est mis à un. En réponse, le circuit d'interface d'authentification 110 est par exemple configuré pour réinitialiser le bit ACK_HOST dans le registre d'accusé de réception 308. Bien entendu, si la taille du certificat dépasse la taille du registre hôte 306, il est par exemple communiqué par le dispositif externe 200 à l'unité de traitement maître CPU1 sur plusieurs cycles d'écriture/lecture jusqu'à ce qu'il ait été entièrement envoyé.
Dans une opération 407 (MASTER CPU VERIFIES CERTIFICATE + UNLOCKS APs), l'unité de traitement maître CPU1 est par exemple configurée pour vérifier le certificat, et, s'il est validé, pour déverrouiller, et donc mettre à l'état ouvert, un ou plusieurs des ports d'accès à des unités de traitement AP0 à APn sur la base d'identifiants indiqués par le certificat. En d'autres termes, le débogage est ouvert pour tous les ports d'accès à des unités de traitement AP0 à APn ou pour des ports sélectionnés parmi ceux-ci. Par exemple, cela est effectué en écrivant, par l'unité de traitement maître CPU1, dans les un ou plusieurs registres de commande système 201 de la . Par exemple, chaque port d'accès à des dispositifs de traitement a ses propres bits de commande dédiés dans les registres de commande système 201.
Dans certains modes de réalisation, les identifiants indiqués dans le certificat indiquent également un niveau de débogage qui est permis, indiquant par exemple si tous les micro-logiciels peuvent être débogués ou seulement un micro-logiciel non sécurisé.
En outre, dans certains modes de réalisation, l'unité de traitement maître CPU1 est configurée pour définir, sur la base des identifiants indiqués par le certificat, une valeur de compte du compteur monotone 108 de la à partir de laquelle la fonctionnalité de débogage est autorisée. Cette valeur de compte est par exemple stockée sous forme d'un paramètre dans la mémoire non-volatile 104. Ensuite, lorsque l'unité de traitement maître CPU1 est configurée ultérieurement pour exécuter une séquence de démarrage impliquant l'incrémentation du compteur monotone 108, la fonctionnalité de débogage est autorisée une fois que le compteur monotone a atteint la valeur de compte déterminée. Par exemple, la séquence de démarrage comprend deux étapes ou plus, chacune associée à un code logiciel correspondant, qui est exécuté en série. Le code logiciel pour chaque étape est associé à une valeur de compte correspondante, ce qui signifie qu'une fois que cette valeur de compte a été dépassée par le compteur monotone 108, la mémoire non volatile 104 est configurée pour ne plus permettre d'accès au code. L'utilisation d'un compteur monotone 108 pour commander un débogage sécurisé pendant une séquence de démarrage est par exemple décrite plus en détail dans la demande de brevet européen EP04068134, dont le contenu est incorporé ici par référence dans la mesure maximale autorisée par la loi.
Dans le cas où, dans l'opération 407, la vérification par l'unité de traitement maître CPU1 du certificat échoue, par exemple parce que le certificat est faux, l'unité de traitement maître est configurée par exemple pour maintenir les ports d'accès à des unités de traitement AP1 à APn à l'état fermé et, par exemple, pour informer le dispositif externe par l'intermédiaire du registre de dispositif 306.
Dans une opération 408 (MASTER CPU SENDS AUTH VALIDITY MESSAGE TO DEBUGGER + WAITS FOR AUTH ACK), l'unité de traitement maître CPU1 stocke par exemple dans le registre de dispositif 306 un message de validité d'autorisation, qui est lu par le dispositif externe 200, commandé par le programme de débogage. L'unité de traitement maître CPU1 attend ensuite par exemple un accusé de réception provenant du dispositif externe 200.
Dans une opération 409 (DEBUGGER CONFIGURE DEBUG PERIPHERALS + MAKES CPU HALT REQ + SENDS AUTH ACK) le dispositif externe 200, commandé par le programme de débogage, configure par exemple les périphériques de débogage par l'intermédiaire des ports d'accès, puis fait une requête d'arrêt de CPU, par exemple à l'unité de traitement maître CPU1 et/ou à une autre des unités de traitement. Par exemple, avec le port d'accès AP1 à l'état ouvert, les registres de commande système 201 de la associés à l'unité de traitement maître sont accessibles, de sorte que le programme de débogage peut faire la requête d'arrêt de CPU par l'intermédiaire de ces registres. Par exemple, cette requête d'arrêt sera permise par l'unité de traitement maître CPU1 seulement si elle correspond à une étape de démarrage correspondant à une valeur de compte du compteur monotone égale ou supérieure à la valeur de compte autorisée. Le dispositif externe 200, commandé par le programme de débogage, envoie également par exemple un accusé de réception d'authentification à l'unité de traitement maître CPU1 par l'intermédiaire du registre hôte 304.
Dans une opération 410 (MASTER CPU OPENS DEBUG), l'unité de traitement maître CPU1 est par exemple configurée pour ouvrir complètement le débogage des ports d'accès des unités de traitement couverts par le certificat, par exemple en écrivant dans les registres de commande système 201 de la , lorsque l'étape d'exécution de démarrage approprié est atteint. Par exemple, ouvrir complètement le débogage signifie que le programme de débogage du dispositif externe 200 peut accéder aux registres de commande système de l'unité de traitement associée, tels que les registres 201 dans le cas de l'unité de traitement maître.
Dans certains modes de réalisation, un procédé de déclenchement d'un débogage du dispositif électronique 100 de la comprend, après la connexion du dispositif externe 200 au port de débogage 112, la lecture, par le dispositif externe 200 par l'intermédiaire du port de débogage 112 et du port d'accès supplémentaire AP0, de l'état de chacun des ports d'accès à des unités de traitement AP0 à APn stocké par le registre d'état 302 ; et le déclenchement, par le dispositif externe, du débogage d'une ou de plusieurs des unités de traitement qui est à l'état ouvert.
Un avantage des modes de réalisation décrits ici est qu'ils fournissent l'effet technique consistant à permettre à un dispositif externe, tel qu'un ordinateur, exécutant un programme de débogage, pour communiquer de façon sécurisée avec un dispositif électronique afin d'identifier un état de débogage du dispositif électronique et d'obtenir dans certains cas un identifiant unique du dispositif électronique 100, qui est stocké par exemple dans une mémoire non volatile par exemple dans la mémoire 104, et/ou de fournir des identifiants pour ouvrir de nouveau le débogage sur le dispositif électronique.
Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. Par exemple, il sera évident à la personne du métier que dans certains modes de réalisation, seulement un ou certains des registres 302, 304, 306 et 308 de la peuvent être présents dans le circuit d'interface d'authentification 110. En outre, bien que dans les modes de réalisation décrits une authentification qui est basée sur un défi et un certificat de réponse, dans des variantes de mode de réalisation, plutôt qu'un défi, une requête de mot de passe est effectuée par l'unité de traitement maître au dispositif externe, et le dispositif externe répond avec un mot de passe plutôt qu'avec un certificat, le mot de passe étant ensuite vérifié par l'unité de traitement maître.
Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus.

Claims (13)

  1. Dispositif électronique comprenant :
    - un port de débogage (112) fournissant une interface de communication à des fins de débogage ;
    - une première unité de traitement (CPU1) ;
    - un ou plusieurs ports d'accès à des unités de traitement (AP1, APn) reliés au port de débogage (112), un premier des ports d'accès à des unités de traitement (AP1) étant relié entre le port de débogage (112) et la première unité de traitement (CPU1), chacun des un ou plusieurs ports d'accès à des unités de traitement (AP1, APn) étant configuré pour être dans un état parmi un état ouvert dans lequel il relaie des communications vers et depuis le port de débogage (112) et un état fermé dans lequel il bloque des communications vers et depuis le port de débogage (112) ;
    - un circuit d'interface d'authentification (110) configuré pour authentifier un dispositif externe (200) ; et
    - un port d'accès supplémentaire (AP0) relié entre le port de débogage (112) et le circuit d'interface d'authentification (110), le port d'accès supplémentaire (AP0) étant configuré pour être dans un état ouvert dans lequel des communications sont relayées entre le port de débogage et le circuit d'authentification d'interface (110), le circuit d'authentification d'interface (110) comprenant des registres (202) comportant un registre d'état (302) qui peut être lu par le dispositif externe (200) par l'intermédiaire du port de débogage (112) et du port d'accès supplémentaire (AP0), le registre d'état étant configuré pour stocker une indication de l'état ouvert ou fermé de chacun des ports d'accès à des unités de traitement (AP1, APn).
  2. Dispositif électronique selon la revendication 1, dans lequel les registres (202) comportent en outre un registre hôte (304) qui peut être lu par la première unité de traitement (CPU1) et dans lequel le dispositif externe (200) peut écrire par l'intermédiaire du port de débogage (112) et du port d'accès supplémentaire (AP0).
  3. Dispositif électronique selon la revendication 1 ou 2, dans lequel les registres (202) comportent en outre un registre de dispositif (306) qui peut être lu par le dispositif externe (200) par l'intermédiaire du port de débogage (112) et du port d'accès supplémentaire (AP0) et dans lequel la première unité de traitement (CPU1) peut écrire.
  4. Dispositif électronique selon la revendication 3 dans sa dépendance à la revendication 2, dans lequel les registres (202) comportent en outre un registre d'accusé de réception (308) pour indiquer un moment auquel au moins une partie d'un message électronique est disponible pour être lue dans le registre hôte (304) et un moment auquel au moins une partie d'un message électronique est disponible pour être lue dans le registre de dispositif (306), le registre d'accusé de réception (308) étant par exemple à lecture seule pour la première unité de traitement (CPU1) et pour le dispositif externe (200).
  5. Dispositif électronique selon la revendication 4, dans lequel le circuit d'interface d'authentification (110) est configuré :
    - pour détecter un moment auquel au moins une partie d'un message électronique a été écrite dans le registre hôte (304), et pour mettre à un, en réponse, un bit d'accusé de réception hôte (HOST_ACK) dans le registre d'accusé de réception (308) ; et
    - pour détecter un moment auquel la première unité de traitement (CPU1) lit le registre hôte (304) et, en réponse, pour réinitialiser le bit d'accusé de réception hôte (HOST_ACK) dans le registre d'accusé de réception (308).
  6. Dispositif électronique selon la revendication 4 ou 5, dans lequel le circuit d'interface d'authentification (110) est configuré :
    - pour détecter un moment auquel au moins une partie d'un message électronique a été écrite dans le registre de dispositif (306), et pour mettre à un, en réponse, un bit d'accusé de réception dispositif (DEV_ACK) dans le registre d'accusé de réception (308) ; et
    - pour détecter un moment auquel le dispositif externe (200) lit le registre de dispositif (306) et, en réponse, pour réinitialiser le bit d'accusé de réception de dispositif (DEV_ACK) dans le registre d'accusé de réception (308).
  7. Dispositif électronique selon l'une quelconque des revendications 1 à 6, dans lequel la première unité de traitement (CPU1) est configurée :
    - pour lire à partir du registre hôte (306) une requête d'authentification provenant du dispositif externe ;
    - pour authentifier le dispositif externe (200) ; et
    - pour mettre au moins un port parmi les un ou plusieurs ports d'accès à des unités de traitement (AP1, APn) à un état ouvert, amenant ainsi l'indication de l'état des un ou plusieurs ports d'accès à des unités de traitement (AP1, APn)à être mis à jour dans le registre d'état (302).
  8. Dispositif électronique selon la revendication 7 dans sa dépendance aux revendications 2 et 3, dans lequel la première unité de traitement (CPU1) est configurée pour authentifier le dispositif externe (200) en :
    - stockant une requête de mot de passe ou un défi d'authentification dans le registre de dispositif (302, 304) ;
    - lisant un mot de passe ou certificat d'authentification à partir du registre hôte (306) ; et
    - vérifiant le certificat ou le mot de passe.
  9. Dispositif électronique selon la revendication 8, comprenant en outre un compteur monotone (108), dans lequel la première unité de traitement (CPU1) est en outre configurée pour lire à partir du certificat une indication d'une valeur de compte à partir de laquelle une fonctionnalité de débogage est autorisée, et la première unité de traitement (CPU1) est configurée pour exécuter une séquence de démarrage comprenant l'incrémentation du compteur monotone (108), la fonctionnalité de débogage étant autorisée une fois que le compteur monotone (108) a atteint ladite valeur de compte.
  10. Dispositif électronique selon l'une quelconque des revendications 1 à 9, dans lequel les ports d'accès à des unités de traitement (AP1, APn) sont reliés chacun à une unité de traitement associée (CPU1, CPUn).
  11. Dispositif électronique selon l'une quelconque des revendications 1 à 10, comprenant en outre :
    - une interface périphérique ; et
    - un port d'accès à des interfaces périphériques relié entre le port de débogage (112) et l'interface périphérique, le port d'accès à des interfaces périphériques étant configuré pour être dans un état parmi un état ouvert dans lequel il relaie des communications vers et depuis le port de débogage (112) et un état fermé dans lequel il bloque des communications vers et depuis le port de débogage (112), dans lequel le registre d'état est configuré pour stocker une indication de l'état ouvert ou fermé du port d'accès à des interfaces périphériques.
  12. Procédé de déclenchement d'un débogage du dispositif électronique selon l'une quelconque des revendications 1 à 11, comprenant :
    - la lecture, par le dispositif externe (200) par l'intermédiaire du port de débogage (112) et du port d'accès supplémentaire (AP0), de l'état de chacun des ports d'accès à des unités de traitement (AP1, APn) stocké par le registre d'état (302) ; et
    - le déclenchement, par le dispositif externe, du débogage d'une ou de plusieurs des unités de traitement qui est à l'état ouvert.
  13. Support non transitoire lisible par ordinateur stockant un programme qui, lorsqu'il est exécuté par un processeur ou un système informatique dans un dispositif externe, amène le dispositif externe à mettre en œuvre le procédé selon la revendication 12.
FR2212575A 2022-11-30 2022-11-30 Interface de dispositif hôte pour une authentification de débogage Pending FR3142576A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR2212575A FR3142576A1 (fr) 2022-11-30 2022-11-30 Interface de dispositif hôte pour une authentification de débogage
EP23210739.1A EP4379582A1 (fr) 2022-11-30 2023-11-17 Interface hôte-dispositif pour une authentification de débogage
US18/521,480 US20240176864A1 (en) 2022-11-30 2023-11-28 Host-device interface for debug authentication
CN202311619883.XA CN118113544A (zh) 2022-11-30 2023-11-30 用于调试认证的主机-设备接口

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2212575A FR3142576A1 (fr) 2022-11-30 2022-11-30 Interface de dispositif hôte pour une authentification de débogage
FR2212575 2022-11-30

Publications (1)

Publication Number Publication Date
FR3142576A1 true FR3142576A1 (fr) 2024-05-31

Family

ID=86272388

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2212575A Pending FR3142576A1 (fr) 2022-11-30 2022-11-30 Interface de dispositif hôte pour une authentification de débogage

Country Status (4)

Country Link
US (1) US20240176864A1 (fr)
EP (1) EP4379582A1 (fr)
CN (1) CN118113544A (fr)
FR (1) FR3142576A1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066835A1 (en) * 2009-09-14 2011-03-17 Love Kothari Method and system for securely protecting a semiconductor chip without compromising test and debug capabilities
US20170139008A1 (en) * 2015-11-13 2017-05-18 Samsung Electronics Co., Ltd. System on chip and secure debugging method
US20190361073A1 (en) * 2018-05-24 2019-11-28 Seagate Technology Llc Secure debug system for electronic devices
US20220317184A1 (en) * 2021-03-31 2022-10-06 STMicroelectronics (Alps) SAS Secured debug

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066835A1 (en) * 2009-09-14 2011-03-17 Love Kothari Method and system for securely protecting a semiconductor chip without compromising test and debug capabilities
US20170139008A1 (en) * 2015-11-13 2017-05-18 Samsung Electronics Co., Ltd. System on chip and secure debugging method
US20190361073A1 (en) * 2018-05-24 2019-11-28 Seagate Technology Llc Secure debug system for electronic devices
US20220317184A1 (en) * 2021-03-31 2022-10-06 STMicroelectronics (Alps) SAS Secured debug

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DE L.F.G. SARMENTAM. VAN DIJKC.W. O'DONNELLJ. RHODESS. DEVADAS, VIRTUAL MONOTONIE COUNTERS AND COUNT-LIMITED OBJECTS USING A TPM WITHOUT A TRUSTED OS

Also Published As

Publication number Publication date
CN118113544A (zh) 2024-05-31
US20240176864A1 (en) 2024-05-30
EP4379582A1 (fr) 2024-06-05

Similar Documents

Publication Publication Date Title
US11295004B2 (en) Unlock and recovery for encrypted devices
JP6333993B2 (ja) ハードウェアプラットフォームのためのファームウェアのインシステムプロビジョニング
US10860305B1 (en) Secure firmware deployment
CN109076088B (zh) 安全的传感器接口
US8214632B2 (en) Method of booting electronic device and method of authenticating boot of electronic device
US20180089435A1 (en) Methods And Apparatus To Use A Security Coprocessor For Firmware Protection
FR2930058A1 (fr) Dispositif portable et procede de demarrage externe d'une installation informatique
US20140298022A1 (en) Mobile virtualization platform for the remote control of a medical device
KR102395258B1 (ko) 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치
EP2077515B1 (fr) Dispositif, systèmes et procédé de démarrage sécurisé d'une installation informatique
EP2024798B1 (fr) Procédé et dispositif de configuration sécurisée d'un terminal au moyen d'un dispositif de stockage de données de démarrage
WO2017001746A1 (fr) Entité électronique et procédé mis en oeuvre dans une telle entité électronique
US11048801B2 (en) Method and apparatus for secure computing device start up
CN107209837A (zh) 选择性基于块的完整性保护技术
US9477272B2 (en) Prevention of removal of solid state drive from computer housing with data being accessible thereon
FR3142576A1 (fr) Interface de dispositif hôte pour une authentification de débogage
EP2048576B2 (fr) Procédé de mise à jour sécurisée d'un programme à lancement automatique et entité électronique portable le mettant en oeuvre
TWI772868B (zh) 安全元件、運算裝置及用於回應使用敏感資訊之一請求的方法
WO2015000967A1 (fr) Dispositif, système et procédé de sécurisation de transfert de données entre un dispositif de stockage de données portable source et un système informatique destinataire
EP3832469A1 (fr) Système électronique sécurisé comportant un processeur et un composant mémoire ; composant programmable associé
FR2966263A1 (fr) Procede de controle d'un circuit integre, circuit integre et calculateur comportant un circuit integre
US20240202340A1 (en) Trusted access control for secure boot process for storage controllers or drivers
WO2017196686A1 (fr) Interface de capteur sécurisée
WO2022064446A1 (fr) Collecte et communication sécurisées de données de travail de dispositif informatique
EP3893135A1 (fr) Procédé d'authentification

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20240531