FR 3076140 A1 20190628 FR 1763030 A 20171222 " PROCEDE, SUR UN RESEAU DE COMMUNICATION EMBARQUE D'UN VEHICULE, DE TRANSMISSION SECURISEE D'UN MESSAGE. " [0001] L'invention s'inscrit dans le domaine des réseaux ou bus de communication électroniques de véhicules, notamment de véhicules automobiles. [0002] Les bus de données CAN (pour, en anglais, Controller Area Network) sont des bus de terrain utilisés dans l'automobile et faisant l'objet de normes. Un tel bus relie différentes unités de contrôle électroniques (ECU) qui communiquent de l'information sous forme de messages, composés chacun d'un identifiant, commun à tous les messages d'une même famille, et de données, spécifiques à l'occurrence particulière du message transmis. [0003] Toutes les unités reliées au bus peuvent recevoir chaque message émis. L'identifiant des messages permet aux unités de traiter ceux des messages qui les concernent. [0004] Un défaut de cette structure commune est qu'un attaquant peut éventuellement s'il parvient à se connecter au bus CAN d'un véhicule, recevoir toute l'information circulante, et émettre des messages. [0005] Il est alors en position d'effectuer des attaques de retro ingénierie pour comprendre le contenu des messages et ainsi par la suite faire des attaques par injections ou des attaques par rejeu. Cela peut lui permettre d'influencer le comportement du véhicule. Mais cela ne réussit que si l'attaquant connait l'identifiant d'une famille de messages. [0006] On connait du document US2015215215 un procédé dans lequel les données d'un message sont modifiées par ajout d'un nombre aléatoire, mais cette technique ajoute le nombre aléatoire à la donnée et non à l'identifiant et donc augmente la charge transportée sur le réseau. [0007] Pour résoudre les difficultés évoquées ci-dessus, il est proposé un procédé, sur un réseau de communication embarqué d'un véhicule automobile, le réseau étant configuré pour la transmission d'une pluralité de messages auxquels sont associés des périodes (ou périodes moyennes) respectives de transmission sur ledit réseau ainsi que des identifiants originels respectifs, de transmission sécurisée d'un message donné choisi parmi la pluralité, le procédé comprenant, une étape de détermination 2 d'un identifiant de message sécurisé, comme un résultat d'une fonction appliquée à l'identifiant originel du message donné et impliquant un nombre généré à l'aide d'un algorithme de génération pseudo-aléatoire, dans un intervalle numérique choisi, en fonction de l'identifiant originel du message donné, dans une liste d'intervalles 5 numériques, une étape de transmission sur le réseau du message sous forme modifiée, avec l'identifiant de message sécurisé, puis une étape de récupération de l'identifiant originel du message donné, en passant les intervalles numériques de la liste en revue à l'aide dudit algorithme de génération pseudo-aléatoire pour déterminer des identifiants candidats, et en sélectionnant, parmi les identifiants candidats, un 10 identifiant correspondant au message donné. [0008] Ces principes permettent de sécuriser le bus de terrain du véhicule, tout en respectant les contraintes de priorité des familles de messages, qui sont traduites par les identifiants de ces familles. Un attaquant n'est plus en mesure de connaître l'occurrence des familles de messages, grâce à l'algorithme de génération pseudo- 15 aléatoire (tous les générateurs de nombre aléatoire sont adaptés), pour garantir l'imprédictibilité des identifiants, La prédiction de l'occurrence des familles de messages est complexifiée, et la distribution des identifiants sécurisés peut être uniformisée par rapport à la distribution des identifiants originels. [0009] Selon des caractéristiques optionnelles et avantageuses : 20 [0010] - Le procédé peut comprendre une étape de génération d'un identifiant intermédiaire à partir de l'identifiant originel, ladite fonction étant la somme de l'identifiant intermédiaire et du nombre généré ; Cela permet de prendre en compte finement la priorité des messages, qui dans un bus CAN est reflétée dans les identifiants ; 25 [0011] - l'étape de détermination est telle que l'identifiant de message sécurisé est choisi à l'aide de l'algorithme de génération pseudo-aléatoire dans un intervalle dont la longueur est inversement proportionnelle à la période associée au message ; la distribution des identifiants sécurisés est ainsi uniformisée, sur l'espace de définition des identifiants, par rapport à la distribution des identifiants originels ; 30 [0012] - L'étape de récupération peut comprendre une étape de reconnaissance, parmi les identifiants candidats, d'un des identifiants originels puis, une étape de génération d'un nombre associé à l'identifiant reconnu à l'aide dudit algorithme et des intervalles 3 numériques, et une étape de vérification d'une égalité entre d'une part l'identifiant de message sécurisé et d'autre part un résultat de la fonction appliquée audit identifiant reconnu ; Cela permet le repérage d'éventuels échecs ou anomalies en phase de récupération ; 5 [0013] - Les messages de la pluralité peuvent comprendre chacun des données variables qui sont transmises avec l'identifiant de message sécurisé ; [0014] - La liste d'intervalles numériques peut être définie pour que les identifiants de messages transmis soient répartis de manière plus uniforme sur un espace de définition des identifiants que les identifiants originels ; 10 [0015] - Le message peut être transmis sous forme de trames de données sur un bus de données multiplexées ; [0016] - Le message peut être transmis entre deux unités de contrôle électroniques d'un bus CAN (ou plus de deux : une qui envoie, plusieurs qui réceptionnent et calculent chacun l'identifiant originel); Le bus peut aussi être un bus CAN extended, un 15 bus CAN-FD, un bus Flexray, ou un bus LIN (Réseau Interconnecté local). [0017] - Le réseau peut être configuré pour la transmission de messages dont les identifiants sont codés sur 11 bits, ou sur 29 bits. [0018] L'invention concerne aussi un système de communication, comprenant un réseau de communication pour véhicule automobile, le réseau étant configuré pour la 20 transmission d'une pluralité de messages auxquels sont associés des périodes respectives de transmission sur ledit réseau ainsi que des identifiants originels respectifs, et des moyens de transmission sécurisée d'un message donné choisi parmi la pluralité, les moyens de transmission sécurisée comprenant des moyens de détermination d'un identifiant de message sécurisé, comme un résultat d'une fonction 25 appliquée à l'identifiant originel du message donné et impliquant un nombre généré à l'aide d'un algorithme de génération pseudo-aléatoire, dans un intervalle numérique choisi, en fonction de l'identifiant originel du message donné, dans une liste d'intervalles numériques, des moyens de transmission du message sous forme modifiée, avec l'identifiant de message sécurisé, et des moyens de récupération, en 30 passant les intervalles numériques de la liste en revue à l'aide dudit algorithme de génération pseudo-aléatoire pour déterminer des identifiants candidats, et en 4 sélectionnant, parmi les identifiants candidats, un identifiant correspondant au message donné. [0019] L'invention porte aussi sur un véhicule automobile comprenant un système de communication tel que présenté ci-dessus. 5 [0020] Ce véhicule est moins sujet aux attaques de retro-ingenerie, par injection ou rejeu de messages sur son bus de terrain. Il est plus sécurisé pour ses utilisateurs. [0021] L'invention sera mieux comprise, et d'autres buts, caractéristiques, détails et avantages de celle-ci apparaîtront plus clairement dans la description explicative qui va suivre faite en référence aux dessins annexés donnés uniquement à titre d'exemple 10 illustrant un mode de réalisation de l'invention et dans lesquels : [0022] - La figure 1 présente un procédé selon l'art antérieur ; [0023] - la figure 2 présente un procédé selon un mode de réalisation de l'invention ; [0024] - les figures 3 et 4 présentent des détails de réalisation du procédé de la figure 2. 15 [0025] En figure 1, on a représenté un procédé selon l'art antérieur et son fonctionnement. [0026] Deux unités de contrôle électroniques 10 et 20 sont reliées au bus de communication CAN B, dans un véhicule automobile. D'autres unités de contrôle sont également reliées à ce bus B, mais elles ne sont pas représentées. 20 [0027] Dans le scénario représenté sur la figure, l'unité 10 émet un message M1 sur le bus B et l'unité 20 le reçoit. L'émission et la réception se font à l'aide d'un contrôleur dédié dans l'unité de contrôle 10 ou respectivement 20. L'étape de transmission est référencée 100. [0028] Le message M1 est constitué d'un identifiant ID, correspondant à la catégorie 25 ou famille de messages, et de données D, spécifiques à l'émission particulière du message. L'identifiant ID et les données D sont rassemblés, par exemple concaténés, et transmis sous forme de trames de données sur le bus B. [0029] Le message M1 ainsi transmis est lu par différentes unités sur le bus B, notamment l'unité 20. Celle-ci s'intéresse en premier lieu à l'identifiant ID, et si celui-ci 5 correspond à une famille de messages qu'elle doit traiter, alors elle s'intéresse également aux données D. [0030] Dans la partie inférieure de la figure, on a représenté la fréquence des identifiants transmis sur le bus B, sachant que les identifiants sont des valeurs codées 5 sur 11 bits, ou dans certains modes de réalisation 29 bits, quand le bus utilisé est un bus CAN étendu. [0031] Il résulte d'un codage des identifiants sur 11 bits que les identifiants peuvent avoir une valeur entière comprise entre 0 et 2047, ce qui constitue l'espace des identifiants, en abscisses sur la figure. 10 [0032] Mais le nombre de familles de messages est plus limité, et un nombre modeste des valeurs numériques est utilisé, certaines valeurs nombreuses n'étant jamais utilisées. Ainsi, la fréquence de certains identifiants est élevée, comme le montre les pics en ordonnées, alors que pour la plupart des valeurs, la fréquence est strictement nulle. 15 [0033] Il en résulte qu'un attaquant qui a accès au bus B peut apprendre les identifiants et observer leurs fréquences, et utiliser cette information pour effectuer une attaque par injection de trames ou une attaque par rejeu de trames. [0034] En figure 2, on a représenté un mode de réalisation de l'invention. [0035] On retrouve sur cette figure, les unités 10 et 20, et le bus B. Mais avant 20 d'émettre sur le bus B le message, initialement sous la forme d'un message Ml, l'unité 10 applique à celui-ci une fonction de sécurisation F, utilisant un algorithme de génération de nombres pseudo-aléatoires ALGO. [0036] En information d'entrée, la fonction de sécurisation F reçoit l'identifiant ID et les données D. En information de sortie, elle fournit un identifiant sécurisé IDR et les 25 données D inchangées. C'est cet ensemble, constituant un message M2, qui va être envoyé sous la forme d'un message M2 sur le bus B. [0037] Dans le scénario représenté sur la figure, l'unité 10 émet un message M2 sur le bus B et l'unité 20 le reçoit. L'émission et la réception se font à l'aide d'un contrôleur dédié dans l'unité de contrôle 10 ou respectivement 20. L'étape de transmission est 30 référencée 100. Le message M2 est une forme modifiée du message Ml. 6 [0038] Le message M2 est lu par l'unité 20. Elle observe en particulier l'identifiant sécurisé IDR, et lui applique une fonction de lecture sécurisée F', utilisant le même algorithme de génération de nombres pseudo-aléatoires ALGO que la fonction de sécurisation F, en sorte que le nombre pseudo-aléatoire généré pour le traitement du 5 message M2 par l'unité 20 soit le même que le nombre pseudo-aléatoire généré pour le traitement du message M1 par l'unité 10. [0039] En informations d'entrée, la fonction de lecture sécurisée F' utilise l'identifiant sécurisé IDR, et en information de sortie, elle est en mesure de retrouver l'identifiant ID qui était l'identifiant originel du message Ml. Ainsi, le message Ml, constitué de 10 l'identifiant ID et des données D est reconstitué par la fonction de lecture sécurisée F'. [0040] En partie inférieure de la figure, on a représenté la fréquence des identifiants sécurisés sur l'espace des valeurs d'identifiants, de 0 à 2047. Dans ce mode de réalisation, la fréquence est beaucoup plus uniforme que dans l'art antérieur de la figure 1. La répartition, sans être totalement constante, est telle que de très 15 nombreuses valeurs sont prises à un moment ou à un autre, et qu'aucune valeur n'est prise de manière extrêmement fréquente. [0041] En figure 3, on a représenté plus en détails la fonction de sécurisation F. Elle implique l'utilisation de l'identifiant ID par deux sous-fonctions, une sous-fonction de « mapping » (mappage ou mise en correspondance) MAP et une sous-fonction de 20 génération d'un nombre pseudo-aléatoire R. [0042] La sous-fonction de génération d'un nombre pseudo-aléatoire R utilise l'algorithme ALGO, et dispose d'une liste d'intervalles associés aux identifiants des familles de messages. Ces intervalles sont des intervalles de l'espace des identifiants, qui sont dans le mode de réalisation privilégié des valeurs codées sur 11 bits, soit 25 entre 0 et 2047. [0043] Si le nombre de familles de messages est N, et que les identifiants sont ID1, ID2, IDN, qui sont envoyés sur le bus B avec les périodes connues par avance, lors de la conception du véhicule, Pi, P2, PN, alors les intervalles sont définis comme suit, avec n = 11 ou 29 ou encore un autre chiffre, choisi pour être égal au nombre de 30 bits du champ identifiant des messages sur le bus B (11 pour le bus CAN standard, et 29 pour le bus CAN étendu), [0044] li = [0, Max(1, E [2n x Fi / (ZFj) ] ) ] : E[X] : est la fonction partie entière de X. 7 [0045] avec Fi = 1/ Pi, la fréquence correspondant à la période de l'identifiant IDi. [0046] Ainsi, la longueur des intervalles est proportionnelle à la fréquence de la famille de messages associée, et tout l'espace des valeurs d'identifiants possibles est couverte, par segmentation en des intervalles successifs dont les longueurs, une fois 5 additionnées, donne la longueur de cet espace (2048 pour le bus CAN standard). [0047] Le sous-fonction de génération d'un nombre pseudo-aléatoire R et la sous-fonction de mapping MAP sont implémentées sous forme logicielle, et sont mises en oeuvre sur le contrôleur dédié au bus CAN des unités de contrôle 10 et 20. Ces sous-fonctions sont insérées au sein de la fonction pré-existante qui introduit le message sur 10 le contrôleur dédié pour son envoi sur le bus B. [0048] La sous-fonction de génération d'un nombre pseudo-aléatoire R génère un nombre Ri, dans l'intervalle li au sein de la liste d'intervalles définies ci-dessus qui est associé à l'identifiant IDi, et à l'aide de l'algorithme ALGO. [0049] La sous-fonction de mapping MAP associe à l'identifiant IDi un identifiant 15 modifié (ou de substitution) fixé dans le système (dans le bus et les unités de contrôle) et prédéfini IDi-S. L'identifiant modifié IDi-S est défini en fonction de l'identifiant originel et donc de la priorité et de la période de la famille de messages. [0050] Il est défini par la formule [0051] ID,±1-S = ID, + Max (1 , 2n x Fi / (ZFj) ) 20 [0052] La fonction de sécurisation F additionne ensuite l'identifiant modifié IDi-S fourni par la sous-fonction MAP et le nombre Ri généré par la sous-fonction R. Cette addition est référencée F1. Les sous-fonctions MAP et R sont configurées pour que la somme soit dans l'espace des identifiants codée sur 11 bits (ou sur 29 bits) dans le mode de réalisation présenté. 25 [0053] La fonction de lecture sécurisée F' présentée en figure 2, mise en oeuvre par l'unité 20, est détaillée en figure 4. Elle obtient par la lecture des informations circulant sur le bus 20 l'identifiant de message transmis qui est l'identifiant sécurisé IDR, et elle dispose de l'algorithme ALGO, synchronisé avec l'algorithme ayant généré, au sein de la fonction de sécurisation F, le nombre pseudo-aléatoire utilisé pour produire 30 l'identifiant de message transmis ou identifiant sécurisé IDR. 8 [0054] La fonction de lecture sécurisée F' comprend une sous-fonction de pointage MAP2, par laquelle elle passe alors les N intervalles I en revue, en générant les nombres pseudo-aléatoires ayant pu être utilisés par la fonction de sécurisation F lors de l'envoi par l'unité 10. On constitue alors une liste d'identifiants modifiés IDS (les 5 identifiants candidats) par soustraction à IDR du nombre pseudo-aléatoire généré correspondant. L'un d'entre eux permet de reconnaître un identifiant modifié, dit pointé, et d'en déduire l'identifiant originel ID associé, dit également pointé. Celui-ci a alors été récupéré. Il est sélectionné. [0055] La fonction de lecture sécurisée F' comprend de plus une sous-fonction de 10 vérification VERIF, qui, à partir de l'identifiant originel ID pointé, génère le nombre pseudo-aléatoire associé à l'aide de l'algorithme ALGO, et l'additionne à l'identifiant modifié IDS pointé, pour finalement vérifier si cette somme est effectivement égale à l'identifiant de message transmis IDR. Si la somme est effectivement égale, l'extraction (ou récupération) de l'identifiant originel ID pointé est validée, et celui-ci est 15 sélectionné. Il s'agit bien de l'identifiant du message transmis initialement. Dans le cas contraire, une anomalie est présente, comme par exemple la présence d'une attaque en cours. [0056] Grâce à ces fonctions, il est possible de mettre en oeuvre une barrière de sécurité contre les attaques informatiques visant un véhicule automobile par le biais de 20 son bus de terrain CAN. L'attaquant ne disposant pas de l'algorithme ALGO, il est face à une grande difficulté en ce qui concerne l'ingénierie inverse des messages qui circulent sur ce bus. Et il a beaucoup de mal à mettre au point des attaques par injection de trames ou rejeu de trames, ne pouvant pas aisément prédire la période et l'occurrence REVENDICATIONS1. Procédé, sur un réseau de communication (B) embarqué d'un véhicule automobile, le réseau étant configuré pour la transmission d'une pluralité de messages auxquels sont associés des périodes respectives de transmission sur ledit réseau ainsi que des identifiants originels (ID) respectifs, de transmission sécurisée d'un message donné (M1) choisi parmi la pluralité, caractérisé en ce que le procédé comprend, une étape de détermination (F) d'un identifiant de message sécurisé (IDR), comme un résultat d'une fonction (F1) appliquée à l'identifiant originel (ID) du message donné (M1) et impliquant un nombre (R) généré à l'aide d'un algorithme de génération pseudo-aléatoire (ALGO), dans un intervalle numérique choisi, en fonction de l'identifiant originel (ID) du message donné (M1), dans une liste d'intervalles numériques (11, ... IN), une étape de transmission (100) sur le réseau (B) du message sous forme modifiée (M2), avec l'identifiant de message sécurisé (IDR), puis une étape de récupération (F') de l'identifiant originel du message donné (M1), en passant les intervalles numériques de la liste (11, ... IN) en revue à l'aide dudit algorithme de génération pseudo-aléatoire (ALGO) pour déterminer des identifiants candidats, et en sélectionnant, parmi les identifiants candidats, un identifiant (ID) correspondant au message donné (M1). 2. Procédé de transmission sécurisée selon la revendication 1, caractérisé en ce que l'étape de détermination est telle que l'identifiant de message sécurisé est choisi à l'aide de l'algorithme de génération pseudo-aléatoire (ALGO) dans un intervalle numérique dont la longueur est inversement proportionnelle à la période associée au message. 3. Procédé de transmission sécurisée selon la revendication 1 ou la revendication 2, caractérisé en ce que l'étape de récupération (F') comprend une étape de reconnaissance (MAP2), parmi les identifiants candidats, d'un des identifiants originels (ID) puis, une étape de génération (R) d'un nombre associé à l'identifiant reconnu à l'aide dudit algorithme (ALGO) et des intervalles numériques (11, ... IN), et une étape de vérification d'une égalité (VERIF) entre 10 d'une part l'identifiant de message sécurisé (IDR) et d'autre part un résultat de la fonction (F1) appliquée audit identifiant reconnu. 4. Procédé de transmission sécurisée selon l'une des revendications 1 à 3, caractérisé en ce que les messages (M1) de la pluralité comprennent chacun 5 des données variables (D) qui sont transmises avec l'identifiant de message sécurisé (IDR). 5. Procédé de transmission sécurisée selon l'une des revendications 1 à 4, caractérisé en ce que la liste d'intervalles numériques (11, ... IN) est définie pour que les identifiants de messages sécurisé (IDR) soient répartis de manière 10 plus uniforme sur un espace de définition des identifiants que les identifiants originels (ID). 6. Procédé de transmission sécurisée selon l'une des revendications 1 à 5, caractérisé en ce que le message (M2) est transmis sous forme de trames de données sur un bus (B) de données multiplexées. 15 7. Procédé de transmission sécurisée selon l'une des revendications 1 à 6, caractérisé en ce que le message (M2) est transmis entre au moins deux unités de contrôle électroniques (10, 20) d'un bus CAN (B). 8. Procédé de transmission sécurisée selon l'une des revendications 1 à 7, caractérisé en ce que le réseau est configuré pour la transmission de 20 messages dont les identifiants sont codés sur 11 bits, ou sur 29 bits. 9. Système de communication, comprenant un réseau de communication (B) pour véhicule automobile, le réseau étant configuré pour la transmission d'une pluralité de messages auxquels sont associés des périodes respectives de transmission sur ledit réseau ainsi que des identifiants originels (ID) respectifs, 25 et des moyens de transmission sécurisée d'un message donné (M1) choisi parmi la pluralité, caractérisé en ce que les moyens de transmission sécurisée comprennent des moyens de détermination (F) d'un identifiant de message sécurisé (IDR), comme un résultat d'une fonction (F1) appliquée à l'identifiant originel (ID) du message donné (M1) et impliquant un nombre (R) généré à 30 l'aide d'un algorithme de génération pseudo-aléatoire (ALGO), dans un intervalle numérique choisi, en fonction de l'identifiant originel (ID) du message donné (M1), dans une liste d'intervalles numériques (11, ... IN), des moyens de 11 transmission (100) du message sous forme modifiée (M2), avec l'identifiant de message sécurisé (IDR), et des moyens de récupération (F'), en passant les intervalles numériques de la liste (11, ... IN) en revue à l'aide dudit algorithme de génération pseudo-aléatoire (ALGO) pour déterminer des identifiants 5 candidats, et en sélectionnant, parmi les identifiants candidats, un identifiant (ID) correspondant au message donné (M1). 10. Véhicule automobile comprenant un système de communication selon la revendication 9. 10