Brevet FR3142576A1 — publié le 20240531

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 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. 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). 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). 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. 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). 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). 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). 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). 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. 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. 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). 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. 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. 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.