Brevet FR3024253A1 — publié le 20160129

La présente invention concerne un procédé automatique de mise à jour à distance d'un logiciel contenu dans un dispositif émetteur radio autonome du type beacon. La technologie des dispositifs émetteurs radios autonomes, communément appelés beacons, est connue. Ces dispositifs utilisent la norme BlueTooth®, et notamment la version BlueTooth 4.0 ou ultérieure, pour communiquer avec des récepteurs appropriés, en particulier des récepteurs radio mobiles tels que des téléphones intelligents ("smartphones"). Les beacons sont généralement déployés dans des espaces publics en très grand nombre. Chaque beacon embarque un logiciel, à savoir un micrologiciel ou firmware. Ce dernier est amené à évoluer dans le temps pendant la durée de vie du beacon. Le beacon n'étant généralement connecté à aucune infrastructure informatique, il est difficile voire impossible de diffuser à distance des mises à jour à distance de ce logiciel embarqué. De plus, pour des raisons de sécurité, il est important d'éviter la sollicitation de la mise à jour à distance par un logiciel tiers malveillant et d'éviter la mise à jour des beacons avec un firmware tiers malveillant. La présente invention a pour but de fournir un procédé automatique de mise à jour à distance d'un logiciel contenu dans un dispositif émetteur radio autonome du type beacon qui ne reproduit pas les inconvénients susmentionnés. Plus particulièrement, la présente invention a pour but de fournir un tel procédé qui soit plus simple, plus fiable et moins coûteux à mettre en oeuvre par rapport aux procédés existants. La présente invention a aussi pour but de fournir un tel procédé qui soit parfaitement sécurisé en évitant toute interaction malveillante de la part de tiers. La présente invention a donc pour objet un procédé automatique de mise à jour à distance d'un logiciel embarqué dans un dispositif émetteur radio autonome du type beacon, ledit procédé comportant les étapes suivantes: 3024253 2 - fournir un dispositif émetteur radio autonome du type beacon pourvu d'un logiciel implanté, - fournir au moins un dispositif récepteur, tel qu'un smartphone, - lorsqu'un dispositif récepteur entre dans le champ de couverture 5 radio dudit dispositif émetteur radio autonome du type beacon, ledit récepteur mobile interroge ledit dispositif émetteur radio autonome du type beacon pour connaître le niveau de version de son logiciel embarqué, - si ce niveau de version est inférieur au niveau de mise à jour dudit logiciel, ledit dispositif récepteur commence le protocole de mise à jour en 10 ouvrant un canal de communication avec ledit dispositif émetteur radio autonome du type beacon, - ledit dispositif récepteur effectue le transfert de ladite mise à jour dudit logiciel, - lorsque ledit dispositif récepteur sort dudit champ de couverture, ou 15 lorsque ladite mise à jour du logiciel est totalement transférée, ledit dispositif émetteur radio autonome du type beacon stoppe la communication avec ledit dispositif récepteur. Avantageusement, ledit canal de communication est sécurisé par un système de clefs privées. 20 Avantageusement, ledit dispositif émetteur radio autonome du type beacon informe ledit dispositif récepteur s'il a déjà reçu d'un autre dispositif récepteur une partie de ladite mise à jour dudit logiciel, ainsi que la position ou quantité de données déjà reçues. Lorsque ledit dispositif émetteur radio autonome du type beacon n'a 25 pas reçu la totalité de ladite mise à jour dudit logiciel, ledit dispositif émetteur radio autonome du type beacon se remet avantageusement en écoute d'un autre dispositif récepteur susceptible de lui transmettre les données suivantes de ladite mise à jour dudit logiciel. Lorsque ledit dispositif émetteur radio autonome du type beacon a 30 reçu la totalité de ladite mise à jour dudit logiciel, ledit dispositif émetteur radio autonome du type beacon réalise avantageusement les étapes suivantes: 3024253 3 - il vérifie l'intégrité de ladite mise à jour dudit logiciel, notamment par un calcul de hachage, - il vérifie l'origine de ladite mise à jour dudit logiciel, - il redémarre ledit dispositif émetteur radio autonome du type beacon, 5 - il effectue un effacement de l'ancien logiciel, - il intègre ladite mise à jour dudit logiciel en lieu et place de l'ancien logiciel, et - il redémarre à nouveau ledit dispositif émetteur radio autonome du type beacon. 10 Avantageusement, ledit calcul de hachage est réalisé avec l'un des algorithmes SHA ("Secure Hash Algorithm") ou avec l'algorithme MD5 ("Message Digest 5"). Avantageusement, lorsque plusieurs dispositifs récepteurs mobiles entrent dans le champ de couverture radio dudit dispositif émetteur radio 15 autonome du type beacon, ledit dispositif émetteur radio autonome du type beacon ouvre un canal de communication respectif simultanément avec plusieurs dispositifs récepteurs mobiles, chacun desdits dispositif récepteur mobile transférant une partie différente de ladite mise à jour dudit logiciel. Avantageusement, des procédés de sécurisation sont mis en oeuvre 20 pour éviter la mise à jour dudit logiciel par un logiciel tiers malveillant et pour éviter la mise à jour dudit dispositif émetteur radio autonome du type beacon avec un logiciel tiers malveillant. Avantageusement, ledit dispositif émetteur radio autonome du type beacon est pourvu d'une configuration unique qui lui est propre, cette 25 configuration se composant de trois éléments distincts : - un numéro d'identifiant, appelé UUID, - un numéro de majeur, et - un numéro de mineur, lesdits numéros de majeur et de mineur étant générés 30 automatiquement à partir d'une adresse unique dudit dispositif émetteur radio autonome du type beacon, telle que l'adresse MAC. 30242 5 3 4 Avantageusement, ledit numéro d'identifiant est fixé de façon définitive sous la forme d'une constante. Avantageusement, lesdits numéros de majeur et de mineur sont variables, allant de 0 à 216. 5 Avantageusement, lesdits numéros de majeur et de mineur sont générés automatiquement à partir des quatre derniers octets de l'adresse MAC. Avantageusement, ladite génération automatique des numéros de majeur et de mineur est opérée par le logiciel implanté dans ledit dispositif 10 émetteur radio autonome du type beacon. Ces avantages et caractéristiques et d'autres de la présente invention apparaitront plus clairement au cours de la description détaillée suivante, faite en référence aux dessins joints, donné à titre d'exemples non limitatifs, sur lesquels 15 - La figure 1 représente de manière schématique le principe de la présente invention selon un mode de réalisation avantageux de celle-ci, et - La figure 2 illustre la structure d'une adresse MAC. De manière connue, un dispositif émetteur radio autonome du type 20 beacon comporte un petit boitier embarquant un composant radio, qui implémente en particulier la technologie BlueTooth® 4.0, ainsi qu'un microprocesseur contenant un logiciel, typiquement un micrologiciel ou fi rmware. Un beacon émet un signal radio dans un rayon de 30 à 150 mètres 25 selon la technologie d'antenne utilisée. Chaque beacon, pour être utilisé, doit recevoir une configuration unique qui lui est propre, cette configuration se composant de trois éléments distincts : - un numéro d'identifiant appelé UUID; ce numéro peut être fixé de 30 façon définitive sous la forme d'une constante par groupe de 232 beacons; - un numéro de majeur, variable allant de 0 à 216; - un numéro de mineur, variable allant de 0 à 216. 3024253 5 Avantageusement, on prévoit de générer automatiquement le numéro de majeur et le numéro de mineur pour un même groupe composé d'un maximum de 232 beacons. Les composants radio des beacons, qui implémentent la norme 5 BlueTooth® 4.0, présentent la caractéristique de disposer d'une adresse unique, appelée adresse MAC ("Media Access Control") ou IEEE ("Institute of Electrical and Electronics Engineers"). Cette adresse est constituée d'une série de 6 octets, comme illustré par la figure 2. La génération automatique des numéros de majeur et de mineur est 10 avantageusement opérée par le micrologiciel implanté dans le beacon. En variante, on peut envisager l'utilisation de tout autre procédé externe approprié pour réaliser cette génération. De préférence, ces deux valeurs sont générées de n'importe quelle façon à partir des quatre derniers octets de l'adresse MAC du composant 15 radio. Ainsi par exemple, avec une adresse MAC qui serait 01-23-45-67-89- ab, le numéro de majeur pourrait être 4567 en base 16, et le numéro de mineur 89ab en base 16. Avantageusement, les numéros de majeur et de mineur peuvent être générés à partir de tout élément numérique unique embarqué dans le 20 beacon, tels que l'adresse MAC, le numéro de série d'un des composants, la clef de licence, etc.). Il est à noter que ce procédé de configuration automatique du beacon pourrait être mis en oeuvre indépendamment du procédé de mise à jour qui sera décrit ci-après. 25 Le procédé de mise à jour prévoit la mise à jour automatique et à distance du micrologiciel ou firmware contenu dans un beacon, en utilisant les récepteurs radio mobiles, en particulier les smartphones, passant à proximité dudit beacon. La figure 1 illustre schématiquement un procédé avantageux de l'invention. 30 La vitesse typique d'un passant pourvu d'un récepteur radio mobile est de l'ordre de 1 à 5 km/h, la portée efficace du champ de couverture radio d'un beacon est généralement de l'ordre de 30 mètres, et la bande passante 3024253 6 d'échange de données entre les récepteurs et le beacon est limitée, typiquement de 115200 bits/s, alors que le volume de données à transmettre peut varier entre quelques kilooctets (ko) et plusieurs méga octets (Mo). Compte tenu de ces éléments, un seul récepteur en un seul passage ne peut 5 généralement pas mettre à jour le firmware d'un beacon. Selon l'invention, lorsqu'il arrive à portée d'un beacon B1, c'est-à-dire dans son champ de couverture radio, un dispositif récepteur mobile va interroger le beacon pour connaître le niveau de version de son logiciel implanté ou firmware. 10 Si ce niveau de version est inférieur au niveau de version officiel, alors le firmware du beacon doit être mis à jour. Le récepteur commence alors le protocole de mise à jour : - le récepteur ouvre un canal de communication sécurisé par un système de clefs privées, ou par tout autre procédé de sécurisation d'un flot 15 de données, avec le beacon, - le beacon informe le récepteur s'il a déjà reçu d'un autre récepteur une partie du nouveau firmware, ainsi que la position (quantité de données) déjà reçues si c'est le cas, - le récepteur, tant qu'il est à portée du beacon, c'est-à-dire dans son 20 champ de couverture radio, effectue le transfert du firmware, - lorsque le récepteur mobile devient hors de portée, ou que le firmware est totalement transféré, le beacon stoppe la communication. Si le beacon n'a pas reçu la totalité du firmware, il se remet en écoute d'un autre récepteur susceptible de lui transmettre les données suivantes du 25 firmware. Si le beacon a reçu la totalité du firmware, alors le beacon: - vérifie l'intégrité du firmware par un calcul de hachage, par exemple avec l'un des algorithmes SHA ("Secure Hash Algorithm") ou MD5 ("Message Digest 5"), ou tout autre algorithme de hachage 30 approprié; - vérifie l'origine du firmware; 3024253 7 - redémarre, effectue un effacement de son ancien firmware, intègre le nouveau firmware en lieu et place de l'ancien, puis redémarre à nouveau et reprend son activité. Il est à noter que si plusieurs récepteurs mobiles se trouvent 5 simultanément dans le champ de couverture d'un beacon, la mise à jour peut se faire simultanément via plusieurs récepteurs mobiles, chacun desdits récepteurs mobiles transférant une partie différente du firmware. En variante, un seul récepteur mobile est sollicité, et un autre récepteur mobile n'est sollicité qu'après que le précédent récepteur mobile a quitté le champ de 10 couverture radio du beacon. Des procédés de sécurisation sont avantageusement mis en oeuvre pour éviter la sollicitation de la mise à jour à distance par un logiciel tiers malveillant et éviter la mise à jour des beacons avec un firmware tiers malveillant. 15 La sécurisation du procédé de mise à jour s'appuie avantageusement sur les principes suivants : - identification de l'origine du firmware par un mécanisme de signature par clefs partagées entre le beacon et le récepteur; ce mécanisme permet le chiffrement asymétrique et assure à la fois 20 l'origine de la mise à jour et le contenue de la mise à jour; - la clef privée nécessaire au déchiffrement est intégrée au beacon; la mémoire de ce dernier est de préférence verrouillée en lecture afin de rendre impossible la récupération de cette clef, même lors d'un accès direct aux composants internes du beacon. 25 Bien que la présente invention ait été décrite en référence à un mode de réalisation préféré de celle-ci, il est entendu qu'un homme du métier peut y apporter toutes modifications utiles, sans sortir du cadre de la présente invention tel que défini par les revendications annexées. REVENDICATIONS1.- Procédé automatique de mise à jour à distance d'un logiciel embarqué dans un dispositif émetteur radio autonome du type beacon, caractérisé en ce que ledit procédé comporte les étapes suivantes: - fournir un dispositif émetteur radio autonome du type beacon (B1) pourvu d'un logiciel implanté, - fournir au moins un dispositif récepteur, tel qu'un smartphone, - lorsqu'un dispositif récepteur entre dans le champ de couverture radio dudit dispositif émetteur radio autonome du type beacon (B1), ledit récepteur mobile interroge ledit dispositif émetteur radio autonome du type beacon (B1) pour connaître le niveau de version de son logiciel embarqué, - si ce niveau de version est inférieur au niveau de mise à jour dudit logiciel, ledit dispositif récepteur commence le protocole de mise à jour en ouvrant un canal de communication avec ledit dispositif émetteur radio autonome du type beacon (B1), - ledit dispositif récepteur effectue le transfert de ladite mise à jour dudit logiciel, - lorsque ledit dispositif récepteur sort dudit champ de couverture, ou lorsque ladite mise à jour du logiciel est totalement transférée, ledit dispositif émetteur radio autonome du type beacon (B1) stoppe la communication avec ledit dispositif récepteur. 2.- Procédé selon la revendication 1, dans lequel ledit canal de communication est sécurisé par un système de clefs privées. 3.- Procédé selon la revendication 1 ou 2, dans lequel ledit dispositif émetteur radio autonome du type beacon (B1) informe ledit dispositif récepteur s'il a déjà reçu d'un autre dispositif récepteur une partie de ladite mise à jour dudit logiciel, ainsi que la position ou quantité de données déjà reçues. 3024253 9 4.- Procédé selon l'une quelconque des revendications précédentes, dans lequel, lorsque ledit dispositif émetteur radio autonome du type beacon (B1) n'a pas reçu la totalité de ladite mise à 5 jour dudit logiciel, ledit dispositif émetteur radio autonome du type beacon (B1) se remet en écoute d'un autre dispositif récepteur susceptible de lui transmettre les données suivantes de ladite mise à jour dudit logiciel. 10 5.- Procédé selon l'une quelconque des revendications 1 à 3, dans lequel, lorsque ledit dispositif émetteur radio autonome du type beacon (B1) a reçu la totalité de ladite mise à jour dudit logiciel, ledit dispositif émetteur radio autonome du type beacon (B1): - vérifie l'intégrité de ladite mise à jour dudit logiciel, notamment 15 par un calcul de hachage, - vérifie l'origine de ladite mise à jour dudit logiciel, - redémarre ledit dispositif émetteur radio autonome du type beacon (B1), - effectue un effacement de l'ancien logiciel, 20 - intègre ladite mise à jour dudit logiciel en lieu et place de l'ancien logiciel, et - redémarre à nouveau ledit dispositif émetteur radio autonome du type beacon (B1). 25 6.- Procédé selon la revendication 5, dans lequel ledit calcul de hachage est réalisé avec l'un des algorithmes SHA ("Secure Hash Algorithm") ou avec l'algorithme MD5 ("Message Digest 5"). 7.- Procédé selon l'une quelconque des revendications 30 précédentes, dans lequel, lorsque plusieurs dispositifs récepteurs mobiles entrent dans le champ de couverture radio dudit dispositif émetteur radio autonome du type beacon (B1), ledit dispositif émetteur 3024253 10 radio autonome du type beacon (B1) ouvre un canal de communication respectif simultanément avec plusieurs dispositifs récepteurs mobiles, chacun desdits dispositif récepteur mobile transférant une partie différente de ladite mise à jour dudit logiciel. 5 8.- Procédé selon l'une quelconque des revendications précédentes, dans lequel des procédés de sécurisation sont mis en oeuvre pour éviter la mise à jour dudit logiciel par un logiciel tiers malveillant et pour éviter la mise à jour dudit dispositif émetteur radio 10 autonome du type beacon (B1) avec un logiciel tiers malveillant. 9.- Procédé selon l'une quelconque des revendications précédentes, dans lequel ledit dispositif émetteur radio autonome du type beacon (B1) est pourvu d'une configuration unique qui lui est 15 propre, cette configuration se composant de trois éléments distincts : - un numéro d'identifiant, appelé UUID, - un numéro de majeur, et - un numéro de mineur, lesdits numéros de majeur et de mineur étant générés 20 automatiquement à partir d'une adresse unique dudit dispositif émetteur radio autonome du type beacon (B1), telle que l'adresse MAC. 10.- Procédé selon la revendication 9, dans lequel ledit numéro d'identifiant est fixé de façon définitive sous la forme d'une constante. 25 11.- Procédé selon la revendication 9 ou 10, dans lequel lesdits numéros de majeur et de mineur sont variables, allant de 0 à 216. 12.- Procédé selon l'une quelconque des revendications 9 à 11, 30 dans lequel lesdits numéros de majeur et de mineur sont générés automatiquement à partir des quatre derniers octets de l'adresse MAC. 3024253 11 13.- Procédé selon l'une quelconque des revendications 9 à 12, dans lequel ladite génération automatique des numéros de majeur et de mineur est opérée par le logiciel implanté dans ledit dispositif émetteur radio autonome du type beacon (B1). 5