Brevet FR3124341A1 — publié le 20221223

La présente invention est relative à un procédé et à un ensemble permettant à des terminaux utilisateurs d’échanger des données personnelles avec une plateforme de serveurs dont l’architecture garantit qu’aucun des serveurs qui la composent ne stocke la totalité des données. L’ensemble de serveurs comporte au moins un serveur d’identités, un serveur de clés et un serveur de données. Le procédé comprend les étapes de : Stockage d’informations d’identités Génération d’une paire de clés associées : clé d’identité et clé de données Recherche des informations d’identités à partir de la clé d’identité Recherche des données à partir de la clé de données Le procédé et l’ensemble selon l’invention sont particulièrement destinés à la gestion des données de santé, sans toutefois y être limités. Figure pour l’abrégé : [Fig1] Procédé et ensemble permettant à des terminaux utilisateurs d’échanger en toute confidentialité des données personnelles avec une plateforme de serveurs La présente invention est relative à un procédé et à un ensemble permettant à des terminaux utilisateurs d’échanger des données personnelles avec une plateforme de serveurs dont l’architecture garantit qu’aucun des serveurs qui la composent ne stocke la totalité des données. Ils trouvent avantageusement application pour des échanges de données personnelles sensibles, par exemple, mais non limitativement, dans le domaine de la santé (la séparation offerte par l’invention des données d’identité d’une part, et des données médicales d’autre part, garantit la confidentialité du dossier médical). Classiquement, les applications traitant des données personnelles sont hébergées dans des ressources à distance : le « Cloud » (terminologie anglo-saxonne utilisée dans ce qui suit) – dédié ou public. Ceci permet d’offrir un accès fluide et sans faille à des ressources informatiques externes (capacité de stockage, puissance de traitement, etc.). Toutefois, ces architectures présentent un défaut majeur : les informations d’identité (nom, prénom, date de naissance, lieu de naissance, etc) auxquelles sont rattachées les données « utiles » de l’application sont directement reliées entre elles au sein de la base de données hébergées. De ce fait, une fuite de données, que celle-ci soit due par exemple à un incident de cyber sécurité, présente un risque majeur immédiat pour la confidentialité des informations les utilisateurs. Alors qu’il existe des moyens pour chiffrer au repos les données stockées, le risque résiduel lié à la perte de données confidentielles reste élevé dans la mesure ou aucune mesure d’anonymisation de ces données n’est mise en œuvre. L’invention propose un procédé et un système de communication qui s’inscrit dans une stratégie d’élimination de ce risque résiduel en cloisonnant les données entre différents serveurs, chacun d’eux n’ayant accès qu’à un sous-ensemble de la donnée personnelle ne permettant pas de reconstituer le tout. Un but de l’invention est de permettre l’utilisation de ressources « Cloud » dédié ou public, en tirant partie de la richesse fonctionnelle et technologiques des services qu’ils proposent, tout en préservant la confidentialité des données personnelles stockées du point de vue de l’hébergeur de chacun des serveurs. Un autre but de l’invention est d’augmenter son niveau de sécurité global en réduisant la surface d’attaque de chaque serveur et en augmentant significativement la complexité d’une attaque de la plateforme de services implémentant le procédé. Dans ce procédé, les terminaux utilisateurs peuvent être n’importe quel type de terminal fixe ou mobile, fixe (ordinateur) ou mobile (tablette, smartphone, montre connectée, objet connecté, etc.) utilisé par un opérateur humain. Ainsi, plus particulièrement, l’invention propose un procédé de communication de données personnelles entre un système externe fournisseur d’identités, des terminaux utilisateurs, et un ensemble de serveurs, dans lequel l’ensemble de serveurs comprend au moins un serveur de gestion des identités, un serveur de gestion de clés et un serveur de gestion de données, Ce procédé comprend les étapes suivantes : 1) le fournisseur d’identités envoie au serveur d’identités une demande de stockage d’informations d’identités, 2) le serveur d’identités envoie au serveur de clés une demande de génération d’une paire de clés uniques associées : une clé d’identité et une clé de données 3) le serveur de clés renvoie au serveur d’identités la clé unique d’identité, et celui-ci l’enregistre en l’associant aux informations d’identités concernées, 4) le terminal utilisateur effectue une recherche auprès du serveur d’identités 5)le serveur d’identité renvoie au terminal utilisateur les informations d’identité trouvées et la clé unique d’identité associée 6) le terminal utilisateur envoie au serveur de clés une demande de récupération de la clé unique de données associée à la clé unique d’identité 7) le terminal utilisateur réceptionne la clé unique de données renvoyée par le serveur de clés 8) le terminal utilisateur envoie une demande au serveur de données avec la clé unique de données 9) le serveur de données renvoie au terminal utilisateur les données associées à la clé unique de données À l’étape 1), le serveur de gestion des identités peut mettre en œuvre son traitement par la création d’un nouvel enregistrement d’identité ou par la mise à jour d’un enregistrement existant. Les informations d’identités peuvent comporter l’un ou plusieurs des éléments suivants : • Nom de naissance • Nom d’usage • Prénoms • Date de naissance • Lieu de naissance • Nationalités • Sexe • Adresses • Numéros de téléphone • Des numéros d’identifiants existants provenant de référentiels d’identité tiers Il stocke ces informations d’identités dans sa base de données attachée. À l’étape 2), lorsque le serveur de clés reçoit une demande, il génère une paire de clés uniques à l’aide d’un algorithme adhoc, par exemple, mais non limitativement basé sur le marquage temporel (« timestamp ») et une fonction de hachage de type SHA-256. Il stocke ces 2 clés associées dans sa base de données attachée. Dans ce qui suit, le vocabulaire suivant sera utilisé : - H(id) désigne la clé d’identité générée par le serveur de clés, et envoyée au serveur d’identités - Δ désigne la clé de données générée par le serveur de clés, associée à H(id) À l’étape 3), le serveur d’identité reçoit H(id) de la part du serveur de clés et l’ajoute à l’enregistrement d’informations d’identités concerné. À l’issue de ces trois premières étapes, le procédé permet au serveur d’identité de ne stocker que les informations d’identité et H(id) ; il ne stocke aucune autre donnée personnelle. Similairement, le serveur de clés stocke uniquement les couples de clés { H(id), Δ } ; il ne stocke aucune donnée d’identité ni aucune autre donnée personnelle. À l’étape 4, le terminal utilisateur s’adresse au serveur d’identité pour y effectuer une recherche, éventuellement à l’aide d’un paramètre pouvant être l’une des informations partielles d’identité. À l’étape 5, le serveur d’identité effectue la recherche demandée et renvoie un ou plusieurs résultats, en fonction de ses règles d’habilitation internes. Pour chaque résultat obtenu, la réponse renvoyée au terminal par le serveur d’identité se compose : - Des informations d’identités trouvées, - De la clé H(id) associée À l’étape 6, le terminal utilisateur interroge le serveur de clés en lui demandant de lui fournir la clé Δ associée à H(id) ; si la demande est valide au regard de ses règles d’habilitations internes, le serveur de clés renvoie la clé Δ au terminal utilisateur. À l’étape 7, le terminal utilisateur réceptionne la clé Δ renvoyée par le serveur de clés. À l’étape 8, le terminal utilisateur effectue une demande auprès du serveur de données à l’aide de la clé Δ. À l’étape 9, le serveur de données renvoie au terminal utilisateur les données associées à la clé Δ. À l’issue de ces dernières étapes, le procédé permet de garantir l’isolation des données échangées. En effet, selon une caractéristique particulière le serveur d’identité ne stocke que des informations d’identités et des clés d’identités H(id). Selon une autre caractéristique particulière de l’invention, le serveur de clés ne stocke que des clés H(id) et Δ. Enfin, selon encore une autre caractéristique, le serveur de données ne stocke que des données rattachées uniquement à des clés Δ et non à des informations d’identité. Avantageusement, dans l’application du procédé à un hébergement « Cloud » dans lequel le serveur d’identités, le serveur de clés et le serveur de données sont hébergés par trois fournisseurs de services distincts, aucun de ces fournisseurs ne peut avoir accès à une donnée personnelle reliée à une identité. Dans l’application du procédé au domaine de la santé, les informations d’identité sont composées des traits d’identité d’une personne physique, définis comme l’ensemble des caractéristiques qui permettent de reconnaître une personne physique et d'établir son individualité au regard de la loi (date et lieu de naissance, nom, prénom, filiation, etc.). Ces éléments sont attestés par des documents officiels d’état civil. L’identité numérique correspond à la représentation d’un individu physique dans un système d’information. Lorsque le fournisseur d’identité tiers est un établissement de santé (ou un groupement d’établissements de santé), il transmet en outre au moins un identifiant numérique issu de son référentiel, notamment par exemple, mais non limitativement, l’IPP (Identifiant Permanent du Patient) ou INS (Identité Nationale de Santé). De préférence, le procédé comporte en outre au moins une étape d’authentification sécurisée de l’utilisateur sur son terminal auprès d’un référentiel tiers d’authentification. Dans ce cas, de préférence, le procédé comprend également la validation auprès du système d’authentification externe, par au moins l’un des serveurs, des demandes qu’il reçoit. L’invention porte également sur un produit programme d’ordinateur téléchargeable depuis un réseau de communication, et/ou stocké sur un support lisible par ordinateur, tablette ou smartphone, et/ou exécutable par un microprocesseur, et caractérisé par en ce qu’il comprend des instructions de code de programme pour la mise en œuvre du procédé de l’invention. La présente invention trouvera avantageusement application industrielle en recourant à trois hébergeurs « Cloud » distincts pour chacun des trois serveurs de l’ensemble, objet de l’invention : ainsi la protection des données conférée par la stricte séparation rendue possible par le procédé sera maximale. La présente invention n'est nullement limitée aux modes de réalisation décrits et représentés mais l'homme du métier saura y apporter toute variante conforme à son esprit. La figure illustre l’architecture générale d’un système de communication conforme à un mode de réalisation possible. La figure est un diagramme de séquence adapté à l’implémentation des aspects de la présente invention. La figure illustre un exemple d’enregistrement de données dans le serveur d’identités avant et après l’association de la clé d’identité H(id). La figure illustre un exemple d’enregistrement de données dans le serveur de clés, associant les clés H(id) et Δ. La figure illustre un exemple d’enregistrement de données dans le serveur de données associées à la clé de données Procédé de communication de données personnelles entre un système fournisseur d'identités, des terminaux utilisateurs, et un ensemble de serveurs, dans lequel : a) l'ensemble de serveurs comprend au moins un serveur de gestion des identités, un serveur de gestion de clés et un serveur de gestion de données, b) les terminaux utilisateurs peuvent être des ordinateurs, tablettes ou smartphones, ou tout autre type de terminal fixe ou mobile, Caractérisé en ce qu’il comporte les étapes suivantes : le fournisseur d'identités envoie au serveur d'identités une demande de stockage d'informations d'identités, le serveur d'identités envoie au serveur de clés une demande de génération d'une paire de clés uniques associées : une clé d'identité et une clé de données, le serveur d'identités enregistre la clé unique d'identité en l'associant aux informations d'identités concernées, le terminal utilisateur effectue une recherche auprès du serveur d'identités le serveur d'identités renvoie au terminal utilisateur les informations d'identité trouvées et la clé unique d'identité associée le terminal utilisateur envoie au serveur de clés une demande de récupération de la clé unique de données associée et la clé unique d'identité le terminal utilisateur réceptionne la clés unique de données renvoyée par le serveur de clés le terminal utilisateur envoie une demande au serveur de données avec la clé unique de données le serveur de données renvoie au terminal utilisateur les données associées et la clé unique de données Procédé selon la revendication 1, caractérisé en ce que ledit serveur de données gère des données de santé. Procédé selon l’une quelconque des revendications précédentes, caractérisé en ce que les informations gérées par le serveur d’identité comportent au moins l’un des éléments suivants Nom de naissance Nom d’usage Prénoms Date de naissance Lieu de naissance Nationalités Sexe Adresses Numéros de téléphone Procédé selon l’une quelconque des revendications précédentes, caractérisé en ce que les informations d’identité stockées comprennent le numéro d’identifiant national santé (INS). Procédé selon l’une quelconque des revendications précédentes, caractérisé en ce qu’il comporte en outre une étape d’authentification de l’utilisateur. Procédé selon l’une quelconque des revendications précédentes, caractérisé en ce qu’il comprend la validation auprès d’un système d’authentification externe, par au moins l’un des serveurs, des demandes qu’il reçoit. Procédé selon l’une quelconque des revendications précédentes, caractérisé en ce que au moins l’un desdits serveurs est accessible par un réseau de type « Cloud Computing ». Ensemble comprenant des terminaux utilisateurs fixes ou mobiles, ainsi qu’au moins un serveur de gestion d’identités, un serveur de gestion de clés et un serveur de données, ensemble dans lequel les terminaux utilisateurs communiquent avec les serveurs comme suit : Les terminaux utilisateurs communiquent avec le serveur de gestion d’identité en échangeant uniquement des informations d’identité et des clés d’identité ; Les terminaux utilisateurs communiquent avec le serveur de gestion de clés en échangeant uniquement des clés d’identité et des clés de données Les terminaux utilisateurs communiquent avec le serveur de données en échangeant tous type des données à l’exception d’informations d’identité et de clés d’identités. Produit programme d’ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur, tablette ou smartphone, et/ou exécutable par un microprocesseur, caractérisé en ce qu’il comprend des instructions de code de programme pour la mise en œuvre du procédé selon l’une quelconque des revendications précédentes.