FR 2891930 A1 20070413 FR 0602133 A 20060310 -1- PROCEDE DE SECURISATION D'UNE LIAISON RADIO POUR DISPOSITIFS PROGRAMMABLES A DISTANCE La présente invention concerne le domaine des dispositifs programmables, tels que stimulateurs cardiaques encore appelés les pacemakers, qui peuvent être programmés à distance par une liaison de communications radio locale. 10 Dans les dispositifs programmables à distance, tels que les pacemakers, un contrôleur ou dispositif maître est utilisé pour envoyer des messages par une liaison radio à un programme d'application résidant dans le dispositif programmable. De plus, le récepteur local contient des registres 15 qui régissent la liaison radio ou effectuent éventuellement un certain type d'étalonnage dans le dispositif esclave local. On peut écrire dans ceux-ci en envoyant des messages sur la liaison radio. Si une valeur erronée est écrite dans l'un quelconque de ces registres, la liaison radio peut échouer par exemple. Il est donc très important que toutes commandes envoyées à 20 distance au récepteur ne puissent pas nuire aux réglages dans le récepteur. Le dispositif de contrôleur pourrait soit écrire directement dans un registre dans le dispositif esclave, soit envoyer un message au dispositif esclave, 25 lequel instruit au dispositif esclave d'effectuer cette action. Le problème avec la première solution est qu'elle n'est pas sécurisée. Un utilisateur malveillant (pirate informatique) ou ignorant pourrait par exemple écrire dans un registre de telle manière que le dispositif arrête de répondre à des commandes sur la liaison radio, par exemple. Dans le cas des dispositifs 30 médicaux, ceci pourrait être critique car une liaison rompue pourrait entraîner un retard du traitement correct, par exemple. Le problème avec la deuxième solution, où le dispositif proprement dit exécute l'action, est qu'elle empêche le contrôleur d'exécuter directement 35 des fonctions inoffensives, telles qu'une écriture dans les registres locaux de l'émetteur-récepteur. La présente invention résout le problème en empêchant le contrôleur externe d'effectuer certaines opérations à moins que l'interprétation des 2891930 -2- commandes ne soit déverrouillée par l'envoi préalable d'un code d'autorisation, lequel peut avoir la forme d'un nombre premier. A cet effet, la présente invention fournit un dispositif programmable à 5 distance, comprenant une mémoire de messages pour recevoir des messages sur une liaison radio depuis un contrôleur et transmettre les messages à une application locale résidant dans le dispositif ; des registres inscriptibles pour régir le fonctionnement du dispositif; un interpréteur de commandes pour interpréter des commandes insérées dans lesdits messages afin d'écrire des données dans lesdits registres ; un verrou pour inhiber l'écriture desdites données dans lesdits registres; et ladite application locale répondant à un code d'autorisation inséré dans lesdits messages pour libérer ledit verrou et permettre ainsi l'écriture desdites données dans lesdits registres. L'invention apporte une sécurité aux fonctions de maintenance, telles que l'écriture dans les registres de récepteur, sans avoir besoin d'un contrôleur très complexe. Dans un mode de réalisation, le verrou est libéré en envoyant un grand nombre premier par la liaison radio à l'application locale, laquelle vérifie alors la validité de celui-ci avant de libérer le verrou, permettant l'écriture dans les registres protégés. On notera que certains des registres, ou tous, peuvent être protégés. Dans certains modes de réalisation, il peut être utile de permettre l'écriture dans certains registres sans avoir à ouvrir le verrou. De tels registres seraient des registres ne pouvant pas engendrer d'effets nuisibles en cas d'écriture de données incorrectes à l'intérieur de ceux-ci. Selon un autre aspect, l'invention fournit un procédé de commande d'un dispositif programmable à distance comportant des registres inscriptibles pour régir le fonctionnement du dispositif, et une application locale résidant dans le dispositif répondant à des messages provenant d'un contrôleur par une liaison radio, et dans lequel des commandes d'écriture de données dans lesdits registres sont envoyées sur une liaison radio, ledit procédé comprenant ladite application locale inhibant normalement l'exécution desdites commandes ; envoyant un code d'autorisation à ladite application locale afin d'ordonner à ladite application locale de permettre l'exécution desdites commandes ; en réponse à la réception par ladite application locale d'un code d'autorisation valable, permettant l'exécution desdites -3- commandes ; et envoyant après un code d'autorisation valable sur ladite liaison radio, envoyant au moins une commande d'écriture de données dans lesdits registres. La figure 1 est une illustration schématique montrant un dispositif programmable avec et sans verrou conformément à l'invention ; La figure 2 est un schéma de principe de haut niveau d'un dispositif programmable incorporant l'invention ; La figure 3 montre le dispositif de manière plus détaillée ; et La figure 4 est un organigramme illustrant le fonctionnement du dispositif. 15 Sur la figure 1, le dispositif programmable sur le côté gauche comprend un récepteur 1 et une application locale 2 résidant dans le dispositif qui répond à des commandes véhiculées par une liaison radio 3 provenant d'un émetteur 4 pour effectuer certaines opérations. L'émetteur est un contrôleur du dispositif, et dans le cas d'un pacemaker est une unité de 20 commande pouvant être exploitée depuis l'extérieur du corps afin de régir le fonctionnement du pacemaker. L'envoi de commandes à l'application locale 2 est généralement considéré sûr car l'application peut toujours décoder et traiter les données puis 25 effectuer les actions demandées ou pas en fonction de son programme interne. Il est possible que certains logiciels dans l'application présentent de grosses lacunes de sécurité avec l'exécution automatique de n'importe quel code ou débordement de tampon, mais l'application peut être conçue pour n'exécuter que des logiciels sûrs. 30 Le récepteur 1 répond également à des commandes, qui visent par exemple à changer sa fréquence opérationnelle, mais contrairement à l'application locale 1 il n'a aucun moyen de déterminer si une instruction est nuisible ou non. Conformément à l'invention, un verrou ayant typiquement la fonction d'une porte ET est prévu. Ce verrou empêche le contrôleur d'écrire sur la totalité (ou une partie) des registres ou d'initialiser des commandes dans le récepteur. Le contrôleur n'est autorisé à écrire que dans quelques registres 35 -4-ouverts pendant que le verrou est actif. Le dispositif programmable peut désactiver le verrou et permettre au contrôleur d'écrire dans n'importe quel registre sur réception d'un code d'autorisation par l'application locale. Le verrou proprement dit peut être un bit de registre, ou une broche spéciale sur le récepteur qui doit être activée pour permettre l'écriture, ou une combinaison des deux. Le point important est que le dispositif local peut changer le verrou d'un état verrouillé à un état déverrouillé. Une fois que le récepteur est déverrouillé, le maître peut écrire dans les registres précédemment interdits. Quand l'écriture est terminée, ou après un temps prescrit, le récepteur peut être verrouillé à nouveau. La figure 2 montre un schéma de principe de haut niveau du dispositif programmable conformément à l'invention. Des données, sous forme de messages, sont envoyées sur la liaison radio 3 et mémorisées temporairement dans une mémoire de messages 11 d'un émetteur-récepteur 10. Les messages sont transmis à l'application locale 13, qui traite ceux-ci comme il convient conformément à son programme interne. Les messages sont aussi transmis à un interpréteur de commandes 12, lequel peut normalement écrire dans des registres 14 du récepteur conformément aux commandes reçues. De manière caractéristique ces registres régissent le fonctionnement de l'émetteur-récepteur 10 dans le dispositif programmable. L'application 13 émet normalement un signal de verrouillage 15, lequel empêche l'exécution des commandes provenant de l'interpréteur de commandes 12. Ceci empêche l'écriture de données dans une partie ou la totalité des registres 14 qui régissent le fonctionnement de l'émetteur-récepteur. Le verrou peut être libéré par un code d'autorisation sous forme de protocole secret, tel qu'un grand nombre premier en association avec l'heure locale. Le verrou 15 agit avec des fonctions existant déjà dans l'émetteur-récepteur 10. Le message provenant du maître est envoyé sur la liaison 4, et mémorisé temporairement dans la mémoire de message 11. Dans la mémoire de message, toutes commandes de l'émetteur-récepteur sont -5-extraites et envoyées à l'interpréteur de commandes 12. Si l'interpréteur de commande 12 est verrouillé, alors la commande n'est pas exécutée. L'interpréteur de commande peut alors renvoyer au contrôleur un message d'erreur lui indiquant que la commande a échoué. S'il est déverrouillé, la commande est exécutée. L'interpréteur de commande peut lui-même détecter qu'une commande a été reçue, et avertir le dispositif local. Avec un interpréteur de commandes plus complexe, un tel avertissement peut être utilisé pour le protocole de déverrouillage. Le verrou 15 est utilisé comme fonction de sécurité de façon à ce qu'il soit impossible d'écrire à distance dans les registres du récepteur sans avoir reçu au préalable la permission de le faire. Cette permission est donnée par l'application locale. L'application distante peut envoyer une requête qui est interprétée dans l'application locale. L'application locale peut alors accorder ou refuser l'écriture dans les registres du récepteur local. Quand la commande à distance a été exécutée, le verrou dans le récepteur peut être de nouveau réglé automatiquement de façon à ce que plus aucune autre écriture ne soit permise sans réception d'une nouvelle autorisation. La figure 3 montre l'interpréteur de commandes de manière plus détaillée. Celui-ci consiste en un décodeur 16 pour décoder les commandes contenues dans des messages mémorisés dans la mémoire de messages temporaires 11. La sortie du décodeur est connectée à une entrée d'une porte ET 18 dont l'autre entrée est établie par la sortie d'une porte ET/AND 19 qui reçoit ses entrées de l'application locale 13. La sortie du décodeur 16 est également passée à une porte ET 17 dont l'autre entrée reçoit la sortie de la porte ET 18. Quand les signaux présents aux trois entrées de la porte ET 19 provenant de l'application locale 13 sont tous à l'état haut, la porte 18 est déverrouillée et permet l'écriture de la sortie du décodeur dans les registres 14. Quand la sortie de la porte 19 passe à l'état bas, la porte 18 est verrouillée, et la sortie de la porte NAND 17, ou ET inversé passe à l'état haut, entraînant la production d'un signal d'erreur, lequel peut être transmis au contrôleur sur la liaison radio 3. La figure 4 est un organigramme qui montre le fonctionnement du dispositif programmable. L'étape 20 représente une communication normale durant laquelle des messages sont passés sur la liaison radio 3. Si le maître (contrôleur) veut améliorer la communication (étape 21), il envoie à l'étape -6- 22 une requête codée ou un code d'autorisation au dispositif programmable (esclave). Ceci est transmis à l'application locale, laquelle, à l'étape 23, décode cette requête. Si la requête n'est pas approuvée, un message d'erreur est renvoyé au contrôleur à l'étape 25. Si la requête est approuvée, l'application locale libère le verrou à l'étape 26. Le contrôleur envoie alors des commandes à l'étape 27. Dès réception d'une indication de commandes terminées émanant du contrôleur, il envoie un message, à l'étape 28, au dispositif programmable pour agir en conséquence, lequel à l'étape 29 actionne à nouveau le verrou. L'invention peut être mise en oeuvre dans un matériel intégré. L'interpréteur de commande interdit l'exécution (d'une partie ou de la totalité) des commandes s'il est verrouillé. Par ailleurs, le dispositif local peut être averti qu'une commande a été bloquée, et dans un mode de réalisation un message d'erreur est renvoyé au contrôleur si la commande échoue. Certaines commandes spéciales peuvent être exécutées même si le verrou est actif. Revendications 1. Dispositif programmable à distance, caractérisé en ce qu'il comprend: -une mémoire de messages pour recevoir des messages par une liaison radio (3) depuis un contrôleur et pour transmettre les messages à une application locale (13) résidant dans le dispositif ; des registres inscriptibles (14) pour régir le fonctionnement du dispositif ; un interpréteur de commandes (12) pour interpréter des commandes insérées dans lesdits messages afin d'écrire des données dans lesdits registres ; un verrou pour inhiber l'écriture desdites données dans lesdits registres (14); et ladite application locale (13) répondant à un code d'autorisation inséré dans lesdits messages pour libérer ledit verrou et permettre ainsi l'écriture desdites données dans lesdits registres (14). 2. Dispositif programmable à distance selon la revendication 1, caractérisé en ce qu'il comprend en outre une logique pour renvoyer un message d'erreur sur la liaison radio (3) au contrôleur quand une commande échoue en raison du verrouillage dudit interpréteur de commandes (12). 3. Dispositif programmable à distance selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit interpréteur de commande (12) comporte un décodeur (16) pour décoder lesdits messages et émettre des instructions en réponse à des commandes reçues, et ledit verrou comprend une porte logique (19) relié à une entrée à l'application locale afin de bloquer l'exécution desdites instructions à moins que le code d'autorisation ne soit transmis dans un message. 4. Dispositif programmable à distance selon la revendication 3, caractérisé en ce que l'application locale répond à un code d'autorisation 35 transmis dans un message sous forme de grand nombre premier. 5. Dispositif programmable à distance selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit dispositif est configuré de telle sorte qu'un premier sous-ensemble desdits registres-8-puisse être écrit sur ladite liaison radio (3) quand ledit verrou est dans un état verrouillé, et qu'un deuxième sous-ensemble desdits registres soit normalement verrouillé et ne puisse être écrit que lorsque ledit verrou est ouvert. 6. Dispositif programmable à distance selon l'une quelconque des revendications précédentes, caractérisé en ce que lesdits registres (14) régissent le fonctionnement d'un émetteur-récepteur (10) faisant partie dudit dispositif. 10 7. Dispositif programmable à distance selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit dispositif est un stimulateur cardiaque. 15 8. Procédé de commande d'un dispositif programmable à distance comportant des registres inscriptibles (14) pour régir le fonctionnement du dispositif, et une application locale (13) résidant dans le dispositif répondant à des messages provenant d'un contrôleur sur une liaison radio (3), et dans lequel des commandes d'écriture de données dans lesdits 20 registres sont envoyées sur une liaison radio, ledit procédé interdisant l'exécution desdites commandes par (13) ladite application locale; envoyant un code d'autorisation à ladite application locale afin d'ordonner à ladite application locale de permettre l'exécution desdites commandes ; 25 permettant en réponse à la réception par ladite application locale d'un code d'autorisation valable, l'exécution desdites commandes ; et après l'envoi d'un code d'autorisation valable sur ladite liaison radio (3)envoyant au moins une commande d'écriture de données dans 30 lesdits registres (14). 9. Procédé selon la revendication 8, caractérisé en ce que ledit dispositif renvoie un message d'erreur sur la liaison radio (3) au contrôleur quand une commande échoue en raison du verrouillage d'un interpréteur 35 de commandes (12). 10. Procédé selon l'une quelconque des revendications 8 ou 9, dans lequel l'application locale (13) répond à un code d'autorisation transmis dans un message sous forme de grand nombre premier afin de 2891930 -9- permettre l'exécution desdites commandes. 11. Procédé selon l'une quelconque des revendications 8 à 10, dans lequel lesdits registres (14) régissent le fonctionnement d'un 5 émetteur-récepteur (10) faisant partie dudit dispositif.