FR 2922392 A1 20090417 FR 0707180 A 20071012 DISPOSITIF ET PROCEDE POUR AIGUILLER DES FLUX D'ECHANGE DE VALEURS PUBLIQUES (OU NON SENSIBLES) PERMETTANT DE CREER DES CLES SECRETES COMMUNES ENTRE PLUSIEURS ZONES L'invention concerne un dispositif et un procédé permettant d'aiguiller des flux d'échange de valeurs publiques ou non sensibles permettant de créer des clés secrètes communes entre plusieurs zones. Elle s'applique dans les domaines des télécommunications et notamment dans le cloisonnement de sécurité entre certains domaines réseaux IP (abréviation anglo-saxonne de Internet Protocol). Elle peut aussi être utilisée dans un système où plusieurs entités peuvent communiquer par groupe de confiance ou de cloisonnement, notamment dans le domaine logiciel ou le domaine des architectures matérielles. Dans des systèmes comprenant des zones ayant plusieurs niveaux de confidentialité ou encore des cloisonnements pour des niveaux de confidentialité identiques, il est souvent nécessaire de fournir des règles et des moyens permettant de gérer la circulation des flux de données échangées entre les zones. Par exemple, dans le domaine des réseaux de télécommunications comprenant plusieurs zones de niveaux de sécurité différents, les systèmes utilisent par exemple un administrateur réseau qui fournit les premiers secrets (clés privées et publiques générées par une IGC, Infrastructure de Gestion des clés) qui permettront de créer le cloisonnement entre les zones délimitées par certains équipements réseau, que ce soit des routeurs ou des switchs. L'un des problèmes à résoudre dans ce domaine est donc la capacité de l'administrateur réseau à accomplir cette tâche. A la connaissance du Demandeur, actuellement le cloisonnement est géré soit par un routeur filtrant les paquets IP vis à vis d'une table de routage spécifique, soit par un commutateur connu sous l'acronyme anglo-saxon � switch � par la configuration de réseau virtuel au niveau 2 de la couche OSI via la mise en oeuvre de la directive IEEE 802.1 P,Q Normes IEEE 802.1p - Traffic Class Expediting and Dynamic Multicast Filtering (published in 802.1D-1998) et 802.1Q - Virtual LANs)(� Doc. Ref. Utilisation : Article : Auteur : E,NICLAS, IEEE 802.1 P,Q - QoS on the MAC level. Ces techniques, bien qu'elles soient efficaces, ne permettent toutefois pas d'obtenir un cloisonnement fort entre les zones réseaux associées aux équipements de routage (couche 2/3) du réseau IP. Dans ce contexte, seule une protection cryptographique fournit la propriété de cloisonnement fort, donc non modifiable par un attaquant interne au réseau. Dans ce cadre, le besoin de diffuser des clés de chiffrement ou d'intégrité est alors nécessaire et complexifie la mise en oeuvre des équipements du réseau (commutateurs ou routeurs). Dans le cas classique d'un réseau IP, une infrastructure de gestion de clés devra être mise en oeuvre afin de créer et de diffuser des clés publiques et privées entre les différents équipements du réseau à cloisonner. Il est ainsi possible d'utiliser la méthode de gestion de clés par infrastucture de gestion connue sous l'abréviation IGC, qui permet de distribuer par une méthode organisationnelle le secret commun aux équipements faisant partie du même réseau virtuel. Le principal inconvénient de l'art antérieur est l'obligation à une direction informatique de posséder une infrastructure de gestion de clefs, et de configurer à chaque mise en service les équipements de routage de niveau 2 ou 3. Dans le cas de la sécurisation de la couche 2 de la norme OSI, la norme RFC 802.1 P,Q permet dans le cas d'un réseau Ethernet de fournir la capacité à créer des réseaux privés virtuels en paramétrant un numéro de réseau associé à une zone délimitée du réseau par des commutateurs Ethernet. Un des inconvénients est le fait de ne pas disposer d'un niveau de sécurité suffisant en cas de modification des paramètres de la norme 802.P,Q et donc de la ré affectation des numéros de réseau associés à une ou plusieurs zones. Ce standard ne fournit donc pas de sécurisation du cloisonnement entre les équipements commutateurs configurés. La présente invention concerne un équipement permettant de configurer de manière autonome la sécurité entre des entités qui sont amenées à communiquer entre elles, par groupe de confiance ou de cloisonnement. Elle fournit aussi un mécanisme autonome de négociation de clés de groupe entre les différentes entités précitées afin de pouvoir créer, à partir des équipements, un filtrage cryptographique des flux circulant dans leurs domaines respectifs. L'invention concerne un procédé pour aiguiller des flux d'échange de valeurs publiques ou non sensibles permettant de créer des clés communes entre plusieurs zones dans un système où les entités communiquent entre elles par groupe de confiance, caractérisé en ce qu'il comporte au moins les étapes suivantes : o chaque entité génère une valeur publique et communique cette valeur publique à un aiguilleur, o l'aiguilleur transmet à une première entité, une valeur publique d'une autre entité appartenant au même groupe de confiance, cette étape est 15 réitérée pour toutes les entités, o chaque entité récupère la valeur publique d'une autre entité appartenant au même groupe de confiance et détermine la valeur de la clé de chiffrement commune aux entités d'un même groupe de confiance, o une entité appartenant à un même groupe de confiance utilise cette clé 20 pour chiffrer les données à transmettre à une autre entité. L'invention concerne un système permettant d'aiguiller des flux d'échange de valeurs publiques ou non sensibles permettant de créer des clés communes entre plusieurs zones, dans un système où les entités communiquent entre elles par groupe de confiance caractérisé en ce qu'il comporte au moins les 25 éléments suivants : o une entité comporte un module de cryptographie adapté à générer une valeur publique et un secret commun, o un dispositif d'aiguillage comprenant une table établissant les liens existants entre les entités, 30 o des moyens de communication entre le dispositif d'aiguillage et les entités de façon telle qu'une entité transmet au dispositif d'aiguillage une valeur publique, le dispositif d'aiguillage transmet ladite valeur publique à une autre entité appartenant au même groupe de confidentialité et une entité déterminer la valeur de la clé pour chiffrer ses données. D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description qui suit d'un exemple de réalisation donné à titre illustratif et nullement limitatif, annexée des figures qui représentent : o La figure 1, un rappel concernant le mécanisme du protocole Diffie- Hellman, o La figure 2, une architecture de système mettant en oeuvre l'aiguilleur selon l'invention, o La figure 3, une table de correspondance possible entre un réseau virtuel et des adresses MAC (Medium access ..) des équipements d'un réseau, o La figure 4, le schéma de l'envoi des valeurs publiques Diffie-Hellman vers l'aiguilleur selon l'invention, o La figure 5, l'aiguillage des valeurs publiques Diffie-Hellman par l'aiguilleur, o La figure 6, un premier exemple de réseaux virtuels sécurisés générés, o La figure 7, un deuxième exemple de réseaux virtuels sécurisés, o La figure 8, le format Trame Ethernet intégrant l'option de sécurisation, et o La figure 9, le format d'une trame intégrant l'option de calcul d'intégrité. Afin de mieux faire comprendre l'objet de l'invention, la description qui suit est donnée dans le cadre d'un réseau IP. L'invention peut toutefois s'appliquer dès que des entités peuvent communiquer entre elles, par groupe de confiance ou de cloisonnement. L'aiguilleur selon l'invention permet de créer des groupes de confiance et d'acheminer les valeurs publiques de chacune des entités afin de leur permettre de générer un élément secret associé à chacun des groupes. La figure 1 rappelle le protocole de Diffie-Hellman ou D-H, dont les principes sont décrits dans l'article publié par Diffie-Hellman en 1976, sous le titre � New Directions in cryptography. IEEE Trans. On Information Theory, VoI.IT-22-6, November 1976. Le résultat principal de cet article est la possibilité pour deux utilisateurs communiquant via un réseau peu sûr de se mettre d'accord sur une clé de session, destinée à coder leurs communications ultérieures. Soit G= un groupe cyclique. Les deux participants U1, U2 choisissent chacun au hasard x1,x2 appartenant à G respectivement et échangent les valeurs gX', gX2 sur le réseau. L'utilisateur U1, (resp. U2) calcule alors le secret Diffie-Hellman gX1X2 en recevant le message de U2 (resp U1). Cette hypothèse stipule qu'étant donnée trois valeurs gX1 gX2 gr, un adversaire polynomial ne peut décider avec un avantage significatif si gr = gxlx2 ou non. La base de l'exemple donné ci-après repose sur le principe de Diffie-Hellman qui donne la possibilité à deux utilisateurs communiquant entre eux de se mettre en accord sur une clé de session, destinée à chiffrer ou à rendre intègre leurs communications futures. Dans le cadre de l'invention, cette approche est généralisée à un groupe du principe de Diffie-Hellman qui permet à un groupe d'utilisateur de générer une clé de session commune. La figure 2 représente un exemple d'architecture intégrant le mécanisme et 15 l'aiguilleur selon l'invention comportant : Un aiguilleur 1 ou module de configuration connecté à un réseau composé de plusieurs entités, 2i, chaque entité 2i communiquant avec l'aiguilleur 1 via des modules 3i ayant notamment pour fonction de contrôler le passage et la direction des flux de données d'une entité vers une autre entité. Le réseau met 20 en oeuvre par exemple le protocole internet IP. L'aiguilleur, les différentes entités communiquent entre eux via par exemple un commutateur 4 qui permet la connexion des entités entre elles en fonction des données de configuration issues de l'aiguilleur. La conception de ce commutateur est connue de l'Homme du métier et ne sera donc pas détaillée dans la présente demande de brevet. 25 L'aiguilleur 1 est caractérisé, par exemple au moyen de son adresse MAC (Medium access control) et son adresse internet IP, dans l'exemple. Il comporte des moyens pour gérer des règles de groupe et le protocole associé. Il est désigné � aiguilleur �. Un module de chiffrement (ou cryptographie) se présentant sous la forme d'un logiciel ou d'un circuit (en terme anlgo-saxon 30 � Hardware �) est intégré dans chacun des équipements ou entité 2i du réseau. Ce module de chiffrement 5 a notamment pour fonction de permettre la mise en oeuvre du protocole de Diffie-Hellman ou tout autre protocole similaire, pour chaque entité et de calculer la valeur de secret DH de groupe pour le secret commun. Une entité est par exemple caractérisée par son adresse MAC et possède des capacités de cryptographie. Le dispositif selon l'invention met en oeuvre dans cet exemple un protocole sur la couche 2 Ethernet, intégrant plusieurs champs caractérisant l'identification d'un réseau virtuel généré par l'aiguilleur, et les motifs d'intégrité de la trame de niveau 2. L'équipement � aiguilleur � 1, possède un ensemble de règles de création des réseaux virtuels. Pour cela, il dispose d'une table de correspondance décrite à la figure 3 entre les numéros de réseau virtuel et les adresses MAC des entités associées. Le fonctionnement de l'invention pour des réseaux virtuels formés par des paires d'entités (cas courant) est défini en plusieurs phases : Chacune des entités du réseau génère un secret ou valeur publique Diffie Hellman g1Di, puis chacune des entités envoie un message vers l'aiguilleur avec sa valeur publique Diffie-Hellman g1Di . Les messages transmis sont schématisés sur la figure 4 par des flèches F, une flèche étant indicée avec une valeur publique g1Di L'aiguilleur 1 récupère alors toutes les valeurs publiques transmises par les entités en les associant leur adresse MAC : Ainsi la valeur publique g1D1, est associée à l'adresse MAC1 de l'entité 1 et ainsi de suite pour les entités suivantes 2 à N, g1D2, Adresse MAC2, g1DN, Adresse MACN L'aiguilleur renvoie ensuite, à chacune des entités la valeur Diffie-Hellman correspondant aux entités associées à un réseau virtuel (composant le réseau de confiance) à partir de sa table de correspondance. Ceci est représenté sur la figure 5, par les flèches G indicées par la valeur de Diffie-Hellman de la manière suivante par exemple : Pour le Réseau virtuel 1, les adresses des entités 1 et 2 appartenant à ce réseau = MAC1 ( MAC2 Vers l'Adresse MAC1: l'aiguilleur transmet la valeur publique générée par l'entité 2 gl°2 Vers l'Adresse MAC2: l'aiguilleur transmet la valeur publique générée par l'entité 1 g'D1 Pour le Réseau virtuel 2 = MAC3 1 MAC4 Vers Adresse MAC4: gID3 Vers Adresse MAC3: gI°4 Le format de trame utilisé est par exemple le format décrit à la figure 8. La trame comprend les champs suivants : un champ MAC source, un champ MAC destination, un champ SKP correspondant à l'option de sécurisation, un champ données DATA et un champ contrôle d'erreur ou CRC. Le champ SKP comprend par exemple le numéro RV (numéro de réseau virtuel ), l'identifiant des entités appartenant au réseau virtuel concerné et la valeur de Diffie-Hellman générée par une entité. Chacune des entités récupère la valeur Diffie-Hellman de l'entité associée au même réseau virtuel et va calculer à partir de cette valeur le secret commun aux entités appartenant à un même réseau virtuel. Par exemple, sur la figure 5. Pour l'entité ID1 (MAC1) et ID2 (MAC2), l'entité 1 calcule le secret commun g1D1 ID2 ID1 (MAC,) : (gID2)ID1 gID1 ID2; l'entité 2, ID2 (MAC2) : (gID1)ID2 -> g'°1 ID2 Et ainsi de suite pour toutes les entités; Pour l'entité ID3 (MAC3) et ID4 (MAC4) ID3 (MAC3) : (gID4)I°3 gID31D4; ID4 (MAC4) : (gID3)ID4 gID3 ID4 Pour l'entité Adresse MACN : gIDN gI°k Chacune des entités calcule ensuite le motif d'intégrité à partir d'un algorithme de hachage de type SHA1 décrit par exemple dans la référence FIPS 180-2 25 � Federal Information Processing Standards Publications : FIPS PUB 180-2 - Secure Hash Standard (SHS) -- 2002 August, et l'intègre dans la trame ETHERNET afin définir le cloisonnement entre les réseaux virtuels par la vérification du motif d'intégrité. Cette étape est représentée à la figure 6. Le cloisonnement des réseaux est représenté par des traits pleins Ci qui relient par 30 exemple les adresses ID1 et ID2, le réseau virtuel formé correspondant au réseau virtuel 1, etc. Les paramètres définissant le réseau virtuel et sa sécurisation auront la forme d'une option à insérer dans le format de type Ethernet.v2. Le format est par20 exemple celui décrit à la figure 9. Par rapport à la trame de la figure 8, le champ SKP est remplacé par un champ RVS (Réseau Virtuel Sécurisé) qui comprend l'identifiant ID, l'étiquette et le contrôle d'intégrité de message ou � MIC � abrégé anglo-saxon de Message Integrity Control. A la fin des étapes précitées, chacun des modules de contrôle de la direction des flux entre les entités, possède l'ensemble des éléments de sécurité qui lui permet de sécuriser les flux transitant via son module d'aiguillage (via la création d'une clé commune par le mécanisme DH). De même dans le cas d'un réseau virtuel avec un nombre supérieur à 2 équipements, l'équipement d'aiguillage devra envoyer les valeurs publiques définies par les paires formées par les entités de réseau en réitérant la phase ci-dessus afin que chaque entité puisse calculer le secret de groupe Diffie-Hellman. Dans ce contexte, le fonctionnement de l'invention est donc défini en plusieurs phases décrites ci-après : Chacune des entité du réseau génère un secret Diffie Hellman g1DI, puis chacune des entités va envoyer un message vers l'aiguilleur avec sa valeur publique Diffie-Hellman g1DI (FIG. 4). L'aiguilleur va récupérer toutes les valeurs des entités en les associant à leur 20 adresse MAC : g1D1 Adresse MAC1 g1D2, Adresse MAC2 gIDN Adresse MACN L'aiguilleur va échanger (suivant le format figure 8) avec chacune des entités la 25 valeur Diffie-Hellman vis à vis des entités associées à un réseau virtuel à partir de sa table de correspondance (FIG.5). Réseau virtuel 1 = MAC1 I MAC2 Vers Adresse MAC1 : g1°2 Vers Adresse MAC2: g1D1 30 Réseau virtuel 2 = MAC3 I MAC4 I MAC5 Vers Adresse MAC4: gID3 Vers Adresse MAC3: g1D4 Vers Adresse MAC5: glD4 Réseau virtuel 2 = MACK I MACk+1 I MACk+21 ...1 MACN Chacune des entités va alors récupérer la valeur Diffie-Hellman de l'entité associée au même réseau virtuel et va calculer à partir de cette valeur un premier secret commun, et va renvoyer cette valeur à l'aiguilleur tant que le nombre de secret publique reçu est différent du nombre de participants au réseau virtuel. Pour l'entité ID1 (MAC1) et lD2 (MAC2) ID1 (MAC1) : (gID2)IDi -> glDi ID2; ID2 (MAC2) : (glDi)ID2 -] g1D1 ID2 Pour l'entité ID3 (MAC3) et ID4 (MAC4): ID3 (MAC3) : (g1D4)ID3 -> glD41D3 ; ID4 (MAC4) : (g'°3)ID4 -> gID3 1D4 Pour l'entité ID4 (MAC4) et ID5 (MAC5) ID4 (MAC4) : (gID5)ID4 -> g1D41D5 ; ID5 (MAC5) : (gID4)ID5 -> gID41D5 Pour l'entité ID3 (MAC3) et ID5 (MAC5) ID3 (MAC3) : (g'")'°3 -> gID3 ID5 ; ID5 (MAC5) : (gID3)ID5 -> g1D31D5 Chacune des entités va alors renvoyer cette valeur à l'aiguilleur tant que le nombre de secret publique reçu n'est pas égal aux nombres de participants au réseau virtuel. Le dispositif d'aiguillage aiguillera alors ces valeurs vers l'entité faisant partie du réseau afin de finaliser la valeur de groupe. Pour l'entité ID1 (MAC1) et ID2 (MAC2) Pour l'entité ID3 (MAC3) (gID41D5 ) ID3 -> gID3 ID4 ID5 Pour l'entité ID4 (MAC4) : (gID3 I05 ) ID4 -> dm"' '5 Pour l'entité ID5 (MAC5) : (g'°31D4 )1D5 -> gID3ID4ID5 Chacune des entités va alors pouvoir calculer le motif d'intégrité à partir d'un algorithme de hachage de type SHA1, et l'intégrer dans la trame ETHERNET afin définir le cloisonnement entre les réseaux virtuels par la vérification du motif d'intégrité. Le cloisonnement est représenté par les flèches Dj en traits pleins de la figure 7. Dans l'exemple décrit ci-dessus une entité est par exemple un équipement habituellement utilisé dans un réseau Ethernet et les flux échangés sont des flux IP Sans sortir du cadre de l'invention, le procédé et le dispositif décrits précédemment peuvent être utilisés dans tout système mettant en oeuvre des entités qui peuvent communiquer entre elles, par groupe de confiance ou de cloisonnement. L'aiguilleur selon l'invention est donc une entité qui permet de créer des groupes de confiance, et d'acheminer les valeurs publiques de chacune des entités afin de leur permettre de créer un élément secret associé à chacun des groupes. Chaque entité a des capacités crypto (DH). L'aiguilleur n'a que des capacités à gérer des règles de groupe et le protocole associé. Dans le cadre du domaine logiciel, l'invention peut être mise en oeuvre avec les techniques de bus logiciel (intergiciel, ou middleware en anglais), dans lequel les entités sont représentées par la notion de services logiciels interconnectés (entre eux suivant un service d'annuaire). L'aiguilleur selon l'invention, sera alors un service particulier accessible par tous les autres services. Ces autres services devront au démarrage, initialisation des machines (démarrage des processus ou applicatifs), créer la valeur publique DH et envoyer chaque valeur publique DH au service aiguilleur (via le bus logiciel) qui se chargera d'envoyer les valeurs aux services d'un même groupe de confiance. Dans le cadre du domaine matériel, il est possible de mettre en situation, le principe de l'invention avec des cartes interconnectées sur un bus matériel commun. Le principe est alors le même que celui décrit précédemment. Les cartes jouent le rôle des entités précédemment décrites et l'aiguilleur permet de générer des groupes dans lesquels certaines cartes sont autorisées à communiquer entre elles. L'application à des réseaux cloisonnés est aussi possible, par exemple, l'invention est utilisée pour des réseaux Ethernet/IP via un système de réseau virtuel local ou en anglo-saxon VLAN (virtuel local area network) basé sur des commutateurs ou basé sur des routeurs dans le cas de VPN (Virtual Private Network). L'invention présente notamment les avantages suivants : une simplification dans la configuration et la flexibilité dans le paramétrage des équipements dans un réseau virtuel, et d'autre part, la sécurité en terme d'intégrité et de confidentialité du flux de communication entre les équipements formant un réseau virtuel. REVENDICATIONS 1 û Procédé pour aiguiller des flux d'échange de valeurs publiques ou non sensibles permettant de créer des clés communes entre plusieurs zones dans un système où les entités communiquent entre elles par groupe de confiance, caractérisé en ce qu'il comporte au moins les étapes suivantes : o chaque entité génère une valeur publique et communique cette valeur publique à un aiguilleur, o l'aiguilleur transmet à une première entité, une valeur publique d'une 10 autre entité appartenant au même groupe de confiance, cette étape est réitérée pour toutes les entités, o chaque entité récupère la valeur publique d'une autre entité appartenant au même groupe de confiance et détermine la valeur de la clé de chiffrement commune aux entités d'un même groupe de confiance, 15 o une entité appartenant à un même groupe de confiance utilise cette clé pour chiffrer les données à transmettre à une autre entité. 2 û Procédé selon la revendication 1 caractérisé en ce qu'il utilise le protocole Diffie-Hellman pour générer les valeurs publiques et la clé de chiffrement. 3 û Procédé selon la revendication 1 caractérisé en ce qu'il intègre dans la trame de données un motif d'intégrité. 4 û Procédé selon la revendication 3 caractérisé en ce qu'il utilise un algorithme 25 de hachage pour déterminer le motif d'intégrité. 5 û Procédé selon la revendication 1 caractérisé en ce que les données sont échangées sous la forme d'une trame Ethernet et le protocole utilisé est le protocole IP. 6 û Système permettant d'aiguiller des flux d'échange de valeurs publiques ou non sensibles permettant de créer des clés communes entre plusieurs zones, 20 30dans un système où les entités communiquent entre elles par groupe de confiance caractérisé en ce qu'il comporte au moins les éléments suivants : o une entité (2i) comporte un module de cryptographie (5) adapté à générer une valeur publique et un secret commun, o un dispositif d'aiguillage (1) comprenant une table établissant les liens existants entre les entités (2i), o des moyens de communication (3i, 4) entre le dispositif d'aiguillage (1) et les entités (2i) de façon telle qu'une entité transmet au dispositif d'aiguillage une valeur publique, le dispositif d'aiguillage transmet ladite valeur publique à une autre entité appartenant au même groupe de confidentialité et une entité détermine la valeur de la clé pour chiffrer ses données. 7 û Système selon la revendication 6 caractérisé en ce que le module de cryptographie utilise le mécanisme de Diffie-Hellman. 8 û Système selon la revendication 6 caractérisé en ce que le système est un réseau de communication Ethernet mettant en oeuvre le protocole IP.20