Brevet FR3160837A1 — publié le 20251003

L’invention concerne un procédé de détection d'un algorithme cryptographique particulier utilisé dans un système informatique, comprenant des étapes de capture de paquets de données échangés avec une machine cible pour obtenir des mesures initiales de temps et de volume de données, de calcul de délais de réponse en mesurant le temps écoulé entre l'envoi et la réception des paquets de données capturés, de détermination d’une première signature temporelle indicative d’un algorithme cryptographique utilisé pour générer les paquets capturés à partir des délais de réponse calculés et des volumes de données échangés, de détermination d’un niveau de correspondance entre la première signature temporelle déterminée et au moins une deuxième signature temporelle déterminée au préalable pour un algorithme cryptographique particulier, et de transmission d’une alerte comprenant au moins un identifiant d’un équipement à l’origine et/ou d’un équipement destinataire dudit flux réseau lorsque le niveau de correspondance est supérieur à un seuil. Figure pour l’abrégé : figure 2 Procédé et dispositif de détection et d’identification d’algorithmes cryptographiques dans un réseau de communication. L’invention appartient au domaine de la sécurité des réseaux et des systèmes, et concerne plus précisément un procédé permettant de réaliser un inventaire d’algorithmes cryptographiques utilisés dans les systèmes informatiques. État de la technique antérieure Les progrès réalisés dans le domaine de l’informatique quantique challengent aujourd’hui de manière concrète les dispositifs de sécurité des réseaux communication. En effet, alors que les algorithmes quantiques, tels que les algorithmes de Shor, de Grover et de Simon, permettaient jusqu’ici de résoudre conceptuellement certains problèmes calculatoires sur lesquels sont fondés des mécanismes de sécurité largement déployés, l’apparition de calculateurs adaptés pour mettre en œuvre ces algorithmes rend cette menace très concrète. En effet, alors que les meilleurs algorithmes classiques pour résoudre ces problèmes ont une complexité exponentielle en général, les algorithmes quantiques peuvent produire une réponse en temps polynomial. Bien qu’un calculateur quantique suffisamment dimensionné et fiable ne soit pas encore à la disposition de potentiels hackers, des flux chiffrés capturés aujourd’hui par un attaquant pourront être déchiffrés par des algorithmes quantiques ultérieurement et révéler des secrets qui pourront toujours posséder de la valeur dans le futur. Il est dès lors impératif de mettre en place dès aujourd’hui des mécanismes de sécurité dit post-quantiques, qui conservent un niveau de sécurité élevé face à un calculateur quantique. Les techniques cryptographiques vulnérables à des attaques basées sur des calculateurs quantiques sont largement déployées dans les réseaux et infrastructures aujourd’hui en service. Il devient dès lors impératif d’identifier et de mettre à jour dès aujourd’hui les services qui sont susceptibles d’être affectés. Cependant, l’étendue de certains réseaux de communication et la diversité des services qu’ils supportent ne permettent pas d'établir de manière simple une liste des services susceptibles d’être affectés. Cette difficulté à établir une cartographie exhaustive des services vulnérables déployés dans un réseau est d’autant plus exacerbée lorsque des utilisateurs se voient offrir la possibilité d’installer eux-mêmes des applications sur leur poste de travail et que ces applications sont sujettes à de fréquentes mises à jour. Ainsi, les mécanismes de sécurité utilisés pour protéger des services sont susceptibles de varier au cours du temps. Ainsi, identifier de manière exhaustive les services vulnérables à des attaques quantiques est une tâche ardue et chronophage, souvent chronophage et sujette à des erreurs, en particulier dans des environnements complexes avec de nombreux systèmes interconnectés. Il existe donc un besoin pour une méthode permettant d’identifier rapidement et avec précision les algorithmes cryptographiques en usage au sein des infrastructures numériques, afin de déterminer lesquels sont susceptibles d'être compromis par des attaques quantiques. A cet effet, il est proposé un procédé de détection par une sonde d'un algorithme cryptographique particulier utilisé dans un système informatique. Le procédé est remarquable en ce qu’il comprend les étapes suivantes : Capturer des paquets de données échangés avec une machine cible pour obtenir des mesures initiales de temps et de volume de données, Calculer des délais de réponse en mesurant le temps écoulé entre l'envoi et la réception des paquets de données capturés, Déterminer une première signature temporelle indicative d’un algorithme cryptographique utilisé pour générer les paquets capturés à partir des délais de réponse calculés et des volumes de données échangés, Détermination d’un niveau de correspondance entre la première signature temporelle déterminée et au moins une deuxième signature temporelle déterminée au préalable pour un algorithme cryptographique particulier, et Transmettre une alerte comprenant au moins un identifiant d’un équipement à l’origine et/ou d’un équipement destinataire dudit flux réseau lorsque le niveau de correspondance est supérieur à un seuil. De cette façon, le procédé permet de distinguer différents types d'algorithmes cryptographiques à moindre coût, sans qu’il soit nécessaire de décoder les flux de données, et déclencher une alerte lorsque l’utilisation d’un algorithme cryptographique particulier est détectée dans une communication avec une machine cible. Un tel algorithme cryptographique est par exemple mis en œuvre pour chiffrer des données, pour échanger une clef, réaliser une authentification ou encore garantir l’intégrité d’un paquet de données. On entend ici par « machine cible » tout équipement adapté pour recevoir et/ou envoyer des données sur un réseau de communication. Il peut s’agir d’une machine physique, comme un serveur, un ordinateur personnel, un terminal de communication mobile, etc. ou bien d’une machine virtuelle s’exécutant dans un environnement virtualisé. L’invention exploite une relation entre une méthode cryptographique utilisée pour traiter un bloc de donnée d’une certaine taille, et le temps de traitement nécessaire à une machine particulière pour traiter un tel bloc de données selon cette méthode. Plus généralement, le procédé identifie un algorithme cryptographique particulier en exploitant des caractéristiques techniques d’algorithmes tels que des algorithmes de chiffrement symétriques ou asymétriques, de MAC, de signature, d'échange de clé, etc. En effet, un système cryptographique particulier possède une complexité qui lui est propre, de sorte que l’observation des entrées/sorties du système par des mesures de temps et de volumes de données forment une signature temporelle particulière du système cryptographique. Cette signature temporelle peut être comparée à un ensemble de signatures déterminées au préalable pour une variété de systèmes cryptographiques et de machines cibles pour identifier le système en œuvre sur la machine cible. Il est ainsi possible de détecter la mise en œuvre d’algorithmes susceptibles présentant une vulnérabilité particulière, par exemple une vulnérabilité à des attaques perpétrées par des ordinateurs quantiques, et déclencher une alerte le cas échéant. En déployant une ou plusieurs sondes dans un réseau de communication, il est ainsi possible de dresser l’inventaire dynamique des systèmes cryptographiques à l’œuvre dans un réseau de communication afin d’en améliorer la sécurité. Selon un mode particulier de réalisation, le procédé comprend en outre une étape d’analyse des mesures de volume pour déterminer si les paquets capturés comprennent des données chiffrées selon un mode par bloc ou par flot, en se basant sur la conformité de la taille totale des données à des multiples de tailles de bloc standard, le temps de calcul étant estimée à l'aide du mode de chiffrement déterminé, des mesures de temps et de quantité de données applicatives échangées. Une telle disposition permet de déterminer un sous-ensemble d’algorithmes susceptibles d’être utilisé. De cette façon, on limite le nombre d’algorithmes candidats et on améliore les performances de détection. Selon un mode particulier de réalisation, le procédé est tel qu’il comprend une étape d’application d’un algorithme de type sequential distinguisher pour identifier des motifs récurrents qui correspondent à un algorithme cryptographique spécifique pour lequel de tel motifs sont préalablement identifiés. Autrement dit, le procédé comprend une étape d’application d’une méthode statistique qui prend en compte une pluralité de mesures de temps et de volumes de données et au cours de laquelle on identifie des motifs récurrents qui correspondent à un algorithme cryptographique spécifique pour lequel de tel motifs sont préalablement identifiés. De tels motifs récurrents correspondent à des valeurs (durée d’exécution, taille de paramètres) qui sont représentatifs d’un algorithme cryptographique. Une manière d'identifier un algorithme cryptographique (et de le distinguer d'autres algorithmes cryptographiques) est d'utiliser une référence temporelle (ex : temps d'exécution de l'algorithme en question) et de la comparer à la mesure effectuée au moment de l'analyse. Toutefois, il est possible que la mesure effectuée au moment de l'analyse soit bruitée par d'autres événements (opérations effectuées en parallèle, latence du réseau, etc.). Utiliser un sequential distinguisher permet de tenir compte du fait que la mesure peut être bruitée. Le principe consiste à effectuer plusieurs mesures de temps. La comparaison effectuée ne porte pas sur une valeur (discrète) de référence mais sur un intervalle (ensemble de valeurs continues). Au moment de l'analyse, la mesure de temps effectuée permet de distinguer l'algorithme exécuté selon que cette mesure est supérieure à la borne supérieure de l'intervalle ou inférieure à la borne inférieure de l'intervalle. Si la mesure appartient à l'intervalle de référence, le résultat est indécidable (i.e. : trop bruité). Dans certaines réalisations, le procédé comprend une étape d’application d’une divergence de Kullback-Leibler pour comparer une distribution des temps mesurés avec des distributions déterminées au préalable pour une pluralité d’algorithmes de référence. De cette façon, le procédé permet l’identification d’un système cryptographique particulier dans un environnement opérationnel, où les mesures peuvent être affectées par des facteurs de perturbation tels que la latence du réseau ou les processus concurrents sur la machine cible. L’application d’un tel traitement statistiques permet de compenser ces perturbations et fournir des résultats fiables malgré les imprévus inhérents à tout système informatique en fonctionnement. Selon une réalisation particulière, le procédé est tel que la détermination d’un niveau de correspondance entre la première et la deuxième signature comprend l’application d’un modèle d’apprentissage, préalablement entrainé à partir de mesures de temps et de volume de données produites dans des conditions similaires à celle de la machine cible, pour déterminer un algorithme cryptographique particulier à partir des mesures de temps et de volume de données échangées par la machine cible. Il est ainsi proposé d’entrainer un algorithme d’apprentissage comme un réseau de neurones artificiels, un arbre de décision, ou un algorithme de régression à partir de mesures réalisées au préalable avec des temps de traitement mesurés pour différents systèmes cryptographiques connus sur des machines de référence dont les performances sont également connues. Les instants de réception et/ou d’émission de paquets de données (ou d’instants correspondant à des appels systèmes de réception et/ou d’émission de données sur la machine cicle) et les volumes de données associés (ou une donnée caractéristique de ces informations, comme une signature temporelle) sont étiquetés par un identifiant du système cryptographique en œuvre et utilisés pour entrainer le modèle d’apprentissage de façon à permettre l’identification d’un système cryptographique à partir de telles mesures. Selon un autre aspect, l’invention concerne un dispositif de détection d'un algorithme cryptographique particulier comprenant un processeur couplé avec une interface de communication et une mémoire dans laquelle sont enregistrées des instructions configurées pour mettre en œuvre les étapes suivantes : Capturer des paquets de données échangés avec une machine cible pour obtenir des mesures initiales de temps et de volume de données, Calculer des délais de réponse en mesurant le temps écoulé entre l'envoi et la réception des paquets de données capturés, Déterminer une première signature temporelle indicative d’un algorithme cryptographique utilisé pour générer les paquets capturés à partir des délais de réponse calculés et des volumes de données échangés, Détermination d’un niveau de correspondance entre la première signature temporelle déterminée et au moins une deuxième signature temporelle déterminée au préalable pour un algorithme cryptographique particulier, et Transmettre une alerte comprenant au moins un identifiant d’un équipement à l’origine et/ou d’un équipement destinataire dudit flux réseau lorsque le niveau de correspondance est supérieur à un seuil. L’invention vise aussi une sonde réseau comprenant un tel dispositif de détection, ainsi qu’un système de communication comprenant au moins une machine cible et une telle sonde. Dans certaines réalisations du système de communication, la sonde est placée au niveau du dernier rebond avant la machine cible ou au niveau d'un hyperviseur dans le cas d'un réseau défini par logiciel (SDN). Dans un mode particulier de réalisation, les différentes étapes du procédé de détection sont déterminées par des instructions de programmes d’ordinateurs. En conséquence, l’invention vise aussi un programme d’ordinateur comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de détection tel que décrit ci-dessus, lorsque le programme est exécuté par un processeur. Ce programme peut utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable. L’invention vise aussi un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes d'un procédé de détection tel que décrit ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, une mémoire flash, ou encore un moyen d'enregistrement magnétique, comme un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé de détection. Les différents modes ou caractéristiques de réalisation précités peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de détection. Les systèmes, dispositifs, sondes et programmes présentent des avantages analogues à ceux du procédé de détection. Brève description des figures D'autres caractéristiques et avantages apparaîtront à la lecture d’un mode de réalisation préféré décrit en référence aux dessins annexés parmi lesquels : La FIG. 1 représente un exemple de réseau de communication, La FIG. 2 est un ordinogramme illustrant les principales étapes d’un procédé de détection selon une réalisation particulière, La FIG. 3 montre une chronologie de messages reçus et envoyés par une machine cible d’un réseau de communication, et La FIG. 4 est un diagramme en bloc illustrant l’architecture d’un dispositif adapté pour mettre en œuvre un procédé de détection selon un mode particulier de réalisation. Description détaillée La FIG. 1 représente de manière simplifiée un réseau de communication R1 comprenant des équipements E1 à E4. Le réseau R1 est par exemple un réseau local d’entreprise (LAN, pour Local Area Network en anglais) comprenant des serveurs et/ou des postes de travail utilisateurs E1 à E4. Bien entendu, l’invention qui va être décrite peut s’appliquer à tout type de réseau et l’exemple de la FIG. 1 n’est donné qu’à titre illustratif. Par exemple, le réseau R1 peut comprendre d’autres équipements non représentés, comme des routeurs ou des passerelles. Le réseau R1 peut être un réseau physique ou bien un réseau virtuel sans limiter l’invention. Le réseau R1 comprend également une sonde S adaptée pour surveiller et/ou capturer le trafic circulant sur le réseau, et en particulier les messages envoyés et/ou reçus par les différents équipements. Bien que cela ne soit pas représenté sur la FIG. 1 pour simplifier la description qui va suivre, le réseau R1 peut comprendre une pluralité de sondes S afin de surveiller différentes branches du réseau. Ainsi, lorsqu’un message est par exemple envoyé par l’équipement E1 vers l’équipement E4, la sonde S peut détecter et capturer un paquet de données dans lequel le message est transmis et en obtenir une copie. La sonde S peut être adaptée pour capturer ainsi des flux de données à différents niveaux, par exemple sur la couche physique, la couche de liaison de données, la couche de transport ou encore au niveau applicatif. La sonde S est par exemple un dispositif informatique tel qu’un serveur comprenant un processeur, une mémoire et une interface réseau (par exemple une interface Ethernet ou WiFi®). La mémoire du dispositif comprend des instructions de programme configurées pour piloter l’interface réseau afin de capturer et décoder les paquets de données. La sonde S est adaptée pour mettre en œuvre un procédé de détection selon une réalisation particulière. La sonde S est de préférence déployée à un emplacement proche de la machine cible, par exemple sur le dernier routeur avant la machine cible ou encore directement sur l'hôte, par exemple en tant que processus de surveillance, ou au niveau d'un hyperviseur dans le cas d'un réseau défini par logiciel (SDN). La sonde S est ainsi configurée pour capturer des paquets de données applicatifs échangés avec la machine cible, sans nécessiter l'accès au contenu chiffré des paquets. Lors d’une première étape 200 , la sonde surveille le trafic à destination et en provenance de l’équipement E4. La sonde S surveille le trafic grâce à au moins une interface réseau, physique ou virtuelle, permettant à la sonde d’obtenir une copie des paquets échangés par l’équipement E4. La sonde S capture en particulier des paquets issus de flux de communication chiffrés. La sonde identifie par exemple les flux chiffrés à destination ou issus de l’équipement E4 à partir d’une adresse comprise dans un entête d’un paquet de données. Les algorithmes symétriques sont utilisés pour protéger les données applicatives. Celles-ci sont échangées (dans les deux sens de la communication) en quantité relativement importante. La sonde exploite cette profusion de données applicatives pour obtenir un échantillon de mesures. La plupart du temps, le même algorithme est utilisé dans les deux sens d’une communication, la sonde peut donc exploiter des mesures effectuées aussi bien sur le trafic entrant que sur le trafic sortant. La FIG. 3 représente des messages M1 à M5 reçus ou envoyés par la machine cible E4. Ainsi, la sonde S enregistre au moins le temps d'arrivée t1 d’un premier paquet applicatif M1 et le temps d'émission t2 d’un premier paquet M3 émis en réponse au paquet M1. Ces mesures permettent de déterminer un temps de réponse t_rcv = t2 - t1. La sonde calcule également le volume de données n_rcv reçues par la machine cible E4 dans l’intervalle [t1 - t2[. Ainsi, en référence à la FIG. 3 , n_rcv = taille(M1) + taille(M2). Dans une réalisation particulière, la sonde S réalise des mesures de temps d’arrivée t_snd et de volume de données n_snd des paquets émis par la machine cible. Plus précisément, la sonde S détermine un délai de réponse t_snd à partir de l’instant d’émission t2 d’un paquet M3 et l’instant de réception t3 d’un message de réponse M5, ainsi que le volume de données n_snd émis dans l’intervalle [t2-t3[. Dans une réalisation particulière, la sonde S analyse la taille totale paquets de données échangés lors d’une étape 201 , et compare cette taille totale avec des valeurs multiples de tailles de bloc standard (par exemple, 64, 128, 256 bits) afin de déterminer un mode de chiffrement par bloc si la taille est effectivement un multiple de taille de bloc standard, ou par flot si ce n’est pas le cas. En effet, les algorithmes de chiffrement par bloc utilisent des tailles de bloc qui sont des puissances de 2, alors que dans le cas d’un mode de chiffrement par flot, la taille des données transmises peut prendre n’importe quelle valeur. A l’ étape 202 , la sonde estime une durée de traitement (t_cmp) pour traiter une certaine quantité de données. Dans certaines réalisations, la quantité de donnée pour laquelle la sonde estime un temps de traitement peut dépendre du mode de chiffrement par bloc ou par flot, de sorte que la sonde détermine un temps de traitement par bit ou par bloc. La durée de traitement estimée (chiffrement, déchiffrement ou contrôle d’intégrité) d’un bloc de données d’une taille particulière comprend le temps de traitement dédié à l’algorithme cryptographique utilisé pour chiffrer ou déchiffrer les données. Ainsi, la durée de traitement t_cmp est une signature temporelle de l’algorithme cryptographique utilisé, dans le sens où dans un contexte opérationnel identique (charge réseau, type de communication, type de machine, etc…), l’utilisation d’un algorithme cryptographique différent aurait conduit à une estimation t_cmp différente. A l’ étape 203 , le temps de traitement estimé t_cmp est comparé avec une pluralité de de valeurs de référence (t_ref1, t_ref2, ..., t_refn) obtenues en laboratoire pour différents algorithmes connus (alg1, alg2, ..., algn) dans des conditions similaires à celles de la machine cible. Une correspondance entre le temps de traitement estimé pour la machine cible et un temps de traitement de référence obtenu au préalable pour un algorithme connu permet d’identifier l’algorithme associé à l’estimation t_cmp. Dans le cas de données applicatives protégées uniquement en intégrité, n_rcv, n_snd (dont la taille du tag d’intégrité), t_rcv, t_snd permettent de déterminer l’algorithme d’intégrité mis en œuvre. Ces mesures permettent par exemple de différencier un mode d’authentification CMAC (pour Cipher-based Message Authentication Code en anglais), avec un block cipher comme l’AES, d’une fonction HMAC (pour Hash-based Message Authentication Code en anglais) basée sur une fonction de hachage comme SHA2. La durée du calcul aboutissant au tag d’intégrité dépend en effet de la taille des données claires à protéger. Ces mesures permettent aussi de différencier les algorithmes à clé publique. Néanmoins, dans le cas des algorithmes à clé publique, la quantité de données exploitables obtenues lors d’une exécution donnée du protocole de communication est moins importante. Il peut donc être nécessaire de s’appuyer sur un ensemble de données collectées lors de plusieurs exécutions du protocole de communication. En effet, lors de la mise en œuvre d’un protocole de communication sécurisée, les algorithmes asymétriques sont utilisés uniquement lors d’une phase préliminaire (i.e. : avant tout envoi de données applicatives). L’étape de comparaison permet d’obtenir un niveau de correspondance entre la signature temporelle déterminée à partir des mesures effectuées par la sonde et une signature temporelle de référence, obtenue au préalable par des mesures réalisées en laboratoire avec un algorithme connu. Lorsque la correspondance est significative, c’est-à-dire lorsque niveau de correspondance est supérieur à un seuil particulier, l’algorithme cryptographique utilisé peut être identifié. Dans certaines réalisations particulières, la comparaison comprend l’application d’un modèle prédictif à des caractéristiques du trafic à destination et/ou en provenance de la machine cible. Un tel modèle prédictif est par exemple entrainé à partir de mesures de temps et de volume de données produites dans conditions similaires à celle de la machine cible, auxquelles on associe un identifiant de l’algorithme cryptographique en œuvre. On peut envisager l’utilisation d’un algorithme de type « random forest », des modèles de régressions, réseaux de neurones artificiels, etc… Une fois entrainé, la sonde peut présenter des mesures de temps et des volumes de données pour obtenir une probabilité qu’un algorithme particulier soit utilisé par la machine cible. Dans une réalisation particulière, des techniques statistiques sont appliquées lors d’une étape 204 pour prendre en compte et/ou atténuer l’effet des variations et les perturbations liées au contexte opérationnel sur les mesures de temps. En effet, la mesure de la quantité et de la taille des données applicatives (n_rcv, n_snd) peut se faire relativement précisément. En revanche les mesures de temps associées aux données applicatives (t_rcv, t_snd) peuvent être perturbées par des phénomènes internes à la machine cible (processus concurrents) ou externes (latence du réseau). Par conséquent, des techniques statistiques sont mises en œuvre afin de déterminer correctement l’algorithme symétrique. La ou les méthodes statistiques choisies sont appliquées lors de la comparaison entre t_cmp et chacune des valeurs de référence t_ref1, t_ref2, …, t_refn. Par exemple, la sonde peut utiliser la méthode du « sequential distinguisher » proposée par Junod (« On the Optimality of Linear, Differential and Sequential Distinguishers. », Advances in Cryptology EUROCRYPT’03, Warsaw, Poland, Lectures Notes in Computer Science 2656, pp. 17-32, Springer-Verlag, 2003) pour séquencer les mesures et identifier des motifs récurrents qui correspondent à un algorithme spécifique et/ou, en cas de mesures de temps perturbées, appliquer la divergence de Kullback-Leibler pour comparer la distribution des temps mesurés avec les distributions attendues pour chaque algorithme de référence. Le procédé utilise ainsi une pluralité de mesures de temps et de volumes de données pour identifier des motifs récurrents. De tels motifs sont identifiés au préalable à partir de la même méthode statistique pour différents algorithmes cryptographiques prédéfinis exécutés sur une machine de référence pour des blocs de données de taille prédéfinie. Le principe du « sequential distinguisher » est de procéder à un échantillonnage de mesures de manière séquentielle. A chaque mesure collectée, on évalue si une décision peut être prise (ex : l'algorithme exécuté correspond à l'algorithme X ou ne correspond pas à l'algorithme Y). Si le nombre de mesures est suffisant pour prendre une décision, la collecte est stoppée (et une décision est rendue). Plus précisément, considérant une probabilité de succès (pour l'identification de l'algorithme cryptographique) fixée à une valeur donnée, le but est de minimiser le nombre de mesures nécessaires à l'identification de l'algorithme. Cela permet donc de ne collecter (en moyenne) que le nombre nécessaire de mesures afin d'identifier l'algorithme. Cette procédure séquentielle aboutit finalement à un procédé plus économique en termes de mesures à effectuer et collecter. A l’étape 205 , sur la base de la comparaison, la sonde identifie l'algorithme cryptographique le plus probable utilisé par la machine cible et lorsque l’algorithme identifié correspond à un algorithme particulier, par exemple un algorithme présentant une vulnérabilité, elle transmet une alerte indiquant que la machine cible utilise l’algorithme en question. Une telle alerte permet de constituer un inventaire dynamique des techniques cryptographiques mises en œuvre dans un système informatique ou un réseau de communication. L’alerte peut être transmise dans un message et/ou enregistrée dans une base de données. Une telle alerte comprend au moins un identifiant d’un équipement source et/ou d’un équipement destinataire du message à partir duquel a été identifié un algorithme cryptographique particulier, par exemple une adresse IP, un port UDP ou TCP, un nom de machine, etc. L’alerte peut en outre comprendre une donnée permettant d’identifier un protocole et/ou un standard, ou une application impliquée dans la transmission du message ou du flux de message ayant déclenché l’alerte. Dans un mode de réalisation particulier, le déclenchement de l’alerte provoque une reconfiguration d’un équipement de filtrage, par exemple sur détection d’un flux de données associé à une fonction cryptographique jugée vulnérable, l’alerte peut provoquer l’isolement de la machine cible et/ou de la machine à l’origine du flux de données en configurant des règles d’un pare-feu ou une table de routage. La FIG. 4 représente une architecture simplifiée d’un dispositif 400 adapté pour mettre en œuvre le procédé de détection selon un réalisation particulière. Le dispositif 400 comprend un module de traitement de données comprenant un espace de stockage 401, par exemple une mémoire (MEM), une unité de traitement 402, équipée par exemple d'un microprocesseur (PROC), et pilotée par un programme d'ordinateur (PGR) 403 dont les instructions sont configurées pour mettre en œuvre le procédé de détection tel que décrit précédemment en relation avec la FIG. 2 . A l'initialisation, les instructions de code du programme d'ordinateur 403 sont par exemple chargées dans la mémoire 401 avant d'être exécutées par le processeur de l'unité de traitement 402. Le microprocesseur de l'unité de traitement 402 met en œuvre, selon les instructions du programme d'ordinateur 403, les étapes du procédé de détection décrit ci-avant en référence à la FIG. 2 . Pour cela, outre la mémoire et le processeur, le dispositif 400 comprend des moyens de communication 404, par exemple une interface réseau Ethernet, adaptée pour capturer des paquets de données en provenance et à destination d’une machine cible particulière et déterminer des instants d’émission et/ou de réception pour les paquets de données, ainsi que des volumes de données associés, et pour calculer des délais de réponse à partir du temps écoulé entre l'envoi et la réception de paquets de données applicatifs capturés. Le dispositif 400 comprend en outre un module 405 de détermination d’une signature temporelle caractéristique d’un algorithme cryptographique mis en œuvre par la machine cible à partir d’une estimation du temps de traitement d’un ou plusieurs paquets de données. Le module 405 est par exemple mis en œuvre par des instructions de programme d’ordinateur configurées pour estimer un temps de réponse entre la réception d’un paquet de donnée chiffrée et l’émission d’une réponse à ce paquet par la machine cible et pour déterminer une signature temporelle à partir du temps de réponse estimé. Le dispositif 400 comprend aussi un module 406 de comparaison de la signature temporelle estimée par le module 405 avec des signatures temporelles calculées au préalable dans un environnement maitrisé pour une variété d’algorithmes cryptographiques. Le module 406 est par exemple mis en œuvre par des instructions de programme configurées pour déterminer un niveau de correspondance entre la signature temporelle estimée et les signatures temporelles prédéterminées, et comparer ce niveau à un seuil prédéterminé. Le dispositif 400 comprend aussi un module d’alerte 407, configuré pour transmettre une alerte lorsque le niveau de correspondance estimé par le module 406 est supérieur à un seuil. Le module d’alerte est par exemple mis en œuvre par des instructions de programme configurées pour identifier la machine cible et/ou un service émetteur et/ou destinataire d’un message à partir duquel a été déterminé la signature temporelle caractéristique. Dans une réalisation particulière, le dispositif 400 est compris dans un nœud réseau, par exemple dans une sonde, une passerelle ou un serveur, ou encore dans un hyperviseur d’un environnement virtualisé. Procédé de détection par une sonde d'un algorithme cryptographique particulier utilisé dans un système informatique, le procédé comprenant les étapes suivantes : Capturer (200) des paquets de données échangés avec une machine cible pour obtenir des mesures initiales de temps et de volume de données et calculer des délais de réponse à partir du temps écoulé entre l'envoi et la réception des paquets de données capturés, Déterminer (202) une première signature temporelle indicative d’un algorithme cryptographique utilisé pour générer les paquets capturés à partir des délais de réponse calculés et des volumes de données échangés, Détermination (203) d’un niveau de correspondance entre la première signature temporelle déterminée et au moins une deuxième signature temporelle déterminée au préalable pour un algorithme cryptographique particulier, et Transmettre (205) une alerte comprenant au moins un identifiant d’un équipement à l’origine et/ou d’un équipement destinataire dudit flux réseau lorsque le niveau de correspondance est supérieur à un seuil. Procédé selon la revendication 1 tel qu’il comprend en outre une étape d’analyse des mesures de volume pour déterminer si les données sont générées avec un algorithme symétrique selon un mode par bloc ou par flot ou avec un algorithme à clé publique, en se basant sur la conformité de la taille totale des données à des multiples de tailles de bloc standard, le temps de calcul étant estimée à l'aide du mode de génération déterminé, des mesures de temps et de quantité de données applicatives échangées. Procédé selon l’une quelconque des revendications précédentes tel qu’il comprend une étape d’application d’un algorithme de type sequential distinguisher pour identifier des motifs récurrents qui correspondent à un algorithme cryptographique spécifique pour lequel de tel motifs sont préalablement identifiés. Procédé selon l’une quelconque des revendications précédentes tel qu’il comprend une étape d’application d’une divergence de Kullback-Leibler pour comparer une distribution des temps mesurés avec des distributions déterminées au préalable pour une pluralité d’algorithmes de référence. Procédé selon l’une quelconque des revendications précédentes dans lequel la détermination d’un niveau de correspondance entre la première et la deuxième signature comprend l’application d’un modèle d’apprentissage, préalablement entrainé à partir de mesures de temps et de volume de données produites dans conditions similaires à celle de la machine cible, pour déterminer un algorithme cryptographique particulier à partir des mesures de temps et de volume de données échangées par la machine cible. Dispositif de détection d'un algorithme cryptographique particulier utilisé dans un système informatique, le dispositif comprenant un processeur couplé avec une interface de communication et une mémoire dans laquelle sont enregistrées des instructions configurées pour mettre en œuvre les étapes suivantes : Capturer des paquets de données échangés avec une machine cible pour obtenir des mesures initiales de temps et de volume de données, Calculer des délais de réponse en mesurant le temps écoulé entre l'envoi et la réception des paquets de données capturés, Déterminer une première signature temporelle indicative d’un algorithme cryptographique utilisé pour générer les paquets capturés à partir des délais de réponse calculés et des volumes de données échangés, Détermination d’un niveau de correspondance entre la première signature temporelle déterminée et au moins une deuxième signature temporelle déterminée au préalable pour un algorithme cryptographique particulier, et Transmettre une alerte comprenant au moins un identifiant d’un équipement à l’origine et/ou d’un équipement destinataire dudit flux réseau lorsque le niveau de correspondance est supérieur à un seuil. Sonde réseau comprenant un dispositif de détection selon la revendication 6. Système de communication comprenant au moins une machine cible et une sonde selon la revendication 7. Système de communication selon la revendication 8 dans lequel la sonde est placée au niveau du dernier rebond avant la machine cible ou au niveau d'un hyperviseur dans le cas d'un réseau défini par logiciel. Programme d’ordinateur comprenant des instructions configurées pour mettre en œuvre les étapes d’un procédé de détection selon l’une quelconque des revendications 1 à 5, lorsqu’elles sont exécutées par un processeur. Support de stockage lisible par un processeur dans lequel sont enregistrées des instructions de programme configurées pour mettre en œuvre les étapes d’un procédé de détection selon l’une quelconque des revendications 1 à 5.