Gestion de droits d’accès à des données numériques avec possible délégation des droits Management of access rights to digital data with possible delegation of rights
DOMAINE DE L'INVENTION FIELD OF THE INVENTION
La présente invention s’inscrit dans le domaine des systèmes informatiques distribués pour la transmission et le partage de données numériques. The present invention falls within the field of distributed computer systems for the transmission and sharing of digital data.
L’invention se rapporte plus particulièrement à un procédé d’échange de données entre un dispositif informatique dit « délégant » et un dispositif informatique dit « délégué », dont les rôles respectifs dans le partage de données ressortiront de la description ci-après, ainsi qu’à un procédé d’échange de données entre un dispositif délégué et une base de gestion d’accès. L’invention concerne également un dispositif informatique comprenant une unité de traitement permettant de mettre en oeuvre l’échange de données, un système de partage d’ensembles de données chiffrés comprenant un tel dispositif, un produit programme d’ordinateur pour la mise en oeuvre de l’échange de données, et des moyens de stockage lisibles par ordinateur pour la mise en oeuvre de l’échange de données. The invention relates more particularly to a method for exchanging data between a so-called "delegating" computer device and a so-called "delegate" computer device, the respective roles of which in the sharing of data will emerge from the description below, as well as than a process for exchanging data between a delegated device and an access management database. The invention also relates to a computer device comprising a processing unit making it possible to implement the exchange of data, a system for sharing sets of encrypted data comprising such a device, a computer program product for the implementation of the data exchange, and computer-readable storage means for carrying out the data exchange.
ETAT DE LA TECHNIQUE STATE OF THE ART
Il est bien connu de l’état de la technique de contrôler l’accès à un fichier informatique contenant des données sensibles, par exemple à l’aide de techniques cryptographiques. On connaît notamment des chiffrements symétriques ou asymétriques où l’accès au fichier nécessite la connaissance d’une clé de déchiffrement. It is well known in the state of the art to control access to a computer file containing sensitive data, for example using cryptographic techniques. In particular, symmetric or asymmetric ciphers are known where access to the file requires knowledge of a decryption key.
Dans une solution très simple de régulation de l’accès à un fichier informatique pour des utilisateurs présents sur un réseau (par exemple sur Internet), le fichier informatique est chiffré et accessible publiquement. Grâce au chiffrement, bien que le fichier soit accessible sans contrôle, l’accès aux informations contenues dans le fichier est régulé. Le propriétaire du fichier informatique génère une clé de déchiffrement et doit échanger directement sur le réseau avec chaque utilisateur autorisé à accéder au fichier pour lui transmettre la clé. La publication Design of PriServ, a Privacy Service for DHTs, Jawad, Serrano-Alvarado, Valduriez (2008), Proceedings of the 2008 International Workshop on Privacy and Anonymity in the Information Society, PAIS ’08, Association for Computing Machinery, pp.21 -25 décrit
par exemple une solution de gestion des droits d’accès reposant sur des échanges de clés. In a very simple solution for regulating access to a computer file for users present on a network (for example on the Internet), the computer file is encrypted and publicly accessible. Thanks to encryption, although the file is accessible without control, access to the information contained in the file is regulated. The owner of the computer file generates a decryption key and must communicate directly on the network with each user authorized to access the file to transmit the key to him. Design of PriServ, a Privacy Service for DHTs, Jawad, Serrano-Alvarado, Valduriez (2008), Proceedings of the 2008 International Workshop on Privacy and Anonymity in the Information Society, PAIS '08, Association for Computing Machinery, pp.21 -25 described for example an access rights management solution based on key exchanges.
Un premier inconvénient de cette approche est qu’une interception des échanges par un attaquant tiers, ou une usurpation de l’identité de l’utilisateur autorisé par un attaquant tiers, remettraient toutes deux en cause la sécurité du chiffrement du fichier. Un deuxième inconvénient important est la nécessité d’une connexion simultanée du propriétaire du fichier et de l’utilisateur devant recevoir les droits d’accès, à chaque nouveau partage. A first drawback of this approach is that an interception of the exchanges by a third-party attacker, or a usurpation of the identity of the authorized user by a third-party attacker, would both call into question the security of the encryption of the file. A second major drawback is the need for a simultaneous connection of the file owner and the user who must receive the access rights, for each new sharing.
Pour pallier ces inconvénients, certaines bases de données distribuées de l’état de l’art prennent en charge le problème de gestion des droits d’accès à l’aide de solutions de type « blockchain », c’est-à-dire avec un registre distribué où l’octroi de droits d’accès dépend d’un consensus entre les entités possédant les droits, sans autorité centrale unique de contrôle. Dans une telle solution, chaque maillon de la blockchain contient les informations nécessaires pour garantir que les fichiers échangés soient intègres. To overcome these drawbacks, some state-of-the-art distributed databases handle the problem of managing access rights using “blockchain” type solutions, i.e. with a distributed registry where the granting of access rights depends on a consensus between the entities possessing the rights, without a single central authority of control. In such a solution, each link in the blockchain contains the information necessary to guarantee that the files exchanged are intact.
A cet égard, on peut citer par exemple la publication Blockchain- Based, Decentralized Access Control for IPFS, Steichen et al. (2018), 2018 IEEE International Conférence on Internet of Things (iThings), pp.1499-1596. Dans cette publication, les utilisateurs de la blockchain accèdent à une liste de contrôle d’accès dite ACL partagée entre eux via la blockchain, avant d’autoriser éventuellement un nouvel utilisateur à accéder au fichier. Il est proposé de partager directement le fichier au nouvel utilisateur autorisé, dès lors que le consensus est atteint entre les utilisateurs de la blockchain. Le fichier n’est pas chiffré. In this regard, we can cite for example the publication Blockchain-Based, Decentralized Access Control for IPFS, Steichen et al. (2018), 2018 IEEE International Conference on Internet of Things (iThings), pp.1499-1596. In this publication, blockchain users access a so-called access control list ACL shared between them via the blockchain, before possibly authorizing a new user to access the file. It is proposed to share the file directly to the new authorized user, as soon as the consensus is reached between the users of the blockchain. The file is not encrypted.
Cette solution permet une distribution asynchrone des droits d’accès, sans que les utilisateurs ne soient connectés en même temps. Toutefois, un inconvénient est que la sécurité du contrôle d’accès repose entièrement sur la confiance accordée aux utilisateurs de la blockchain, l’accès au contenu ne nécessitant pas la connaissance d’une clé. This solution allows asynchronous distribution of access rights, without users being connected at the same time. However, a downside is that access control security relies entirely on trust in blockchain users, with access to content not requiring knowledge of a key.
La publication FileTribe : Blockchain- Based Secure File Sharing on IPFS, Sari, Sipos (2019), European Wireless 2019 ; 25th European Wireless Conférence, pp.1 -6, propose de conserver les avantages d’un chiffrement cryptographique des fichiers tout en utilisant un consensus entre les utilisateurs d’une blockchain. The FileTribe publication: Blockchain-Based Secure File Sharing on IPFS, Sari, Sipos (2019), European Wireless 2019; 25 th European Wireless Conference, pp.1 -6, proposes to retain the advantages of cryptographic encryption of files while using a consensus among users of a blockchain.
Dans cette solution, les fichiers partagés sont chiffrés à l’aide d’une clé de déchiffrement symétrique. La clé de déchiffrement symétrique est elle-
même chiffrée, et peut être déchiffrée par les utilisateurs de la blockchain. Pour fournir des droits d’accès à un nouvel utilisateur, un nouveau chiffrement de la clé de déchiffrement symétrique est réalisé de façon collective. Un avantage est qu’un utilisateur tiers obtenant le fichier sans passer par la blockchain ne peut pas accéder au contenu ; toutefois, une telle solution est très lourde en temps de calcul et en espace de stockage nécessaire, puisque la clé doit être chiffrée à nouveau lors de chaque partage à un nouvel utilisateur autorisé. Compte-tenu de ces difficultés, il est peu pratique de déployer la solution susmentionnée à grande échelle. In this solution, shared files are encrypted using a symmetric decryption key. The symmetric decryption key is itself even encrypted, and can be decrypted by blockchain users. To provide access rights to a new user, a new encryption of the symmetrical decryption key is carried out collectively. One advantage is that a third-party user obtaining the file without going through the blockchain cannot access the content; however, such a solution is very heavy in computation time and in required storage space, since the key must be encrypted again each time it is shared with a new authorized user. Given these difficulties, it is impractical to deploy the aforementioned solution on a large scale.
De plus, dans la solution susmentionnée, la liste de contrôle d’accès ACL est publique et accessible « en clair » sans contrôle, si bien que n’importe quel utilisateur tiers peut connaître l’identité des utilisateurs autorisés à accéder au fichier par une simple consultation de la liste de contrôle d’accès ACL. Moreover, in the above solution, the access control list ACL is public and accessible "in the clear" without control, so that any third party user can know the identity of the users authorized to access the file by an simple consultation of the access control list ACL.
Un autre enjeu non résolu de manière satisfaisante est l’éventuelle révocation de droits d’accès ; les solutions qui s’appuient sur une blockchain ne permettent pas de supprimer des droits d’accès de manière simple. En général, pour empêcher que des utilisateurs précédemment autorisés puissent continuer d’accéder au contenu du fichier, il est nécessaire de générer un nouveau fichier ou une nouvelle clé de déchiffrement du fichier. Another issue not satisfactorily resolved is the possible revocation of access rights; solutions based on a blockchain do not make it possible to remove access rights in a simple way. In general, to prevent previously authorized users from continuing to access the contents of the file, it is necessary to generate a new file or a new decryption key for the file.
D’autres solutions de gestion de droits d’accès à des fichiers ont été proposées, telles qu’une solution de chiffrement de fichier par attributs ou encore une solution de « proxy re-encryption », mais ces solutions sont très complexes au niveau calculatoire. La puissance de calcul et la consommation d’énergie de ces solutions de gestion de droits d’accès les rendent peu pratiques pour un déploiement à grande échelle. Other file access rights management solutions have been proposed, such as a file encryption solution by attributes or even a "proxy re-encryption" solution, but these solutions are very complex at the computational level. . The computing power and energy consumption of these access rights management solutions make them impractical for large-scale deployment.
Il ressort de ce qui précède la gestion distribuée de droits d’accès à l’aide d’une blockchain via les solutions connues de l’état de l’art présente des avantages, mais est peu utilisable en pratique. It emerges from the above that the distributed management of access rights using a blockchain via known state-of-the-art solutions has advantages, but is not very usable in practice.
Un autre inconvénient de l’ensemble des solutions mentionnées ci-avant est de ne pas permettre, pour un utilisateur préalablement autorisé à accéder au fichier, que ledit utilisateur délègue temporairement ses droits d’accès à une autre entité présente sur le réseau - sans que cette dernière entité ne puisse elle-même déléguer les droits d’accès. Another disadvantage of all the solutions mentioned above is that a user previously authorized to access the file cannot be allowed to temporarily delegate his access rights to another entity present on the network - without this latter entity cannot itself delegate the access rights.
Une telle répartition des droits serait par exemple pertinente lorsque des utilisateurs connectés sur un réseau de télécommunications et autorisés à accéder à un fichier donné souhaitent solliciter un serveur de calcul disposant d’une puissance de calcul
très importante, ce serveur de calcul étant partagé sur ledit réseau. Il conviendrait alors de permettre au serveur de calcul d’accéder de manière temporaire au fichier, en assurant que cet accès ne permette pas au serveur de calcul de fournir des droits d’accès permanents à d’autres entités. Such a distribution of rights would, for example, be relevant when users connected to a telecommunications network and authorized to access a given file wish to request a calculation server with computing power very important, this calculation server being shared on said network. It would then be appropriate to allow the calculation server to temporarily access the file, ensuring that this access does not allow the calculation server to provide permanent access rights to other entities.
DESCRIPTION GENERALE DE L'INVENTION GENERAL DESCRIPTION OF THE INVENTION
Au regard de ce qui précède, un objectif de l’invention est de fournir une solution de partage d’ensembles de données chiffrés entre plusieurs dispositifs informatiques distants dans laquelle il est aisé de fournir des droits d’accès temporaires à un nouveau dispositif informatique pour un ensemble de données protégé donné - par exemple à un serveur de calcul sollicité de manière ponctuelle. La solution recherchée doit par exemple permettre le partage ciblé de clés de chiffrement symétrique ou asymétrique associées à des ensembles de données protégés. In view of the foregoing, one objective of the invention is to provide a solution for sharing encrypted data sets between several remote computing devices in which it is easy to provide temporary access rights to a new computing device for a given protected data set - for example to a computing server requested from time to time. The solution sought must, for example, allow the targeted sharing of symmetric or asymmetric encryption keys associated with protected data sets.
Un autre enjeu important est de limiter l’espace de stockage nécessaire sur les mémoires respectives des dispositifs informatiques entrant en jeu dans le procédé de partage des ensembles de données chiffrés, notamment vis-à-vis des solutions de l’état de la technique de type « blockchain » qui permettent uniquement d’ajouter des entrées de registre et dans lesquelles l’espace de stockage nécessaire croît au fil du temps. On cherche également à limiter les calculs nécessaires pour alléger et sécuriser les protocoles de partage. Another important issue is to limit the storage space required on the respective memories of the computer devices involved in the method of sharing sets of encrypted data, in particular vis-à-vis the solutions of the state of the art of "blockchain" type which only allow register entries to be added and in which the necessary storage space grows over time. We also seek to limit the calculations necessary to lighten and secure the sharing protocols.
On recherche également une solution de partage de données qui ne nécessite pas que tous les dispositifs informatiques disposant des droits d’accès soient connectés et disponibles en simultané pour générer les nouveaux droits d’accès temporaires. We are also looking for a data sharing solution that does not require that all the IT devices with access rights are connected and available simultaneously to generate the new temporary access rights.
Enfin, un objectif secondaire de l’invention est de prendre en charge la révocation éventuelle de droits d’accès ; le propriétaire des données est alors en mesure de révoquer des droits d’accès précédemment accordés pour les données, en rendant ces accès obsolètes. Finally, a secondary objective of the invention is to take charge of the possible revocation of access rights; the data owner is then able to revoke previously granted access rights to the data, rendering those accesses obsolete.
Pour répondre aux besoins mentionnés ci-avant, un premier aspect de l’invention concerne un procédé d’échange de données entre un dispositif délégant et un dispositif délégué pour un accès à un ensemble de données chiffré stocké en mémoire, une entrée d’accès propre au dispositif délégant et associée audit ensemble de données étant stockée dans une liste d’accès publique d’une base de gestion d’accès,
une clé de déchiffrement dudit ensemble de données étant calculable par le dispositif délégant à l’aide de l’entrée d’accès, le procédé comprenant les étapes suivantes mises en oeuvre par une unité de traitement du dispositif délégant : To meet the needs mentioned above, a first aspect of the invention relates to a method for exchanging data between a delegating device and a delegate device for access to an encrypted data set stored in memory, an access entry specific to the delegating device and associated with said set of data being stored in a public access list of an access management database, a decryption key of said set of data being calculable by the delegating device using the access input, the method comprising the following steps implemented by a processing unit of the delegating device:
- réception d’une valeur d’identification propre au dispositif délégué et associée audit ensemble de données, - receipt of an identification value specific to the delegated device and associated with said data set,
- génération d’une valeur de délégation en fonction de la valeur d’identification propre au dispositif délégué, de sorte que le dispositif délégué peut ultérieurement recevoir la valeur de délégation, obtenir l’entrée d’accès propre au dispositif délégant à l’aide de la valeur de délégation et calculer la clé de déchiffrement dudit ensemble de données. - generating a delegation value based on the delegated device's own identification value, so that the delegated device can later receive the delegation value, obtain the delegating device's own access entry using of the delegation value and calculate the decryption key of said data set.
De façon optionnelle et non limitative, le procédé d’échange de données selon ce premier aspect de l’invention peut présenter en outre les caractéristiques techniques suivantes, prises seules ou dans l’une quelconque des combinaisons possibles : Optionally and without limitation, the data exchange method according to this first aspect of the invention may also have the following technical characteristics, taken alone or in any of the possible combinations:
- la valeur d’identification propre au dispositif délégué dépend d’une clé privée du délégué, ladite valeur d’identification étant construite de sorte qu’un tiers ne peut pas obtenir ladite valeur d’identification du délégué sans connaître la clé privée du délégué. - the identification value specific to the delegate device depends on a private key of the delegate, said identification value being constructed so that a third party cannot obtain said identification value of the delegate without knowing the private key of the delegate .
- la valeur d’identification propre au dispositif délégué, notée ID(U3, f1 ), est obtenue comme suit : ID(U3, f1) = U3 + sha256(concatenation (U3, f1)) où f1 est ledit ensemble de données chiffré, et où U3 est une clé privée du dispositif délégué. - the identification value specific to the delegated device, denoted ID(U3, f1 ), is obtained as follows: ID(U3, f1) = U3 + sha256(concatenation (U3, f1)) where f1 is said encrypted data set , and where U3 is a private key of the delegated device.
- la valeur de délégation est calculée par l’unité de traitement en fonction de ladite valeur d’identification propre au dispositif délégué, et en fonction d’une valeur d’identification propre au dispositif délégant et associée audit ensemble de données.- the delegation value is calculated by the processing unit according to said identification value specific to the delegated device, and according to an identification value specific to the delegating device and associated with said data set.
- la valeur d’identification propre au dispositif délégant dépend d’une clé privée du délégant, ladite valeur d’identification propre au délégant étant construite de sorte qu’un tiers ne peut pas obtenir ladite valeur d’identification propre au délégant sans connaître la clé privée du délégant. - the identification value specific to the delegating device depends on a private key of the delegator, said identification value specific to the delegator being constructed so that a third party cannot obtain said identification value specific to the delegator without knowing the private key of the delegator.
- la valeur de délégation est égale à une différence entre la valeur d’identification propre au dispositif délégant associée audit ensemble de données et la valeur d’identification propre au dispositif délégué associée audit ensemble de données.
- la valeur de délégation est égale à une paire. the delegation value is equal to a difference between the identification value specific to the delegating device associated with said set of data and the identification value specific to the delegated device associated with said set of data. - the delegation value is equal to a pair.
- un premier élément de ladite paire dépend d’une différence entre la valeur d’identification propre au dispositif délégant associée audit ensemble de données et la valeur d’identification propre au dispositif délégué associée audit ensemble de données. - a first element of said pair depends on a difference between the identification value specific to the delegating device associated with said data set and the identification value specific to the delegated device associated with said data set.
- un deuxième élément de ladite paire est égal à une valeur d’identification anonyme pour le délégué propre au dispositif délégant et associée audit ensemble de données.- a second element of said pair is equal to an anonymous identification value for the delegate specific to the delegating device and associated with said data set.
- le premier élément de ladite paire dépend d’un nombre aléatoire obtenu par le dispositif délégué. - the first element of said pair depends on a random number obtained by the delegated device.
- il comprend la transmission au dispositif délégué d’un message signé contenant la valeur de délégation, par exemple un message signé par signature DSA. - it includes the transmission to the delegated device of a signed message containing the delegation value, for example a message signed by DSA signature.
- la clé de déchiffrement dudit ensemble de données comprend une clé de déchiffrement symétrique, par exemple une clé de déchiffrement obtenue par un algorithme AES ou par un algorithme 3DES. - the decryption key of said data set comprises a symmetrical decryption key, for example a decryption key obtained by an AES algorithm or by a 3DES algorithm.
- une valeur de la clé de déchiffrement dudit ensemble de données chiffré dépend d’une fonction Aut vérifiant l’égalité suivante : Aut(ID(U2, f1 ), ACL(U2, f1 ), 0) = Aut(ID(U3, f1 ), ACL(U2, f1 ), Del) où f1 est ledit ensemble de données chiffré, où U2 est une clé privée dudit dispositif délégant, où U3 est une clé privée dudit dispositif délégué, où Del est ladite valeur de délégation, où ID(U2, f1 ) est ladite valeur d’identification propre au dispositif délégant, où ID(U3, f1 ) est ladite valeur d’identification propre au dispositif délégué, et où ACL(U2, fl ) est ladite entrée d’accès propre au dispositif délégant. - a value of the decryption key of said encrypted data set depends on a function Aut verifying the following equality: Aut(ID(U2, f1 ), ACL(U2, f1 ), 0) = Aut(ID(U3, f1 ), ACL(U2, f1 ), Del) where f1 is said encrypted data set, where U2 is a private key of said delegating device, where U3 is a private key of said delegate device, where Del is said delegating value, where ID(U2, f1 ) is said delegating device specific identification value, where ID(U3, f1 ) is said delegated device specific identification value, and where ACL(U2, fl ) is said specific access entry to the delegating device.
- l’entrée d’accès propre au dispositif délégant et associée audit ensemble de données a été préalablement obtenue par un serveur propriétaire en fonction de la clé de déchiffrement dudit ensemble de données, et a été stockée dans la base de gestion d’accès. - the access entry specific to the delegating device and associated with said data set was previously obtained by a proprietary server according to the decryption key of said data set, and was stored in the access management database.
- l’obtention de l’entrée d’accès propre au dispositif délégant et associée audit ensemble de données comprend des sous-étapes, mises en oeuvre par le serveur propriétaire, de : obtention d’une valeur d’identification propre au dispositif délégant et associée audit ensemble de données, réception, depuis la base de gestion d’accès, d’une entrée d’accès propre au serveur propriétaire et associée audit ensemble de données,
calcul de la clé de déchiffrement, calcul de l’entrée d’accès propre au dispositif délégant associée audit ensemble de données, en fonction de ladite entrée d’accès propre au serveur propriétaire et en fonction de ladite clé de déchiffrement. - obtaining the access entry specific to the delegating device and associated with said set of data comprises sub-steps, implemented by the owner server, of: obtaining an identification value specific to the delegating device and associated with said set of data, reception, from the access management database, of an access entry specific to the owner server and associated with said set of data, calculation of the decryption key, calculation of the access entry specific to the delegating device associated with said data set, according to said access entry specific to the owner server and according to said decryption key.
- la liste d’accès publique est distribuée sur une infrastructure en nuage. - the public access list is distributed over a cloud infrastructure.
- la liste d’accès publique est implémentée via une blockchain. - the public access list is implemented via a blockchain.
- la liste d’accès publique est distribuée sur un réseau pair à pair intégrant le dispositif délégant et le dispositif délégué. - the public access list is distributed on a peer-to-peer network integrating the delegating device and the delegated device.
Selon un deuxième aspect, l’invention concerne un procédé d’échange de données entre un dispositif délégué et une base de gestion d’accès pour un accès à un ensemble de données chiffré stocké en mémoire, une entrée d’accès propre à un dispositif délégant et associée audit ensemble de données étant stockée dans la base de gestion d’accès, ladite entrée d’accès permettant au dispositif délégant d’obtenir une clé de déchiffrement dudit ensemble de données, le dispositif délégué ayant préalablement reçu une valeur de délégation depuis le dispositif délégant, à l’issue d’un procédé d’échange de données entre le délégué et un délégant tel que défini ci-avant, le procédé comprenant les étapes suivantes mises en oeuvre par une unité de traitement du dispositif délégué : According to a second aspect, the invention relates to a method for exchanging data between a delegated device and an access management base for access to a set of encrypted data stored in memory, an access entry specific to a device delegating party and associated with said data set being stored in the access management database, said access entry allowing the delegating device to obtain a decryption key of said data set, the delegate device having previously received a delegation value from the delegating device, at the end of a data exchange process between the delegate and a delegator as defined above, the process comprising the following steps implemented by a processing unit of the delegated device:
- obtention de l’entrée d’accès propre au dispositif délégant et associée audit ensemble de données, - obtaining the access entry specific to the delegating device and associated with said data set,
- calcul de la clé de déchiffrement dudit ensemble de données, en fonction des trois données suivantes : une valeur d’identification propre au dispositif délégué et associée audit ensemble de données, l’entrée d’accès propre au dispositif délégant préalablement obtenue, et la valeur de délégation préalablement reçue depuis le dispositif délégant. - calculation of the decryption key of said data set, according to the following three data: an identification value specific to the delegated device and associated with said data set, the access entry specific to the delegating device previously obtained, and the delegation value previously received from the delegating device.
De façon optionnelle et non limitative, le procédé d’échange de données selon ce deuxième aspect de l’invention peut présenter en outre les caractéristiques techniques suivantes, prises seules ou dans l’une quelconque des combinaisons possibles : Optionally and without limitation, the data exchange method according to this second aspect of the invention may also have the following technical characteristics, taken alone or in any of the possible combinations:
- l’obtention de l’entrée d’accès propre au dispositif délégant et associée audit ensemble de données comprend :
une transmission d’une donnée associée au dispositif délégant à la base de gestion d’accès, une réception, depuis la base de gestion d’accès, de ladite entrée d’accès propre au dispositif délégant. - obtaining the access entry specific to the delegating device and associated with said data set includes: a transmission of data associated with the delegating device to the access management base, a reception, from the access management base, of said access entry specific to the delegating device.
- la donnée transmise à la base de gestion d’accès pour obtenir l’entrée d’accès comprend un identifiant du dispositif délégant. - the data transmitted to the access management database to obtain the access entry includes an identifier of the delegating device.
- la donnée transmise à la base de gestion d’accès pour obtenir l’entrée d’accès comprend une valeur d’identification anonymisée, propre au délégant et associée audit ensemble de données. - the data transmitted to the access management database to obtain the access entry includes an anonymized identification value, specific to the delegator and associated with said data set.
- le procédé comprend des étapes ultérieures, mises en oeuvre par l’unité de traitement du dispositif délégué, de : obtention de l’ensemble de données chiffré auprès d’une mémoire, et déchiffrement de l’ensemble de données chiffré, à l’aide de la clé préalablement calculée, de préférence par déchiffrement symétrique. - the method comprises subsequent steps, implemented by the processing unit of the delegated device, of: obtaining the encrypted data set from a memory, and decrypting the encrypted data set, at the using the previously calculated key, preferably by symmetric decryption.
L’invention se rapporte en outre, selon un troisième aspect de l’invention, à un dispositif informatique délégant comprenant une unité de traitement configurée pour mettre en oeuvre un procédé d’échange de données tel que défini ci-avant avec un dispositif délégué. The invention further relates, according to a third aspect of the invention, to a delegating computing device comprising a processing unit configured to implement a data exchange method as defined above with a delegated device.
L’invention concerne également un système de partage d’ensembles de données chiffrés comprenant un tel dispositif informatique et comprenant en outre : un serveur d’accès comprenant une base de gestion d’accès dans laquelle est enregistrée une liste d’accès publique comportant au moins une entrée d’accès, et au moins un dispositif délégué comprenant une unité de traitement configurée pour mettre en oeuvre un procédé d’échange de données tel que défini ci-avant entre le dispositif délégué et une base de gestion d’accès. The invention also relates to a system for sharing encrypted data sets comprising such a computer device and further comprising: an access server comprising an access management base in which is recorded a public access list comprising at at least one access entry, and at least one delegate device comprising a processing unit configured to implement a data exchange method as defined above between the delegate device and an access management base.
Le système de partage d’ensemble de données chiffrés peut présenter, de façon optionnelle et non limitative, les caractéristiques techniques suivantes, prises seules ou dans l’une quelconque des combinaisons possibles : The encrypted data set sharing system may have, optionally and without limitation, the following technical characteristics, taken alone or in any of the possible combinations:
- le dispositif délégant comprend un serveur utilisateur. - the delegating device comprises a user server.
- le dispositif délégué comprend un serveur de calcul.
- le système de partage d’ensemble de données chiffrés comprend en outre un serveur propriétaire de donnée configuré pour calculer des entrées d’accès propres à des dispositifs délégants associées à au moins un ensemble de données chiffré, et configuré pour partager lesdites entrées d’accès avec le serveur d’accès. - the delegated device comprises a calculation server. - the encrypted data set sharing system further comprises a data owner server configured to calculate access entries specific to delegating devices associated with at least one encrypted data set, and configured to share said access with the access server.
Un quatrième aspect de l’invention se rapporte à un produit programme d’ordinateur comprenant des instructions de code qui, lorsque lesdites instructions de code sont exécutées par une unité de traitement, conduisent ladite unité de traitement à mettre en oeuvre un procédé d’échange de données tel que défini ci-avant. A fourth aspect of the invention relates to a computer program product comprising code instructions which, when said code instructions are executed by a processing unit, lead said processing unit to implement an exchange method data as defined above.
Un cinquième aspect de l’invention se rapporte à des moyens de stockage lisibles par ordinateur sur lesquels sont enregistrées des instructions de code qui, lorsque lesdites instructions de code sont exécutées par une unité de traitement, conduisent ladite unité de traitement à mettre en oeuvre un procédé d’échange de données tel que défini ci-avant. A fifth aspect of the invention relates to computer-readable storage means on which are recorded code instructions which, when said code instructions are executed by a processing unit, cause said processing unit to implement a data exchange process as defined above.
DESCRIPTION GENERALE DES FIGURES GENERAL DESCRIPTION OF FIGURES
D’autres caractéristiques, buts et avantages de l’invention ressortiront de la description qui suit, qui est donnée à titre illustratif et non limitatif, et qui doit être lue en regard des figures annexées parmi lesquelles : Other characteristics, aims and advantages of the invention will emerge from the description which follows, which is given by way of illustration and not limitation, and which must be read in conjunction with the appended figures, among which:
La Figure 1 est un schéma représentatif d’un ensemble de partage de données selon un exemple de réalisation, comportant notamment une pluralité de dispositifs délégants, une pluralité de dispositifs délégués et une base de gestion d’accès. Figure 1 is a diagram representing a set of data sharing according to an example embodiment, comprising in particular a plurality of delegating devices, a plurality of delegated devices and an access management base.
La Figure 2 représente les étapes d’un exemple de procédé de délégation de droits d’accès à un fichier chiffré, d’un dispositif délégant vers un dispositif délégué. Figure 2 shows the steps of an example process for delegating access rights to an encrypted file, from a delegating device to a delegate device.
La Figure 3 représente les étapes d’un exemple de procédé d’accès à un fichier chiffré par un dispositif délégué ayant préalablement reçu une délégation, de préférence une délégation temporaire. Figure 3 represents the steps of an example of a method for accessing an encrypted file by a delegated device having previously received a delegation, preferably a temporary delegation.
La Figure 4 représente les étapes d’un exemple de procédé de chiffrement et d’enregistrement d’un fichier par un dispositif propriétaire, permettant une éventuelle délégation ultérieure de droits d’accès au fichier chiffré enregistré. Figure 4 represents the steps of an example of a process for encrypting and saving a file by a proprietary device, allowing a possible subsequent delegation of access rights to the saved encrypted file.
La Figure 5 représente les étapes d’un exemple de procédé de génération de droits d’accès, de préférence permanents, d’un dispositif propriétaire vers un dispositif délégant.
La Figure 6 représente les étapes d’un exemple de procédé d’accès à un fichier chiffré par un dispositif délégant pour lequel des droits d’accès, de préférence permanents, ont été préalablement générés par un dispositif propriétaire. FIG. 5 represents the steps of an example of a method for generating access rights, preferably permanent, from an owner device to a delegating device. FIG. 6 represents the steps of an example of a method for accessing an encrypted file by a delegating device for which access rights, preferably permanent, have been previously generated by a proprietary device.
DESCRIPTION DETAILLEE DE MODES DE REALISATION PARTICULIERS DE L'INVENTIONDETAILED DESCRIPTION OF PARTICULAR EMBODIMENTS OF THE INVENTION
Dans toute la description ci-après, les différentes valeurs cryptographiques utilisées pour la gestion des accès (clé de déchiffrement, valeur d’identification, valeur de délégation, etc.) sont propres à un unique ensemble de données. On comprendra toutefois que lesdites valeurs utilisées pour gérer les droits d’accès pourraient également être communes à plusieurs ensembles de données déterminés par le ou les propriétaires respectifs desdits ensembles de données. Notamment, la clé de déchiffrement d’un ensemble de donnée pourrait également être valide pour d’autres ensembles de données déterminés. Throughout the description below, the different cryptographic values used for access management (decryption key, identification value, delegation value, etc.) are specific to a single data set. It will however be understood that said values used to manage the access rights could also be common to several data sets determined by the respective owner(s) of said data sets. In particular, the decryption key of a data set could also be valid for other determined data sets.
Sur l’ensemble des figures annexées et tout au long de la description ci-après, les éléments similaires portent des références alphanumériques identiques. In all of the appended figures and throughout the description below, similar elements bear identical alphanumeric references.
Dans ce qui suit, l’exemple est pris d’ensembles de données chiffrés stockés en mémoire sous la forme de fichiers. L’invention n’est toutefois pas limitée à ce cas de figure mais s’étend également à des ensembles de données stockés en mode bloc (chaque ensemble constitue ainsi un bloc de données, résultant par exemple mais non nécessairement du découpage d’un fichier en plusieurs blocs) ou en mode objet.
In the following, the example is taken from encrypted data sets stored in memory as files. The invention is however not limited to this scenario but also extends to sets of data stored in block mode (each set thus constitutes a block of data, resulting for example but not necessarily from the splitting of a file in several blocks) or in object mode.
La description ci-après concerne la gestion de droits d’accès à des fichiers chiffrés par des entités d’un réseau. On considère que les entités ont préalablement partagé ensemble un protocole de gestion des droits. The following description concerns the management of access rights to encrypted files by network entities. It is considered that the entities have previously shared together a rights management protocol.
La Figure 1 représente schématiquement un système 1 de partage de fichiers entre des dispositifs informatiques de plusieurs organisations Org1 , Org2, Org3, ..., connectés sur un même réseau N, de préférence un réseau de télécommunications à distance. Le réseau N est typiquement un réseau Internet, Intranet, téléphonique 3G, 4G, 5G, DECT, Bluetooth, etc. Figure 1 schematically represents a file sharing system 1 between computer devices of several organizations Org1, Org2, Org3, ..., connected to the same network N, preferably a remote telecommunications network. Network N is typically an Internet, Intranet, 3G, 4G, 5G, DECT, Bluetooth, etc. telephone network.
Dans le présent exemple, les organisations Org1 , Org2, Org3 sont des organisations de gestion de données géophysiques et/ou environnementales. On entend par « données
géophysiques » des données relatives aux caractéristiques physiques de la Terre, typiquement issues de mesures. Il peut s’agir de données géologiques et/ou sismiques et/ou gravimétriques et/ou atmosphériques et/ou spatiales, etc. On entend par « données environnementales » des données ayant trait à l'environnement biologique et humain d’une zone, par exemple des données biologiques et/ou sonores et/ou chimiques et/ou hydrologiques et/ou énergétiques et/ou relatives au traitement de déchets. Ces données sont typiquement des données sensibles mises sélectivement à disposition des organisations. In this example, the organizations Org1 , Org2, Org3 are geophysical and/or environmental data management organizations. “Data” means geophysical” data relating to the physical characteristics of the Earth, typically resulting from measurements. It may be geological and/or seismic and/or gravimetric and/or atmospheric and/or spatial data, etc. “Environmental data” means data relating to the biological and human environment of an area, for example biological and/or sound and/or chemical and/or hydrological and/or energy data and/or data relating to the treatment of waste. This data is typically sensitive data made selectively available to organizations.
Les organisations Org1 , Org2, Org3 sont par exemples distantes les unes des autres, et peuvent appartenir à des territoires différents. The organizations Org1, Org2, Org3 are for example distant from each other, and can belong to different territories.
Chacune des organisations Org1 , Org2, Org3 est par exemple une collectivité territoriale et/ou une société privée intervenant pour la collecte ou le traitement de données et/ou une association intervenant pour la collecte ou le traitement de données et/ou une organisation propriétaire de serveurs de stockage et/ou de calcul.Each of the organizations Org1, Org2, Org3 is for example a local authority and/or a private company involved in the collection or processing of data and/or an association involved in the collection or processing of data and/or an organization that owns storage and/or compute servers.
On considère ici que chacune des organisations Org1 , Org2, Org3 est indépendante. Les organisations souhaitent par exemple mettre en commun sélectivement une partie de leur matériel et de leurs données, afin que chacune d’entre elles puisse s’appuyer sur au moins une partie des ressources et des données des autres organisations. It is considered here that each of the organizations Org1, Org2, Org3 is independent. Organizations, for example, want to selectively share some of their hardware and data, so that each of them can rely on at least some of the resources and data of other organizations.
En outre, ici, l’organisation Org1 possède un serveur de calcul I3 et l’organisation Org2 possède un serveur de calcul I3’. Par « serveur de calcul » on entend un serveur possédant une puissance de calcul très importante, typiquement plus importante que chacun des dispositifs 11 , 11 ’, I2, I2’, I2”, .... On souhaite pouvoir mettre sélectivement l’un et/ou l’autre de ces serveurs I3 et I3’ à disposition des autres organisations du réseau afin d’exécuter des traitements sur des données géophysiques et/ou environnementales. Also, here organization Org1 has compute server I3 and organization Org2 has compute server I3'. By "calculation server" is meant a server having a very high computing power, typically greater than each of the devices 11, 11', I2, I2', I2", .... It is desired to be able to selectively put one and/or the other of these servers I3 and I3' available to other organizations in the network in order to perform processing on geophysical and/or environmental data.
Cependant, l’ensemble de la description ci-après, et notamment les descriptions des différents procédés illustrés par les Figures 2 à 6, ne sont pas limitées au cas de données géophysiques et/ou environnementales. Ces procédés peuvent avantageusement être utilisés quel que soit le type de contenu des fichiers ou le type d’organisations Org1 , Org2, Org3, ... ou également pour deux organisations. Une application à des données géophysiques et/ou environnementales est avantageuse, car les traitements calculatoires desdites données peuvent nécessiter une puissance de calcul élevée. Il convient que les collectivités territoriales puissent confier temporairement certains traitements à des serveurs de calcul, sans pour autant
remettre en cause l’intégrité et la confidentialité des données contenues dans les fichiers. However, the whole of the description below, and in particular the descriptions of the various methods illustrated by FIGS. 2 to 6, are not limited to the case of geophysical and/or environmental data. These methods can advantageously be used regardless of the type of content of the files or the type of organization Org1, Org2, Org3, etc. or also for two organizations. An application to geophysical and/or environmental data is advantageous, since the computational processing of said data may require high computing power. Local authorities should be able to temporarily entrust certain processing operations to calculation servers, without question the integrity and confidentiality of the data contained in the files.
De retour à la Figure 1 , le système 1 comprend au moins un serveur S d’accès, stockant une base DB de gestion d’accès. Le serveur d’accès S peut être contenu dans un unique dispositif informatique, ou peut être réparti sur plusieurs dispositifs (éventuellement localisés à distance les uns des autres et présents sur des sites différents), par exemple en utilisant des tables de hachage et/ou une blockchain. Returning to Figure 1, system 1 comprises at least one access server S, storing an access management database DB. The access server S may be contained in a single computing device, or may be distributed over several devices (possibly located at a distance from each other and present on different sites), for example by using hash tables and/or a blockchain.
Le serveur S comprend une unité de traitement (non représentée). Dans cet exemple, le serveur S stocke les différentes listes d’accès ACL. Une mémoire de la base DB de gestion d’accès (ou, en alternative, une mémoire distante avec laquelle la base DB peut communiquer) comprend au moins une liste d’accès ACL(f1 ) avec au moins une entrée d’accès pour un fichier f1 chiffré. Dans le présent exemple, la base DB de gestion d’accès comprend également une liste d’accès ACL(f2) avec au moins une entrée d’accès pour un fichier f2 chiffré. On comprendra que des entrées d’accès aux fichiers f1 et f2 peuvent être octroyées à des utilisateurs différents. The server S includes a processing unit (not shown). In this example, server S stores the various ACL access lists. A memory of the access management database DB (or, alternatively, a remote memory with which the database DB can communicate) comprises at least one access list ACL(f1) with at least one access entry for a encrypted f1 file. In this example, the access management DB also includes an access list ACL(f2) with at least one access entry for an encrypted file f2. It will be understood that access entries to the files f1 and f2 can be granted to different users.
De manière avantageuse, tous les noeuds du système 1 (c’est-à-dire ici notamment les dispositifs 11 , 11 ’, I2, I2’, I2”, ...) peuvent accéder à chacun des fichiers chiffrés f1 , f2, ... sans contrôle, par exemple en passant par un système de stockage distribué gérant les mémoires M, M’, M”. Les fichiers chiffrés fl , f2, ... sont alors disponibles publiquement. L’accès aux informations contenues dans le fichier est régulé par la présence des clés de chiffrement, mais l’accès au fichier lui-même n’est de préférence pas régulé. Advantageously, all the nodes of the system 1 (that is to say here in particular the devices 11, 11′, I2, I2′, I2”, etc.) can access each of the encrypted files f1, f2, ... without control, for example via a distributed storage system managing the memories M, M', M”. The encrypted files fl , f2, ... are then publicly available. Access to the information contained in the file is regulated by the presence of the encryption keys, but access to the file itself is preferably unregulated.
Une liste d’accès, par exemple la liste ACL(f1 ), comprend typiquement des paires de correspondance. Chaque paire associe un identifiant d’un dispositif (par exemple d(l2)) et une valeur numérique (par exemple ACL (U2, f1 )) prévue pour permettre audit dispositif d’accéder au contenu du fichier f1 . An access list, for example the ACL(f1 ), typically includes match pairs. Each pair associates a device identifier (for example d(l2)) and a numerical value (for example ACL (U2, f1 )) intended to allow said device to access the content of the file f1 .
Par exemple, l’entrée d’accès ACL (U2, f1 ) permet au dispositif I2 d’utiliser sa clé privée U2 pour calculer la valeur d’une clé de déchiffrement du fichier f1 . For example, the ACL access entry (U2, f1 ) allows the device I2 to use its private key U2 to calculate the value of a decryption key for the file f1 .
Le contenu du fichier f1 comprend par exemple des données collectées issues du capteur Sa et/ou de l’un quelconque des autres capteurs. The content of the file f1 includes, for example, data collected from the sensor Sa and/or from any of the other sensors.
La liste d’accès ACL est une liste publique. On entend par « publique » que la liste d’accès ACL est facilement accessible par l’un quelconque des dispositifs des organisations Org1 , Org2, Org3, ... ainsi que par des dispositifs appartenant à des
utilisateurs tiers. De préférence, aucune mesure spécifique de contrôle d’accès (reposant par exemple sur des clés cryptographiques et/ou sur un consensus par blockchain, etc.) n’est implémentée pour protéger le contenu de la liste d’accès ACL vis-à-vis d’utilisateurs tiers. La liste d’accès ACL est facilement consultable, au moins en lecture, par chacun des utilisateurs susmentionnés. The ACL access list is a public list. By "public" we mean that the ACL access list is easily accessible by any of the devices of the organizations Org1 , Org2, Org3, ... as well as by devices belonging to third-party users. Preferably, no specific access control measure (e.g. based on cryptographic keys and/or blockchain consensus, etc.) is implemented to protect the content of the ACL access list against screws from third-party users. The ACL access list is easily searchable, at least in read mode, by each of the aforementioned users.
Les clés privées U1 , U2, U1 ’, U2’, ..., appartenant respectivement aux dispositifs 11 , I2, 11 ’, I2’, ..., sont, quant à elles, stockées de façon très sécurisée. Il s’agit par exemple de valeurs numériques propres à chaque dispositif. On ne suppose qu’aucun des dispositifs ne partage sa clé privée, ni sur le réseau N, ni avec l’un quelconque des autres dispositifs. The private keys U1 , U2, U1 ', U2', ..., belonging respectively to the devices 11 , I2, 11 ', I2', ..., are, in turn, stored very securely. These are, for example, numerical values specific to each device. It is assumed that none of the devices shares its private key, neither on network N nor with any of the other devices.
Ici, le système 1 comprend en outre : Here, system 1 further includes:
• pour l’organisation Org1 , un serveur propriétaire 11 et un serveur utilisateur I2. Le serveur propriétaire 11 est configuré pour créer des fichiers chiffrés et pour calculer des entrées d’accès propres à lui-même et/ou au serveur utilisateur I2 et/ou à d’autres dispositifs présents sur le réseau N pour ces fichiers ; l’organisation Org1 comprend en outre, dans le présent exemple, un capteur Sa prévu pour collecter des données géophysiques et/ou environnementales. Le capteur Sa peut ici échanger des données avec le serveur 11 . • for the Org1 organization, an owner server 11 and a user server I2. The owner server 11 is configured to create encrypted files and to calculate access entries specific to itself and/or to the user server I2 and/or to other devices present on the network N for these files; the organization Org1 also includes, in this example, a sensor Sa intended to collect geophysical and/or environmental data. The sensor Sa can here exchange data with the server 11 .
• pour l’organisation Org2, un serveur propriétaire 11 ’ et un serveur utilisateur I2’. Le serveur propriétaire 11 ’ est configuré pour créer des fichiers chiffrés et pour calculer des entrées d’accès propres à lui-même et/ou au serveur utilisateur I2’ et/ou à d’autres dispositifs présents sur le réseau N pour ces fichiers ; l’organisation Org2 comprend en outre, dans le présent exemple, deux capteurs Sb et Sc prévu pour collecter des données géophysiques et/ou environnementales. Les deux capteurs Sb et Sc peuvent ici échanger des données avec le serveur 11 ’. • for the organization Org2, an owner server 11' and a user server I2'. The owner server 11' is configured to create encrypted files and to calculate access entries specific to itself and/or to the user server I2' and/or to other devices present on the network N for these files; the organization Org2 also includes, in this example, two sensors Sb and Sc intended to collect geophysical and/or environmental data. The two sensors Sb and Sc can here exchange data with the server 11 '.
• pour l’organisation Org3, un serveur utilisateur I2”. L’organisation Org3 ne possède pas ici de puissance de calcul importante adaptée pour effectuer des traitements lourds sur des données géophysiques et/ou environnementales. • for the organization Org3, a user server I2”. The Org3 organization does not have significant computing power here suitable for performing heavy processing on geophysical and/or environmental data.
Le système 1 comprend en outre une mémoire M de stockage. La mémoire M peut stocker les listes d’accès ACL. Ici, la mémoire M appartient à l’organisation Org1.The system 1 further comprises a storage memory M. Memory M can store ACL access lists. Here, the memory M belongs to the organization Org1.
En alternative, la mémoire M pourrait être intégrée au serveur d’accès S et/ou intégrée à l’un quelconque des dispositifs de l’une des organisations Org1 , Org2, Org3, ..., ou distante de chacun de ces dispositifs.
Par ailleurs, l’organisation Org2 possède ici une mémoire M’ de stockage, et l’organisation Org3 possède ici une mémoire M” de stockage. Alternatively, the memory M could be integrated into the access server S and/or integrated into any of the devices of one of the organizations Org1, Org2, Org3, etc., or remote from each of these devices. Furthermore, the organization Org2 here has a storage memory M′, and the organization Org3 here has a storage memory M″.
De préférence, lorsque plusieurs mémoires (ici M, M’, M”) sont présentes, un espace de nommage commun est utilisé. Les mémoires M, M’, M” appartiennent à un système de stockage distribué, par exemple réalisé à l’aide d’un réseau de recouvrement. Ainsi, quand un utilisateur accède à une entrée de la liste d’accès ACL, il n’est pas nécessaire que l’utilisateur sache à l’avance dans quelle mémoire du système 1 ladite entrée de la liste d’accès est localisée. Preferably, when several memories (here M, M’, M”) are present, a common namespace is used. The memories M, M’, M” belong to a distributed storage system, for example made using an overlay network. Thus, when a user accesses an ACL access-list entry, it is not necessary for the user to know in advance in which memory of system 1 said access-list entry is located.
De manière préférée, chaque dispositif 11 , 11 ’, I2, I2’, ... sollicite la mémoire qui est disponible dans son serveur local ; ainsi, dans l’exemple illustré sur la Figure 1 , le dispositif 11 peut interroger la mémoire M et le dispositif 11 ’ peut interroger la mémoire M’. Dans la mesure où les mémoires M, M’, et M” appartiennent à un même système de stockage distribué, les fichiers stockés dans les autres mémoires sont également accessibles. Preferably, each device 11, 11′, I2, I2′, etc. requests the memory which is available in its local server; thus, in the example illustrated in Figure 1, device 11 can interrogate memory M and device 11' can interrogate memory M'. Insofar as the memories M, M’, and M” belong to the same distributed storage system, the files stored in the other memories are also accessible.
De manière préférée, les enregistrements sur une mémoire ne sont pas modifiables ultérieurement. Cette dernière propriété est par exemple assurée comme service par la solution de stockage distribué utilisée. Preferably, the recordings on a memory cannot be modified subsequently. This last property is for example ensured as a service by the distributed storage solution used.
Chaque fichier chiffré est enregistré soit sur l’une quelconque des mémoires M, M’, M”, ..., soit sur une mémoire du serveur S ou sur une mémoire distante. Dans le présent exemple, le fichier f1 est stocké sur la mémoire M de l’organisation Org1 et le fichier f2 est stocké sur la mémoire M’ de l’organisation Org2. D’autres fichiers, de préférence chiffrés ou éventuellement non chiffrés, peuvent être enregistrés en mémoire. Each encrypted file is recorded either on any one of the memories M, M', M”, ..., or on a memory of the server S or on a remote memory. In this example, file f1 is stored in memory M of organization Org1 and file f2 is stored in memory M' of organization Org2. Other files, preferably encrypted or possibly unencrypted, can be saved in memory.
Chacun des dispositifs 11 , 11 ’, I2, I2’, I2”, I3, I3’ comprend des moyens de traitement comme par exemple une unité de traitement, non représentée sur la Figure 1 . Each of the devices 11, 11′, I2, I2′, I2″, I3, I3′ comprises processing means such as for example a processing unit, not shown in Figure 1.
Chacun de ces moyens de traitement peut comprendre en mémoire un ou plusieurs produits programmes d’ordinateur comprenant des instructions de code pour la mise en oeuvre des procédés décrits ci-après, et/ou peut lire un ou plusieurs moyens de stockage lisibles par ordinateur sur lesquels sont enregistrées des instructions de code pour la mise en oeuvre des procédés décrits ci-après. Each of these processing means can comprise in memory one or more computer program products comprising code instructions for the implementation of the methods described below, and/or can read one or more computer-readable storage means on which are recorded code instructions for the implementation of the methods described below.
Les organisations Org1 , Org2, Org3 souhaitent pouvoir solliciter les serveurs de calcul I3, I3’ afin de disposer de leur puissance de calcul pour effectuer des traitements sur les données géophysiques et/ou environnementales auxquelles l’un quelconque des dispositifs 11 , 11 ’, I2, I2’, I2” a accès selon les listes d’accès ACL.
Pour ce faire, on souhaite attribuer un accès (typiquement uniquement en lecture) à l’un des fichiers chiffrés f1 et/ou f2 pour l’un des serveurs de calcul I3 et/ou I3’, de manière sélective et préférentiellement temporaire. The organizations Org1, Org2, Org3 wish to be able to request the calculation servers I3, I3' in order to have their computing power to perform processing on the geophysical and/or environmental data to which any of the devices 11, 11', I2, I2', I2” has access according to the ACL access lists. To do this, it is desired to allocate access (typically only in read mode) to one of the encrypted files f1 and/or f2 for one of the calculation servers I3 and/or I3′, selectively and preferably temporarily.
De préférence, les données écrites par un utilisateur donné dans un fichier ne peuvent plus être modifiées, y compris de préférence par le propriétaire dudit fichier. Une telle interdiction de modifier des données de fichier après leur création est par exemple fournie, sous forme de service, par le système de stockage distribué utilisé pour les mémoires M, M’, M”. Preferably, the data written by a given user in a file can no longer be modified, preferably including by the owner of said file. Such a prohibition to modify file data after its creation is for example provided, in the form of a service, by the distributed storage system used for the memories M, M’, M”.
Les procédés ci-après permettent de réaliser deux niveaux d’accès aux fichiers, comme il sera détaillé ci-après. On considère les serveurs I2, I2’ et I2” comme délégants ; ils peuvent avoir des entrées d’accès à leur nom dans les listes d’accès ACL. Les serveurs I3 et I3’ sont quant à eux délégués ; ils peuvent recevoir une délégation venant d’un délégant.
The methods below make it possible to carry out two levels of access to the files, as will be detailed below. We consider the servers I2, I2' and I2” as delegating; they may have access entries for them in ACL access lists. The servers I3 and I3' are delegated; they can receive a delegation from a delegator.
On a représenté sur la Figure 2 des étapes successives d’un procédé d’échange de données entre un dispositif délégant (par exemple I2 ou l2’ou I2”) et un dispositif délégué (par exemple I3 ou I3’) selon un exemple. Un objectif de ce procédé est de fournir une valeur de délégation Del au dispositif délégué I3, pour permettre audit délégué I3 d’accéder (préférentiellement de manière temporaire) à un fichier f1 chiffré pour lequel le dispositif délégant I2 détient des droits d’accès. Ce procédé peut être mis en oeuvre par une unité de traitement du dispositif délégant I2, conjointement avec le délégué I3. Successive steps of a data exchange process between a delegating device (for example I2 or I2′ or I2″) and a delegated device (for example I3 or I3′) are represented in Figure 2 according to an example. One objective of this method is to provide a delegation value Del to the delegate device I3, to allow said delegate I3 to access (preferably temporarily) an encrypted file f1 for which the delegating device I2 holds access rights. This method can be implemented by a processing unit of the delegating device I2, together with the delegate I3.
Le fichier f1 chiffré est typiquement un fichier en lecture seule. En alternative, le contenu du fichier f1 peut être modifiable en écriture une fois que l’accès au fichier f1 a été permis. The encrypted f1 file is typically a read-only file. Alternatively, the contents of file f1 can be writable once access to file f1 has been granted.
Typiquement, le dispositif délégué I3 est un serveur de calcul partagé sur le réseau N, sollicité de manière temporaire pour prêter sa puissance de calcul. Typically, the delegated device I3 is a computing server shared on the network N, called upon temporarily to lend its computing power.
Pour que le délégant I2 génère et transmette une délégation au délégué I3, il convient que le délégant I2 obtienne une valeur de fonction d’identification propre au délégué I3 pour le fichier fl . En effet, le calcul de la délégation Del ultérieurement attribuée au délégué 13 dépend de ladite valeur d’identification.
De manière préférentielle, la fonction d’identification ID a été partagée entre les différentes organisations du réseau avant de débuter les échanges de données. Par exemple, la fonction d’identification ID a été préalablement spécifiée dans le code du programme permettant la mise en oeuvre des différents procédés d’échanges de données, et distribuée avec ledit programme. In order for delegator I2 to generate and pass a delegation to delegate I3, delegator I2 needs to get an identifying function value specific to delegate I3 for file fl . Indeed, the calculation of the delegation Del subsequently assigned to the delegate 13 depends on said identification value. Preferably, the ID identification function has been shared between the different organizations of the network before starting the data exchanges. For example, the identification function ID has been previously specified in the code of the program allowing the implementation of the various data exchange methods, and distributed with said program.
Au cours de l’étape 1100, le délégué I3 reçoit de manière optionnelle une requête d’identification Req ID de la part du délégant I2. La requête d’identification Req ID prend de préférence la forme d’un message adressé par le délégant I2 au délégué I3. Ensuite, le délégué I3 obtient ou recalcule une valeur ID(U3, f1 ) qui lui est propre pour la fonction d’identification ID, à partir d’une identité du fichier f1 et à partir de sa clé privée U3. During step 1100, the delegate I3 optionally receives an identification request Req ID from the delegator I2. The identification request Req ID preferably takes the form of a message sent by the delegator I2 to the delegate I3. Then, the delegate I3 obtains or recalculates a value ID(U3, f1 ) which is specific to it for the identification function ID, from an identity of the file f1 and from its private key U3.
La valeur d’identification ID(U3, f1 ) dépend de la clé privée U3 du délégué I3. Cette valeur d’identification est construite de telle sorte qu’un tiers ne peut pas obtenir cette valeur en connaissant simplement une identité du fichier fl , sans connaître la clé privée U3. La valeur d’identification ID(U3, f1 ) dépend ici également de l’identité du fichier f1 ; autrement dit, les valeurs d’identification du délégué I3 diffèrent pour chaque fichier. The identification value ID(U3, f1 ) depends on the private key U3 of the delegate I3. This identification value is constructed in such a way that a third party cannot obtain this value by simply knowing an identity of the file fl , without knowing the private key U3. The identification value ID(U3, f1 ) depends here also on the identity of the file f1; that is, the I3 delegate identification values differ for each file.
De préférence, les résultats produits par la fonction d’identification ID semblent aléatoires du point de vue d’un tiers qui ne connaîtrait pas la clé privée utilisée, mais ces résultats sont déterministes pour l’utilisateur ayant connaissance de la clé privée utilisée. Preferably, the results produced by the identification function ID seem random from the point of view of a third party who does not know the private key used, but these results are deterministic for the user having knowledge of the private key used.
La fonction d’identification ID présente de préférence les trois propriétés suivantes : The identification function ID preferably has the following three properties:
• Le résultat ID(U3, f1 ) ne peut être calculé que par le délégué I3 détenant sa clé U3 ; • The result ID(U3, f1 ) can only be calculated by the delegate I3 holding its key U3;
• A partir de la seule connaissance du résultat ID(U3, f1 ), il est extrêmement difficile pour un tiers de remonter à la valeur de la clé privée U3 ; • From the mere knowledge of the result ID(U3, f1 ), it is extremely difficult for a third party to go back to the value of the private key U3;
• Le résultat ID(U3, f1 ) n’est pas rejouable par un tiers à partir d’un autre fichier chiffré, par exemple à partir du fichier f2 pour lequel le tiers connaîtrait accidentellement la valeur ID(U3, f2). • The result ID(U3, f1 ) cannot be replayed by a third party from another encrypted file, for example from file f2 for which the third party would accidentally know the value ID(U3, f2).
Ainsi, la fonction d’identification ID permet aux utilisateurs du système 1 d’échanger des données en vue de l’attribution et/ou de l’utilisation de droits d’accès à des fichiers, sans que des utilisateurs tiers éventuellement malveillants ne puissent deviner les clés privées des utilisateurs, ou encore accéder de façon illicite au contenu de fichiers chiffrés.
La solution de gestion de droits d’accès proposée ici présente donc un très haut niveau de sécurité, bien que la liste ACL de la base de gestion d’accès DB soit publique et qu’aucun contrôle d’accès ne soit mis en oeuvre au niveau de cette liste ACL. Thus, the identification function ID allows users of system 1 to exchange data with a view to allocating and/or using access rights to files, without possibly malicious third-party users being able to guess the private keys of users, or gain illicit access to the content of encrypted files. The access rights management solution proposed here therefore has a very high level of security, although the ACL list of the DB access management database is public and no access control is implemented at the level of this ACL.
Dans le présent exemple (Exemple 1 ), la valeur ID(U3, f1) de la fonction d’identification ID est obtenue comme suit : In the present example (Example 1 ), the value ID(U3, f1) of the identification function ID is obtained as follows:
ID(U3, f1) = U3 + sha256(concatenation(U3, f1)), où f1 est ledit fichier chiffré et où U3 est la clé privée du délégué I3. « concaténation » correspond à la fonction concaténation, et « sha256 » correspond à une fonction de hachage cryptographique connue opérant sur une taille de mots de 32 bits. On comprendra qu’il serait possible d’employer une autre fonction de hachage ici. ID(U3, f1) = U3 + sha256(concatenation(U3, f1)), where f1 is said encrypted file and where U3 is the private key of delegate I3. “concatenation” corresponds to the concatenation function, and “sha256” corresponds to a well-known cryptographic hash function operating on a 32-bit word size. It will be understood that it would be possible to use another hash function here.
A l’étape 1100, le délégué I3 transmet la valeur ID (U3, f1 ) au délégant I2. De manière préférentielle, la valeur ID (U3, f1 ) est transmise sur un canal hautement sécurisé, par exemple à l’aide de fonctions cryptographiques. On assure alors que la valeur ID(U3, f1 ) demeure accessible uniquement au délégant I2 et au délégué I3, qui sont jugés de confiance. At step 1100, the delegate I3 transmits the value ID (U3, f1) to the delegator I2. Preferably, the ID value (U3, f1) is transmitted over a highly secure channel, for example using cryptographic functions. It is then ensured that the value ID(U3, f1 ) remains accessible only to the delegator I2 and to the delegate I3, which are judged to be trusted.
A une étape 1200, à l’aide de la valeur d’identification ID(U3, f1 ) propre au délégué I3, le délégant I2 génère une valeur de délégation Del pour le délégué I3 et le fichier f1. At a step 1200, using the identification value ID(U3, f1 ) specific to the delegate I3, the delegator I2 generates a delegation value Del for the delegate I3 and the file f1.
De préférence, la valeur de délégation Del est calculée par le délégant I2 en fonction de la valeur d’identification ID(U3, f1 ) propre au dispositif délégué I3, et également en fonction d’une valeur d’identification ID(U2, f1 ) propre au délégant I2 et associée à ce fichier f1. Ainsi, la valeur d’identification ID(U2, f1 ) demeurant secrète, seul un dispositif délégant disposant de droits d’accès valides au fichier fl peut produire des délégations. Preferably, the delegation value Del is calculated by the delegator I2 according to the identification value ID(U3, f1) specific to the delegated device I3, and also according to an identification value ID(U2, f1 ) specific to delegator I2 and associated with this file f1. Thus, the identification value ID(U2, f1 ) remaining secret, only a delegating device having valid access rights to the file fl can produce delegations.
Dans le présent exemple (Exemple 1 ), la valeur de délégation Del est égale à la différence des deux valeurs d’identification : Del = ID(U2, f 1 ) - ID(U3, f1). In the present example (Example 1 ), the delegation value Del is equal to the difference of the two identification values: Del = ID(U2, f 1 ) - ID(U3, f1).
Comme il sera décrit ci-après, par construction de la clé de déchiffrement sk, le délégué I3 sera ultérieurement en mesure de déchiffrer le fichier à partir de la valeur de délégation Del et à partir d’une information sur une entrée d’accès du délégant I2.As will be described below, by constructing the decryption key sk, the delegate I3 will later be able to decrypt the file from the delegation value Del and from information on an access entry of the delegating I2.
Enfin, à une étape 1300, le délégant I2 transmet au délégué I2 la valeur de délégation Del.
Il est préférable que la transmission de la valeur de délégation Del soit réalisée de façon sécurisée, car cette valeur de délégation donne une information concernant les valeurs d’identification pour le délégant 12 et le délégué 13. Finally, at a step 1300, the delegator I2 transmits to the delegate I2 the delegation value Del. It is preferable that the transmission of the delegation value Del be carried out in a secure manner, because this delegation value gives information concerning the identification values for the delegator 12 and the delegate 13.
Ainsi, la transmission 1300 au dispositif délégué I3 prend préférentiellement la forme d’un message signé contenant la valeur de délégation Del. Le message peut être signé par tout algorithme de signature cryptographique, par exemple par signature DSA (pour « Digital Signature Algorithm »). Thus, the transmission 1300 to the delegated device I3 preferably takes the form of a signed message containing the delegation value Del. The message can be signed by any cryptographic signature algorithm, for example by DSA signature (for “Digital Signature Algorithm”).
La signature de message permet de vérifier la propriété de non-répudiabilité. En outre, grâce à la signature de message, le délégué I3 peut vérifier l’intégrité de la transmission de la valeur de délégation, et le fait que la délégation provienne bien du délégant I2. Cela est notamment important dans le cas où le délégué I3 aurait besoin de l’identité du délégant I2 pour déchiffrer le fichier. The message signature makes it possible to verify the property of non-repudiability. In addition, thanks to the message signature, the delegate I3 can verify the integrity of the transmission of the delegation value, and the fact that the delegation does indeed come from the delegator I2. This is particularly important in the event that the I3 delegate needs the identity of the I2 delegator to decrypt the file.
Un premier avantage du procédé de la Figure 2 est sa simplicité et sa rapidité de calcul. Un deuxième avantage est que le délégant I2 et le délégué I3 n’ont pas besoin d’être connectés au réseau simultanément à d’autres utilisateurs (par exemple un propriétaire 11 du fichier f1 ) et n’ont pas besoin de charger des fichiers dans la base DB pendant le procédé. A first advantage of the method of FIG. 2 is its simplicity and its speed of calculation. A second advantage is that the delegator I2 and the delegate I3 do not need to be connected to the network at the same time as other users (for example an owner 11 of the file f1 ) and do not need to load files into DB database during the process.
A l’issue du procédé de la Figure 2, le délégué I2 peut accéder (préférentiellement temporairement) au contenu du fichier f1 chiffré, grâce à sa délégation. Toutefois, le délégué I2 ne dispose pas d’une entrée à son propre nom dans la liste d’accès ACL. De préférence, le délégué I2 ne peut pas lui-même accorder une quelconque délégation à d’autres utilisateurs pour accès au fichier f1 dont il n’est pas propriétaire. On rappelle que, de préférence, seul le propriétaire du fichier f1 peut ajouter un enregistrement dudit fichier. At the end of the process of Figure 2, the delegate I2 can access (preferably temporarily) the content of the encrypted file f1, thanks to his delegation. However, the I2 delegate does not have an entry of its own name in the ACL access list. Preferably, the delegate I2 cannot himself grant any delegation to other users for access to the file f1 which he does not own. It is recalled that, preferably, only the owner of the file f1 can add a recording of said file.
Ces dernières propriétés peuvent être réalisées notamment par une liste d’accès ACL stockée sous forme de blockchain, où les ajouts à la blockchain seraient gérés sous forme de « smart contract ». These last properties can be achieved in particular by an access list ACL stored in the form of a blockchain, where additions to the blockchain would be managed in the form of a “smart contract”.
On comprendra que le procédé de la Figure 2 peut être répété par le délégant I2 pour autant d’itérations que de délégués différents requérant des délégations pour le fichier f 1 , et éventuellement pour d’autres fichiers disponibles en mémoire.
* Accès à un fichier chiffré à l’aide de droits d’accès temporaires (Exemple 1) It will be understood that the process of FIG. 2 can be repeated by the delegator I2 for as many iterations as there are different delegates requiring delegations for the file f 1 , and possibly for other files available in memory. * Accessing an encrypted file using temporary access rights (Example 1)
La Figure 3 illustre des étapes d’un procédé d’échange de données entre un dispositif délégué (par exemple I3 ou I3’), une base de gestion d’accès DB contenant une liste d’accès ACL publique, et une mémoire de stockage M de fichiers, selon un exemple. Le procédé peut être mis en oeuvre par une unité de traitement du dispositif délégué I3, conjointement avec la base DB. Le dispositif délégué utilise une valeur de délégation Del pour le fichier f1 préalablement été reçue depuis un délégant I2, lui permettant d’accéder au contenu du fichier f1 (préférentiellement de manière temporaire). Figure 3 illustrates steps in a process for exchanging data between a delegate device (for example I3 or I3'), an access management database DB containing a public access list ACL, and a storage memory M of files, according to an example. The method can be implemented by a processing unit of the delegated device I3, jointly with the base DB. The delegated device uses a delegation value Del for the file f1 previously received from a delegator I2, allowing it to access the content of the file f1 (preferably temporarily).
La valeur de délégation Del est par exemple issue d’un procédé d’échange de données tel que décrit ci-avant, et tel qu’illustré sur la Figure 2. The delegation value Del comes for example from a data exchange process as described above, and as illustrated in Figure 2.
Pour pouvoir accéder au contenu du fichier f1 chiffré, le délégué I3 doit obtenir la valeur de la clé de déchiffrement qui verrouille le contenu. Il s’agit ici de la clé de déchiffrement symétrique sk. Pour obtenir ladite clé, le délégué I3 utilise la valeur de délégation Del. In order to access the contents of the encrypted f1 file, the I3 delegate must obtain the value of the decryption key that locks the contents. This is the symmetric decryption key sk. To obtain said key, the delegate I3 uses the delegation value Del.
Dans un premier temps, le délégué I3 obtient auprès de la base DB une information dépendant d’une entrée d’accès ACL (U2, f1 ) propre au délégant I2 pour le fichier f1 , en déclinant un identifiant d(l2) du délégant I2 auprès de la base DB. Par exemple, le délégué I3 obtient directement la valeur de l’entrée d’accès ACL (U2, f1 ). On rappelle que les entrées d’accès sont publiques et que leur consultation ne fait pas l’objet d’un contrôle d’accès. Initially, the delegate I3 obtains from the database DB information depending on an ACL access entry (U2, f1) specific to the delegator I2 for the file f1, by declining an identifier d(l2) of the delegator I2 from the DB database. For example, the I3 delegate directly gets the value of the ACL access entry (U2, f1 ). It is recalled that the access entries are public and that their consultation is not subject to access control.
Ici, à une étape 2100, le délégué I3 envoie un identifiant d(l2) du délégant I2 à la base DB de gestion d’accès. Here, at a step 2100, the delegate I3 sends an identifier d(l2) of the delegator I2 to the access management database DB.
Puis à une étape 2200, le délégué I3 lit directement la valeur de l’entrée d’accès ACL (U2, f1 ) dans la liste d’accès ACL publique de la base DB. Then at a step 2200, the delegate I3 directly reads the value of the ACL access entry (U2, f1 ) in the public ACL access list of the DB base.
Le délégué I3 est ensuite en mesure de calculer la clé de déchiffrement sk pour le fichier f1 , en fonction des trois données suivantes : The I3 delegate is then able to calculate the decryption key sk for the file f1 , based on the following three data:
• la valeur d’identification ID(U3, f 1 ) propre au dispositif délégué I3 et associée au fichier fl, que le délégué 13 peut calculer le cas échéant s’il ne la possède pas en mémoire ; • the identification value ID(U3, f 1 ) specific to the delegate device I3 and associated with the file fl, which the delegate 13 can calculate if necessary if it does not have it in memory;
• l’entrée d’accès ACL(U2, f 1 ) lue dans la base DB de gestion d’accès ; • the access entry ACL(U2, f 1 ) read in the access management database DB;
• la valeur de délégation Del préalablement générée par le délégant I3 et reçue par le délégué I3 (directement depuis le délégant ou indirectement par l’intermédiaire
d’un dispositif tiers comme un tiers de confiance) , qui peut avoir été enregistrée en mémoire au préalable. • the delegation value Del previously generated by the delegator I3 and received by the delegate I3 (directly from the delegator or indirectly through the intermediary of a third-party device such as a trusted third party), which may have been stored in memory beforehand.
On rappelle que le délégué 13 ne possède pas d’entrée d’accès à son propre nom dans la liste ACL publique, pour le fichier f1 . We recall that delegate 13 does not have an access entry for his own name in the public ACL, for the file f1 .
La clé de déchiffrement sk est de préférence une clé de déchiffrement symétrique. Le chiffrement mis en oeuvre correspond par exemple à un algorithme AES (pour « Advanced Encryption Standard ») ou encore 3DES (pour « Triple Data Encryption Standard ») mais tout algorithme peut être utilisé. La clé de déchiffrement sk est ici construite comme suit : sk = Aut(ID(U3, f1 ), ACL(U2, f1 ), Del) [= Aut(ID(U2, f1), ACL(U2, f1), O)] où f1 est le fichier chiffré, où U2 est la clé privée du dispositif délégant I2, où U3 est la clé privée du dispositif délégué I3, où Del est la valeur de délégation préalablement reçue par le délégué I3, où ID(U2, f1 ) est la valeur d’identification propre au dispositif délégant I2, où ID(U3, f1 ) est la valeur d’identification propre au dispositif délégué I3, et où ACL(U2, fl ) est l’entrée d’accès propre au dispositif délégant I2. The decryption key sk is preferably a symmetric decryption key. The encryption implemented corresponds for example to an AES (for “Advanced Encryption Standard”) or even 3DES (for “Triple Data Encryption Standard”) algorithm, but any algorithm can be used. The decryption key sk is here constructed as follows: sk = Aut(ID(U3, f1 ), ACL(U2, f1 ), Del) [= Aut(ID(U2, f1), ACL(U2, f1), O )] where f1 is the encrypted file, where U2 is the private key of the delegating device I2, where U3 is the private key of the delegate device I3, where Del is the delegation value previously received by the delegate I3, where ID(U2, f1 ) is the identification value specific to the delegating device I2, where ID(U3, f1 ) is the identification value specific to the delegate device I3, and where ACL(U2, fl ) is the access entry specific to the delegating device I2.
La fonction d’autorisation Aut est choisie de sorte à vérifier l’égalité suivante : The authorization function Aut is chosen so as to verify the following equality:
Aut(ID(U3, f1 ), ACL(U2, fl ), Del) = Aut(ID(U2, fl ), ACL(U2, fl ), 0) Aut(ID(U3, f1 ), ACL(U2, fl ), Del) = Aut(ID(U2, fl ), ACL(U2, fl ), 0)
Dans un exemple simple, on utilise comme résultat de la fonction Aut une somme des trois variables prises en entrée. En effet, si l’égalité Del = ID(U2, f1 ) - ID(U3, f1 ) est vérifiée comme dans l’exemple ci-avant (Exemple 1 ), alors l’égalité suivante est également vérifiée : In a simple example, the result of the Aut function is a sum of the three variables taken as input. Indeed, if the equality Del = ID(U2, f1 ) - ID(U3, f1 ) is verified as in the example above (Example 1 ), then the following equality is also verified:
I D(U 3 , fl ) + ACL (U2, fl ) + Del = ID (U2, fl ) + ACL (U2, fl ) I D(U 3 , fl ) + ACL (U2, fl ) + Del = ID (U2, fl ) + ACL (U2, fl )
Il ressort clairement que le délégué I3 doit nécessairement connaître la valeur de délégation Del pour déchiffrer le fichier, faute de quoi la connaissance de la valeur de l’entrée d’accès ACL(U2, fl ) ne lui est pas utile. On propose donc deux niveaux différents d’accès au fichier fl chiffré ; un premier niveau d’utilisateurs n’ont pas besoin de délégation (délégant I2) et un deuxième niveau plus faible d’utilisateurs ont besoin d’une délégation, car ils n’ont pas d’entrée d’accès en leur nom propre (délégué I3).
De préférence, la fonction d’autorisation Aut a été partagée entre les différentes organisations du réseau avant de débuter les échanges de données. Elle a par exemple été distribuée aux différents serveurs avec le code du programme permettant la mise en oeuvre des procédés d’échanges de données. It is clear that the delegate I3 must necessarily know the delegation value Del in order to decrypt the file, otherwise knowledge of the value of the access entry ACL(U2, fl ) is of no use to it. Two different levels of access to the encrypted file fl are therefore proposed; a first level of users do not need delegation (delegator I2) and a second lower level of users need delegation, because they do not have an access entry in their own name ( delegate I3). Preferably, the Aut authorization function has been shared between the different organizations of the network before starting the data exchanges. It has for example been distributed to the various servers with the program code enabling the implementation of the data exchange methods.
A l’issue de l’étape 2300, le délégué 13 dispose de la clé de déchiffrement sk. At the end of step 2300, the delegate 13 has the decryption key sk.
A une étape 2400, pouvant être mise en oeuvre immédiatement après l’étape 2300 ou plus tardivement, le délégué 13 obtient le fichier f1 auprès d’une mémoire dans laquelle ce fichier est stocké. Le fichier f1 est par exemple obtenu depuis la mémoire M. A cet effet, le délégué I3 transmet par exemple une requête de fichier Req f1 à la mémoire M. At a step 2400, which can be implemented immediately after step 2300 or later, the delegate 13 obtains the file f1 from a memory in which this file is stored. The file f1 is for example obtained from the memory M. For this purpose, the delegate I3 transmits for example a file request Req f1 to the memory M.
Enfin, à une étape 2500, le délégué I3 décline la valeur de la clé de déchiffrement sk pour accéder au contenu du fichier, de préférence par déchiffrement symétrique. Le fichier f1 n’est bien entendu pas communiqué sous forme déchiffrée via le réseau N.Finally, at a step 2500, the delegate I3 declines the value of the decryption key sk to access the content of the file, preferably by symmetrical decryption. The file f1 is of course not communicated in decrypted form via the N network.
Dans le cas où le délégué I3 est un serveur de calcul, on comprendra que le délégué I3 peut mettre en oeuvre la ou les séquences de calcul nécessaires, puis le résultat des calculs peut être sauvegardé sur la mémoire M en réseau, éventuellement directement dans le contenu du fichier f1 . Alternativement, les données de résultat des calculs sont communiquées à différentes organisations présentes sur le réseau (typiquement au délégant I2 et/ou au propriétaire 11 ). Enregistrement d’un nouveau fichier chiffré (Exemple 1) In the case where the delegate I3 is a calculation server, it will be understood that the delegate I3 can implement the necessary calculation sequence(s), then the result of the calculations can be saved on the memory M in the network, possibly directly in the contents of file f1 . Alternatively, the result data of the calculations are communicated to different organizations present on the network (typically to the delegating party I2 and/or to the owner 11). Saving a new encrypted file (Example 1)
La Figure 4 illustre des étapes successives d’un procédé de création d’un nouveau fichier f1 protégé destiné à être partagé via un système de partage tel que le système 1 , et de génération de droits d’accès pour ce fichier f1 . Le procédé est mis en oeuvre par un dispositif propriétaire du fichier f1 (par exemple un propriétaire 11 ou 11 ’), une base de gestion d’accès DB et une mémoire de stockage M. Figure 4 illustrates successive steps of a process for creating a new protected file f1 intended to be shared via a sharing system such as system 1 , and for generating access rights for this file f1 . The method is implemented by a device that owns the file f1 (for example an owner 11 or 11 '), an access management base DB and a storage memory M.
A une étape 3100, le propriétaire 11 génère un nouveau fichier f0 non chiffré ou obtient ce fichier depuis sa mémoire interne. Comme indiqué ci-avant, les données du fichier fl 0 sont par exemple des données scientifiques sensibles que le propriétaire 11 souhaite partager avec d’autres utilisateurs de manière sécurisée, tout en préservant la confidentialité des données du fichier f0.
A une étape 3200, en vue de générer une entrée d’accès pour le futur fichier f1 chiffré, le propriétaire 11 tire un nombre aléatoire r, par exemple un entier. At a step 3100, the owner 11 generates a new unencrypted file f 0 or obtains this file from its internal memory. As indicated above, the data of the file f 1 0 are for example sensitive scientific data that the owner 11 wishes to share with other users in a secure manner, while preserving the confidentiality of the data of the file f 0 . At a step 3200, with a view to generating an access entry for the future encrypted file f1, the owner 11 draws a random number r, for example an integer.
Le propriétaire transmet ensuite le nombre aléatoire r à la base DB de gestion d’accès, à une étape 3300. The owner then transmits the random number r to the access management base DB, at a step 3300.
Ensuite, à une étape 3350, la base DB de gestion d’accès enregistre une entrée d’accès pour le propriétaire 11 et pour le futur fichier f1 chiffré, dans la liste ACL publique. Par exemple, l’entrée d’accès ACL (U1 , f1 ) est prise égale à r. U1 est une clé privée du propriétaire 11 . Then, at a step 3350, the access management database DB records an access entry for the owner 11 and for the future encrypted file f1, in the public ACL list. For example, the ACL access entry (U1 , f1 ) is taken equal to r. U1 is a private key of owner 11 .
Le propriétaire 11 , quant à lui, calcule à une étape 3400 sa valeur d’identification ID (U1 , f1 ) pour le fichier fl . Dans le présent exemple (Exemple 1 ), cette valeur d’identification est calculée comme suit : The owner 11, for its part, calculates in a step 3400 its identification value ID (U1, f1) for the file fl. In the present example (Example 1 ), this identification value is calculated as follows:
ID(U1, f 1 ) = U 1 + sha256(concatenation(U1, f1 )), ID(U1, f 1 ) = U 1 + sha256(concatenation(U1, f1 )),
A partir de sa propre valeur d’identification ID (U1 , f1 ), combinée à la valeur de la nouvelle entrée d’accès ACL (U1 , f1 ), le propriétaire 11 est en mesure d’obtenir une valeur de clé de déchiffrement sk pour le fichier fl . La valeur de la clé de déchiffrement sk est construite de sorte que des délégants 12, 12’, 12”... puissent ultérieurement mettre en oeuvre des délégations comme vu ci-avant, sans solliciter le propriétaire 11 . From its own identification value ID (U1, f1), combined with the value of the new ACL access entry (U1, f1), the owner 11 is able to obtain a decryption key value sk for the fl file. The value of the decryption key sk is constructed so that delegators 12, 12', 12”... can subsequently implement delegations as seen above, without soliciting the owner 11 .
Ainsi, à une étape 3500, le propriétaire 11 calcule une valeur de la clé de déchiffrement sk à l’aide de la fonction d’autorisation Aut, par exemple selon la formule suivante : sk = Aut(ID(U1, fl ), ACL(U1, fl ), 0)) Thus, at a step 3500, the owner 11 calculates a value of the decryption key sk using the authorization function Aut, for example according to the following formula: sk = Aut(ID(U1, fl ), ACL (U1, fl ), 0))
On rappelle que, dans un exemple simple, un résultat de la fonction d’autorisation Aut est une somme des trois variables prises en entrée par la fonction d’autorisation.It is recalled that, in a simple example, a result of the authorization function Aut is a sum of the three variables taken as input by the authorization function.
A une étape 3600, le contenu du fichier est chiffré à l’aide de la clé sk, afin d’obtenir le fichier f1 chiffré. At a step 3600, the content of the file is encrypted using the key sk, in order to obtain the encrypted file f1.
Enfin, à une étape 3700, ce fichier f1 est enregistré sur la mémoire M de stockage.Finally, at a step 3700, this file f1 is recorded on the storage memory M.
On comprendra que l’étape 3350 peut être intervertie avec les étapes 3400, 3500, 3600 et 3700 ou encore mise en oeuvre en parallèle de ces dernières étapes. It will be understood that step 3350 can be inverted with steps 3400, 3500, 3600 and 3700 or even implemented in parallel with these latter steps.
En alternative, le fichier fl chiffré pourrait être obtenu par chiffrement asymétrique à partir du fichier f° non chiffré. Le chiffrement repose alors sur une clé privée de déchiffrement associée à une clé publique de déchiffrement. Dans ce dernier cas, la
fonction d’autorisation Aut partagée entre le propriétaire 11 et les différents autres utilisateurs permet auxdits utilisateurs de reconstruire la clé privée de déchiffrement du fichier f1. Alternatively, the encrypted file fl could be obtained by asymmetric encryption from the unencrypted file f°. Encryption is then based on a private decryption key associated with a public decryption key. In the latter case, the Aut authorization function shared between the owner 11 and the various other users allows said users to reconstruct the private decryption key of the file f1.
*Génération de droits d’accès permanents à un fichier chiffré pour un délégant (Exemple 1) *Generation of permanent access rights to an encrypted file for a delegator (Example 1)
La Figure 5 illustre des étapes d’un procédé d’échange de données entre un dispositif propriétaire (par exemple 11 ou 11 ’), un dispositif délégant (par exemple I2 ou l2’ou I2”) et une base de gestion d’accès DB, selon un exemple. Un objectif de ce procédé est de fournir au dispositif délégant I2 des droits d’accès (préférentiellement permanents) à un fichier f1 protégé. Le procédé peut être mis en oeuvre par une unité de traitement du propriétaire 11 , en association avec le délégant I2 et la base DB.Figure 5 illustrates the steps of a method for exchanging data between an owner device (for example 11 or 11'), a delegating device (for example I2 or 12' or I2”) and an access management base DB, according to an example. One objective of this method is to provide the delegating device I2 with access rights (preferably permanent) to a protected file f1. The method can be implemented by a processing unit of the owner 11, in association with the delegator I2 and the base DB.
Le fichier f1 est par exemple issu d’un procédé d’enregistrement de fichier tel que décrit ci-avant, illustré sur la Figure 4. De même, l’entrée d’accès ACL (U1 , f1 ) du propriétaire 11 est, de préférence, obtenue comme décrit ci-avant en relation à la Figure 4. The file f1 for example comes from a file recording process as described above, illustrated in Figure 4. Similarly, the access entry ACL (U1, f1) of the owner 11 is, from preferably, obtained as described above in relation to Figure 4.
Au cours du procédé de la Figure 5, le propriétaire 11 génère une nouvelle entrée d’accès ACL (U2, f1 ) publique associée au délégant I2. During the process of Figure 5, the owner 11 generates a new public ACL access entry (U2, f1 ) associated with the delegator I2.
Ainsi, une fois l’entrée d’accès ACL (U2, f1 ) générée et enregistrée dans la base DB, le délégant I2 pourra ultérieurement accéder au contenu du fichier fl sans avoir besoin d’une quelconque délégation, et sans avoir besoin que le propriétaire 11 soit connecté.Thus, once the ACL access entry (U2, f1 ) has been generated and saved in the DB base, the delegator I2 can subsequently access the content of the file fl without needing any delegation, and without needing the owner 11 is connected.
A une étape 4100, le délégant I2 transmet au propriétaire 11 sa valeur d’identification ID (U2, f1 ) pour le fichier fl. On rappelle que la fonction d’identification ID a, de préférence, été partagée entre toutes les organisations du réseau avant de commencer les échanges. At a step 4100, the delegator I2 transmits to the owner 11 its identification value ID (U2, f1) for the file fl. It is recalled that the ID identification function has preferably been shared between all the organizations of the network before starting the exchanges.
Dans le présent Exemple 1 , la fonction d’identification ID présente les mêmes propriétés déjà mentionnées ci-avant en relation à la Figure 2 et la transmission est réalisée de la même manière. En particulier : In this Example 1, the identification function ID has the same properties already mentioned above in relation to Figure 2 and the transmission is carried out in the same way. Especially :
- La valeur d’identification ID(U2, f 1 ) dépend de préférence de la clé privée U2 du délégant et est de préférence construite de sorte qu’un tiers ne peut pas obtenir ladite valeur d’identification sans connaître la clé privée U2. Ainsi, des utilisateurs tiers éventuellement malveillants ne peuvent pas deviner les clés privées des utilisateurs,
ou encore accéder de façon illicite au contenu du fichier fl , en interceptant les échanges ; - The identification value ID(U2, f 1 ) preferably depends on the private key U2 of the delegator and is preferably constructed so that a third party cannot obtain said identification value without knowing the private key U2. Thus, possibly malicious third-party users cannot guess users' private keys, or even accessing the content of the file fl in an illicit manner, by intercepting the exchanges;
- La valeur ID (U2, f1 ) est transmise à l’étape 4100 sur un canal hautement sécurisé, par exemple à l’aide de fonctions cryptographiques, pour assurer que seuls le propriétaire 11 et le délégant I2 connaissent ladite valeur. - The ID value (U2, f1) is transmitted at step 4100 over a highly secure channel, for example using cryptographic functions, to ensure that only the owner 11 and the delegator I2 know said value.
A une étape 4200, le propriétaire 11 obtient la valeur de sa propre entrée d’accès ACL (U1 , f1 ) pour le fichier fl , auprès de la base DB. Par exemple, le propriétaire 11 transmet une requête d’accès Req ACL et récupère en retour l’entrée d’accès ACL (U1 , f1 ). Cette valeur ACL (U1 , f 1 ) peut sinon avoir été préalablement enregistrée par le propriétaire 11 . At a step 4200, the owner 11 obtains the value of his own ACL access entry (U1, f1) for the file fl, from the database DB. For example, owner 11 transmits a Req ACL access request and in return retrieves the ACL access entry (U1 , f1 ). This value ACL (U1, f 1 ) may otherwise have been previously recorded by the owner 11 .
Ensuite, à une étape 4300, le propriétaire 11 obtient ou recalcule sa propre valeur d’identification ID (U1 , f1 ), puis recalcule la clé de déchiffrement sk pour le fichier fl . Dans le cas où la fonction d’autorisation Aut est une simple somme, la clé de déchiffrement sk peut être obtenue de manière simple : sk = ID (U1, f1 ) + ACL (U1, f1 ) Then, at a step 4300, the owner 11 obtains or recalculates its own identification value ID (U1 , f1 ), then recalculates the decryption key sk for the file fl . In the case where the authorization function Aut is a simple sum, the decryption key sk can be obtained in a simple way: sk = ID (U1, f1 ) + ACL (U1, f1 )
A une étape 4400, le propriétaire 11 calcule la valeur appropriée de la nouvelle entrée d’accès ACL (U2, f1 ) à générer pour le délégant I2, ici selon la formule suivante :At a step 4400, the owner 11 calculates the appropriate value of the new ACL access entry (U2, f1) to be generated for the delegator I2, here according to the following formula:
ACL (U2, f1 ) = sk - ID (U2, f1 ) ACL(U2, f1 ) = sk - ID(U2, f1 )
A une étape 4500, cette entrée d’accès ACL (U2, f1 ) est intégrée au sein de la liste d’accès ACL publique de la base DB de gestion d’accès. La liste d’accès ACL est publique ; il n’est pas nécessaire de chiffrer l’entrée d’accès ACL (U2, f1 ), puisque cette entrée prise isolément ne suffirait pas à un attaquant tiers pour calculer la clé de déchiffrement sk. At a step 4500, this ACL access entry (U2, f1) is integrated into the public ACL access list of the access management DB base. The ACL access list is public; it is not necessary to encrypt the ACL access entry (U2, f1 ), since this entry taken in isolation would not be sufficient for a third-party attacker to calculate the decryption key sk.
Une fois l’entrée d’accès ACL (U2, f1 ) intégrée à la liste d’accès ACL publique, le délégant I2 dispose de droits d’accès de niveau élevé pour le fichier fl . Celui-ci n’a pas besoin de communiquer avec le propriétaire 11 pour déchiffrer ultérieurement le fichier f1 . After the ACL access entry (U2, f1 ) is added to the public ACL access list, the I2 delegator has elevated permissions for the fl file. This one does not need to communicate with the owner 11 to later decrypt the file f1 .
Enfin, à une étape 4600 optionnelle, le propriétaire 11 peut confirmer au délégant I2 que des droits d’accès valides ont été intégrés à la liste ACL publique pour le délégant I2. A titre d’exemple, un message « OK » peut être transmis au délégant I2. En alternative, le délégant I2 peut effectuer lui-même une vérification de la liste ACL.
On notera que le dispositif délégant 12 pourrait obtenir des droits d’accès au fichier f1 auprès d’un autre délégant I2’, I2”... connaissant la valeur de la clé de déchiffrement sk, plutôt qu’auprès du propriétaire 11. En effet, ces délégants I2’, I2”... connaissent la valeur de la clé de déchiffrement sk, et seraient donc en mesure de générer une entrée d’accès ACL (U2, f1 ) valide après avoir reçu la valeur ID (U2, d1 ) depuis le délégant I2. Finally, at an optional step 4600, the owner 11 can confirm to the delegator I2 that valid access rights have been integrated into the public ACL list for the delegator I2. By way of example, an “OK” message can be transmitted to the delegator I2. Alternatively, the delegator I2 can perform an ACL check itself. It will be noted that the delegating device 12 could obtain access rights to the file f1 from another delegating party I2', I2”... knowing the value of the decryption key sk, rather than from the owner 11. Indeed, these delegators I2', I2”... know the value of the decryption key sk, and would therefore be able to generate a valid ACL access entry (U2, f1 ) after having received the ID value (U2, d1 ) from the delegator I2.
Si des révocations de droits doivent être mises en oeuvre, un moyen simple pour le propriétaire 11 de révoquer les droits d’accès accordés aux différents utilisateurs délégants ou délégués consisterait à générer une nouvelle clé de déchiffrement, et à rendre obsolète la précédente clé de déchiffrement. Les droits (entrées d’accès, délégations) obtenus à partir de la précédente clé de déchiffrement sont alors rendus également obsolètes. En effet, dès lors que la clé de déchiffrement est modifiée, les informations de la liste d’accès ACL avant modification de la clé deviennent inutiles pour les dispositifs du système. If rights revocations must be implemented, a simple way for the owner 11 to revoke the access rights granted to the various delegating or delegated users would consist in generating a new decryption key, and making the previous decryption key obsolete. . The rights (access entries, delegations) obtained from the previous decryption key are then also rendered obsolete. Indeed, as soon as the decryption key is modified, the information of the access list ACL before modification of the key becomes useless for the devices of the system.
* Accès à un fichier chiffré à l’aide de droits d’accès permanents (Exemple 1) * Accessing an encrypted file using permanent access rights (Example 1)
La Figure 6 illustre des étapes d’un procédé d’échange de données entre un dispositif délégant (par exemple I2 ou l2’ou I2”), une base de gestion d’accès DB et une mémoire de stockage M de fichiers, selon un exemple. Le procédé peut être mis en oeuvre par une unité de traitement du dispositif délégant I2. Le délégant I2 utilise des droits d’accès (préférentiellement permanents) qui lui ont été précédemment octroyés pour le fichier f1 chiffré, par exemple à l’issue du procédé décrit ci-avant et illustré sur la Figure 5. Figure 6 illustrates steps of a data exchange process between a delegating device (for example I2 or I2′ or I2”), an access management database DB and a storage memory M of files, according to a example. The method can be implemented by a processing unit of the delegating device I2. The delegator I2 uses access rights (preferably permanent) which were previously granted to it for the encrypted file f1, for example at the end of the process described above and illustrated in Figure 5.
L’accès au contenu du fichier par le délégant I2 repose sur les mêmes principes généraux que le procédé d’accès au fichier par le délégué I3 décrit ci-avant, en relation à la Figure 3. Pour pouvoir accéder au contenu du fichier f1 chiffré, le délégué I3 doit obtenir la valeur de la clé de déchiffrement sk qui verrouille le contenu du fichier f1. Access to the content of the file by the delegate I2 is based on the same general principles as the process for accessing the file by the delegate I3 described above, in relation to Figure 3. To be able to access the content of the encrypted file f1 , the I3 delegate must obtain the value of the decryption key sk which locks the contents of the file f1.
Toutefois, une distinction majeure est que le délégant I2 n’a pas besoin de recevoir une délégation de la part d’une quelconque organisation du réseau, avant d’accéder au contenu du fichier f1 chiffré. En effet, un accès lui a déjà été octroyé par le propriétaire 11.
D’abord, à une étape 5100, le délégant I2 récupère son entrée d’accès ACL (U2, f1 ) dans la liste d’accès ACL publique. Le délégant I2 décline par exemple son identité à l’aide de l’identifiant d(l2), et envoie une requête d’accès Req ACL. Le délégant I2 récupère en retour l’entrée d’accès ACL (U2, f1 ). However, a major distinction is that the delegator I2 does not need to receive a delegation from any network organization before accessing the content of the encrypted file f1. Indeed, access has already been granted to it by the owner 11. First, at a step 5100, the delegator I2 retrieves its ACL access entry (U2, f1 ) from the public ACL access list. The delegator I2 declines for example its identity using the identifier d(12), and sends an access request Req ACL. The delegator I2 retrieves in return the access entry ACL (U2, f1 ).
Puis à une étape 5200, le délégant I2 obtient sa propre valeur d’identification ID(U2, f1 ) associée au fichier f1 Le délégant I2 peut calculer cette valeur d’identification le cas échéant, s’il ne la possède pas en mémoire. Then at a step 5200, the delegator I2 obtains its own identification value ID(U2, f1) associated with the file f1 The delegator I2 can calculate this identification value if necessary, if it does not have it in memory.
A une étape 5300, le délégant I2 calcule ensuite la clé de déchiffrement sk pour le fichier f1 , en fonction des deux données suivantes : At a step 5300, the delegator I2 then calculates the decryption key sk for the file f1 , according to the following two data:
• la valeur d’identification ID(U2, f1 ) obtenue à l’issue de l’étape 5200 ; • the identification value ID(U2, f1) obtained at the end of step 5200;
• l’entrée d’accès ACL(U2, f1 ) lue à l’étape 5100 dans la base DB de gestion d’accès. • the access entry ACL(U2, f1 ) read in step 5100 in the access management database DB.
On rappelle que la clé de déchiffrement sk est ici construite comme suit : sk = Aut(ID(U2, f1 ), ACL(U2, f1 ), 0) We recall that the decryption key sk is here constructed as follows: sk = Aut(ID(U2, f1 ), ACL(U2, f1 ), 0)
Dans l’exemple simple d’une fonction autorisation Aut égale à la fonction somme, le délégant I2 obtient de manière très simple la clé de déchiffrement sk comme une somme des deux données susnommées. La clé de déchiffrement sk peut optionnellement être conservée en mémoire (de manière hautement sécurisée) à une étape 5400 pour un déchiffrement ultérieur du fichier. In the simple example of an authorization function Aut equal to the sum function, the delegator I2 obtains in a very simple way the decryption key sk as a sum of the two above-named data. The decryption key sk can optionally be stored in memory (in a highly secure manner) at a step 5400 for subsequent decryption of the file.
La confidentialité de la clé de déchiffrement sk est préservée, puisque seul le délégant I2 connaît sa clé privée U2 lui permettant de calculer sa propre valeur d’identification ID(U2, f1 ) associée au fichier f1 . The confidentiality of the decryption key sk is preserved, since only the delegator I2 knows its private key U2 allowing it to calculate its own identification value ID(U2, f1 ) associated with the file f1 .
A une étape 5500, le délégant I2 obtient le fichier f1 chiffré auprès d’une mémoire dans laquelle ce fichier est stocké, ici auprès de la mémoire M de stockage. A cet effet, le délégué I3 peut transmettre une requête de fichier Req f1 . At a step 5500, the delegator I2 obtains the encrypted file f1 from a memory in which this file is stored, here from the storage memory M. For this purpose, the I3 delegate can transmit a file request Req f1 .
Enfin, à une étape 5600, le délégant I2 décline la valeur de la clé de déchiffrement sk pour accéder au contenu du fichier, de préférence par déchiffrement symétrique.Finally, at a step 5600, the delegator I2 declines the value of the decryption key sk to access the content of the file, preferably by symmetrical decryption.
Dans le cas où un ou plusieurs serveurs de calcul (délégués I3, I3’...) ont travaillé sur le contenu du fichier f1 , le délégant I2 peut alors accéder au contenu modifié. If one or more computing servers (delegates I3, I3'...) have worked on the content of file f1 , the delegating agent I2 can then access the modified content.
L’ensemble des étapes décrites ci-avant, pour un accès au fichier f1 par un délégant I2, se transposent à l’identique pour un accès par le propriétaire 11 du fichier. Le
propriétaire 11 dispose ici des mêmes niveaux de droits d’accès que le délégant I2, et détient notamment sa propre entrée d’accès ACL (U1 , f1 ) pour le fichier f1. All of the steps described above, for access to the file f1 by a delegator I2, are transposed identically for access by the owner 11 of the file. the owner 11 has the same levels of access rights here as delegator I2, and in particular holds its own ACL access entry (U1, f1) for file f1.
*Exemple 2 - Gestion de droits d’accès avec un anonymat renforcé des entrées d’accès*Example 2 - Management of access rights with enhanced anonymity of access entries
Selon un protocole alternatif (Exemple 2) de gestion de droits d’accès à des fichiers chiffrés, une première fonction d’identification ID1 est utilisée pour la génération des valeurs d’identification et des valeurs de délégation, et une deuxième fonction d’identification ID2 distincte est utilisée pour la génération des entrées d’accès intégrées aux listes d’accès ACL. On décrit ci-après des procédés de traitement correspondant à un tel protocole. According to an alternative protocol (Example 2) for managing access rights to encrypted files, a first identification function ID1 is used for the generation of identification values and delegation values, and a second identification function Distinct ID2 is used for the generation of access entries built into ACL access lists. Treatment methods corresponding to such a protocol are described below.
Ce protocole alternatif reprend les principes décrits ci-avant en relation à un procédé de délégation de droits d’accès à un fichier f1 chiffré par un délégant I2 (Figure 2), en relation à un procédé d’accès à un fichier f1 chiffré par un délégué I3 à l’aide de la valeur de délégation (Figure 3), en relation à un procédé de chiffrement et d’enregistrement d’un nouveau fichier f1 par un propriétaire 11 (Figure A), en relation à un procédé de génération de droits d’accès par un propriétaire 11 (Figure 5) et en relation à un procédé d’accès à un fichier f1 chiffré par un délégant I2 à l’aide des droits d’accès (Figure 6). On conserve ci-après les mêmes références numériques pour désigner les étapes de ces divers procédés. This alternative protocol incorporates the principles described above in relation to a process for delegating access rights to a file f1 encrypted by a delegator I2 (Figure 2), in relation to a process for accessing a file f1 encrypted by a delegate I3 using the delegation value (Figure 3), in relation to a method of encryption and recording of a new file f1 by an owner 11 (Figure A), in relation to a method of generation of access rights by an owner 11 (FIG. 5) and in relation to a process for accessing a file f1 encrypted by a delegator I2 using access rights (FIG. 6). The same numerical references are kept below to designate the steps of these various processes.
Les différents procédés selon ce protocole alternatif peuvent être mis en oeuvre par le système 1 de partage de fichiers tel que décrit ci-avant, en relation à la Figure 1.The various methods according to this alternative protocol can be implemented by the file sharing system 1 as described above, in relation to Figure 1.
Une distinction majeure du protocole de l’Exemple 2, vis-à-vis du protocole de l’Exemple 1 , est l’utilisation de deux fonctions d’identification ID1 et ID2 distinctes. Les principales différences sont détaillées ci-après. A major distinction of the Example 2 protocol, vis-à-vis the Example 1 protocol, is the use of two distinct identification functions ID1 and ID2. The main differences are detailed below.
Au cours d’une délégation de droits d’accès (similaire à la Figure 2), à l’étape 1100, la valeur retournée par le délégué I3 au délégant I2 dépend de la valeur ID1 (U3, f1 ) obtenue avec la première fonction d’identification ID1 pour le fichier f1 et le délégué I3. During a delegation of access rights (similar to Figure 2), in step 1100, the value returned by the delegate I3 to the delegator I2 depends on the value ID1 (U3, f1 ) obtained with the first function identification ID1 for file f1 and delegate I3.
Par exemple, la première fonction d’identification ID1 se calcule comme suit : For example, the first identification function ID1 is calculated as follows:
ID1 (U3, f1 ) = sha256(concatenation (U3, f1,’ID1’))
De façon optionnelle et avantageuse, la valeur retournée par le délégué 13 au délégant 12 est randomisée à l’aide d’un nombre aléatoire k obtenu par le délégué 13. On note que la valeur du nombre aléatoire k n’est pas connue du délégant 12. ID1(U3, f1 ) = sha256(concatenation(U3, f1,'ID1')) Optionally and advantageously, the value returned by the delegate 13 to the delegator 12 is randomized using a random number k obtained by the delegate 13. It is noted that the value of the random number k is not known to the delegator 12.
Par exemple, la valeur retournée par le délégué 13 au délégant 12 est égale à : For example, the value returned by delegate 13 to delegator 12 is equal to:
ID1 (U3, f1 ) + k ID1 (U3, f1 ) + k
Le dispositif délégant I2 n’a alors pas accès à la valeur ID1 (U3, f1 ) isolée, puisque seul le dispositif délégué I3 connaît la valeur du nombre aléatoire k. The delegating device I2 then does not have access to the isolated value ID1 (U3, f1 ), since only the delegate device I3 knows the value of the random number k.
A l’étape 1200, le calcul de la valeur de délégation Del’ par le délégant I2 est modifié. La valeur de délégation Del’ est ici égale à une paire. Le premier élément de la paire Del’ est égal à la différence entre la valeur d’identification pour le délégant I2 et la valeur précédemment retournée par le délégué I3 : ID1 (U2, f1 ) - [ID1 (U3, f1 ) + k]. At step 1200, the calculation of the delegation value Del' by the delegator I2 is modified. The delegation value Del’ is here equal to a pair. The first element of the pair Del' is equal to the difference between the identification value for the delegator I2 and the value previously returned by the delegate I3: ID1 (U2, f1 ) - [ID1 (U3, f1 ) + k] .
Le deuxième élément de la paire Del’ est égal à une valeur obtenue avec la deuxième fonction d’identification ID2 pour le fichier f1 et le délégant I2 : ID2 (U2, f1). Ainsi, dans cet Exemple 2, le délégant I2 transmet une valeur qui permet ultérieurement au délégué I3 de savoir quelle entrée d’accès doit être requise dans la liste ACL(f1 ) auprès de la base DB. The second element of the pair Del' is equal to a value obtained with the second identification function ID2 for the file f1 and the delegator I2: ID2 (U2, f1). Thus, in this Example 2, the delegator I2 passes a value that later allows the delegate I3 to know which access entry must be required in the ACL(f1) list with the database DB.
Par exemple, la deuxième fonction d’identification ID2 se calcule comme suit : For example, the second identification function ID2 is calculated as follows:
ID2 (U2, f1 ) = sha256(concatenation(U2, f1,’ID2’)) ID2 (U2, f1 ) = sha256(concatenation(U2, f1,'ID2'))
Les valeurs ‘ID1 ’ et ‘ I D2’ sont des chaînes de caractères distinctes. De cette manière, les valeurs fournies par les deux fonctions d’identification ID1 et ID2 sont décorrélées et distinctes. The values 'ID1' and 'I D2' are separate character strings. In this way, the values provided by the two identification functions ID1 and ID2 are decorrelated and distinct.
De préférence, la transmission 1300 au dispositif délégué I3 de la délégation Del’ prend la forme d’un envoi de message signé sur un canal hautement sécurisé, de même que dans l’Exemple 1 . Preferably, transmission 1300 to delegate device I3 of delegation Del' takes the form of sending a signed message over a highly secure channel, as in Example 1.
Au cours d’un accès à un fichier f1 chiffré par un délégué I3 à l’aide de la délégation (similaire à la Figure 3), à l’étape 2100, le délégué I3 envoie une requête d’accès Req ACL à la base DB de gestion d’accès. Le délégué I3 associe à sa requête d’accès Req ACL le deuxième élément ID2(U2, f1 ) de la paire Del’ précédemment reçue. During an access to an encrypted file f1 by a delegate I3 using delegation (similar to Figure 3), at step 2100, the delegate I3 sends an access request Req ACL to the database Access management DB. The delegate I3 associates with its access request Req ACL the second element ID2(U2, f1 ) of the pair Del' previously received.
A l’étape 2200, le délégué I3 obtient en retour une valeur numérique ACL(ID2(U2, f1 )) de l’entrée d’accès propre au délégant I2 pour le fichier f1 .
Dans cet Exemple 2, l’entrée d’accès prend la forme ACL(ID2(U2, f1 )). Pour obtenir une entrée d’accès auprès de la base DB, il faut soumettre une valeur numérique obtenue à l’aide de la deuxième fonction d’identification ID2. La liste d’accès ACL demeure publique. At step 2200, the delegate I3 obtains in return a numerical value ACL(ID2(U2, f1)) of the access entry specific to the delegator I2 for the file f1. In this Example 2, the access entry takes the form ACL(ID2(U2, f1 )). To obtain an access entry from the database DB, it is necessary to submit a numerical value obtained using the second identification function ID2. The ACL access list remains public.
Pour le calcul de la clé de déchiffrement sk à l’étape 2400, le délégué 13 obtient ou recalcule la valeur d’identification ID1 (U3, f1 ) qui lui est propre pour le fichier d1. A partir de cette valeur et du nombre aléatoire k, le délégué I3 obtient la valeur ID1 (U2, f1 ). For the calculation of the decryption key sk in step 2400, the delegate 13 obtains or recalculates the identification value ID1 (U3, f1) which is specific to him for the file d1. From this value and the random number k, the delegate I3 obtains the value ID1 (U2, f1 ).
On rappelle que le nombre aléatoire k est connu du délégué I3. Ce nombre a par exemple été conservé de manière sécurisée dans une mémoire du dispositif délégué I3. La clé de déchiffrement sk est obtenue comme suit par le délégué I3 à l’étape 2400, sur la base des valeurs précédemment reçues : sk = Aut(ID1 (U2, fl ), ACL(ID2(U2, fl )), 0) It is recalled that the random number k is known to the delegate I3. This number has for example been stored securely in a memory of the delegate device I3. The decryption key sk is obtained as follows by the delegate I3 at step 2400, based on the values previously received: sk = Aut(ID1 (U2, fl ), ACL(ID2(U2, fl )), 0)
Dans un cas simple, la fonction d’autorisation Aut utilisée pour calculer la clé retourne une somme des variables prises en entrée : sk = ID1 (U2, f1 ) + ACL(ID2(U2, f1 )). In a simple case, the authorization function Aut used to calculate the key returns a sum of the variables taken as input: sk = ID1 (U2, f1 ) + ACL(ID2(U2, f1 )).
Le déchiffrement et l’accès au fichier fl se déroulent comme dans l’Exemple 1 . Decryption and access to the fl file proceeds as in Example 1 .
Au cours de la création et du chiffrement d’un nouveau fichier (similaire à la Figure A), le propriétaire 11 utilise la première fonction d’identification ID1 pour le calcul de la nouvelle clé de déchiffrement sk associée au fichier fl , et utilise la deuxième fonction d’identification ID2 pour le calcul de la nouvelle entrée d’accès qui lui est propre. During the creation and encryption of a new file (similar to Figure A), the owner 11 uses the first identification function ID1 for the calculation of the new decryption key sk associated with the file fl , and uses the second identification function ID2 for calculating the new access entry specific to it.
Ainsi, à l’étape 3200, le propriétaire 11 calcule non seulement un entier aléatoire correspondant à la valeur de sa future entrée d’accès, mais calcule également la valeur ID2 (U1 , f1 ). La valeur insérée dans la base DB à l’étape 3350 est égale à ACL(ID2(U1 , f1 )). Enfin, à l’étape 3500, la clé de déchiffrement sk est calculée de la même manière que ci-avant : sk = Aut (I D 1 (U 1 , fl ), ACL(ID2(U1, fl )), 0) Thus, at step 3200, the owner 11 not only calculates a random integer corresponding to the value of its future access entry, but also calculates the value ID2 (U1, f1). The value inserted into the database DB at step 3350 is equal to ACL(ID2(U1, f1)). Finally, at step 3500, the decryption key sk is calculated in the same way as above: sk = Aut (I D 1 (U 1 , fl ), ACL(ID2(U1, fl )), 0)
Il n’est pas souhaitable que le propriétaire 11 ajoute un entier aléatoire secret pour obtenir la valeur de la clé.
Au cours de la génération de nouveaux droits d’accès par un propriétaire 11 pour un délégant I2 (similaire à la Figure 5), il est préférable que la valeur d’identification communiquée par le délégant I2 soit randomisée à l’aide d’un nombre aléatoire k’. La valeur du nombre aléatoire k’ n’est pas connue du propriétaire 11. It is undesirable for owner 11 to add a secret random integer to get the key value. During the generation of new access rights by an owner 11 for a delegator I2 (similar to Figure 5), it is preferable that the identification value communicated by the delegator I2 be randomized using a random number k'. The value of the random number k' is not known to owner 11.
Ainsi, à l’étape 4100, le délégant I2 communique au propriétaire 11 la valeur suivante : [ID1 (U2, f1 ) + k’]. Thus, at step 4100, the delegator I2 communicates to the owner 11 the following value: [ID1 (U2, f1) + k′].
Ici, le propriétaire 11 n’a donc pas accès en clair à la valeur ID1 (U2, f1 ), contrairement à l’Exemple 1 où le propriétaire 11 reçoit la valeur ID(U2, f1 ) à l’étape 4100. Here, owner 11 therefore does not have clear access to the value ID1 (U2, f1 ), unlike in Example 1 where owner 11 receives the value ID(U2, f1 ) at step 4100.
A l’étape 4400, une différence avec l’Exemple 1 est que le propriétaire 11 ne calcule pas de manière autonome la nouvelle entrée d’accès ACL(ID2(U2, f1 )) qui doit être ajoutée à la liste d’accès ACL pour le délégant I2 et le fichier f1. Le calcul de ladite entrée d’accès est réalisé de manière distribuée entre le propriétaire 11 et le délégant I2. At step 4400, a difference from Example 1 is that the owner 11 does not autonomously calculate the new access entry ACL(ID2(U2, f1 )) which must be added to the access list ACL for delegator I2 and file f1. The calculation of said access entry is carried out in a distributed manner between the owner 11 and the delegator I2.
Dans cet Exemple 2, à une première sous-étape de l’étape 4400, le propriétaire 11 transmet au délégant I2 la valeur suivante : sk - [ID1 (U2, f 1 ) + k’] In this Example 2, at a first sub-step of step 4400, the owner 11 transmits to the delegator I2 the following value: sk - [ID1 (U2, f 1 ) + k']
Sur cette base, à une deuxième sous-étape de l’étape 4400, le délégant I2 (qui est le seul à connaître le nombre aléatoire k’) peut recalculer la valeur [sk - ID1 (U2, fl )].On this basis, at a second sub-step of step 4400, the delegator I2 (which is the only one to know the random number k') can recalculate the value [sk - ID1 (U2, fl )].
C’est donc le délégant 12 qui, à l’étape 4500, communique à la base DB la valeur de l’entrée d’accès ACL(ID2(U2, f1 )) qui lui sera associée dans la liste ACL pour le fichier f1 : It is therefore the delegator 12 which, at step 4500, communicates to the base DB the value of the access entry ACL(ID2(U2, f1 )) which will be associated with it in the ACL list for the file f1 :
ACL(ID2(U2, f 1 )) = sk - ID1 (U2, f 1 ) ACL(ID2(U2, f 1 )) = sk - ID1 (U2, f 1 )
Enfin, les étapes d’un accès au fichier f1 chiffré par le délégant I2 à l’aide de droits d’accès issus de la base DB (similaire à la Figure 6) sont similaires à l’Exemple 1. Le délégant I2 doit soumettre sa valeur d’identification I D1 (U2,f 1 ) à la base DB de sorte à obtenir l’entrée d’accès ACL(ID2(U2, f1 )). Par construction de la valeur de l’entrée d’accès à l’étape 4500 précédente, le délégant I2 est en mesure de calculer la clé de déchiffrement sk sans être connecté au réseau simultanément au propriétaire 11.Finally, the steps for accessing the encrypted file f1 by the delegator I2 using access rights from the database DB (similar to Figure 6) are similar to Example 1. The delegator I2 must submit its identification value I D1 (U2, f 1 ) to the base DB so as to obtain the access entry ACL(ID2(U2, f1 )). By constructing the value of the access entry in the previous step 4500, the delegator I2 is able to calculate the decryption key sk without being connected to the network simultaneously with the owner 11.
Vis-à-vis de l’Exemple 1 , un premier avantage du protocole selon l’Exemple 2 est que les entrées d’accès sont anonymisées. A partir de la valeur numérique d’une entrée d’accès publique, par exemple ACL(ID2(U2,f1 )), présente dans la liste d’accès ACL(f1 ), un tiers ne peut pas remonter à l’identité du dispositif I2. La valeur de l’entrée d’accès est obtenue auprès de la base DB non pas en fournissant un identifiant du dispositif I2,
mais en fournissant la valeur numérique ID2(U2,f1 ) obtenue avec la deuxième fonction d’identification ID2. With respect to Example 1, a first advantage of the protocol according to Example 2 is that the access entries are anonymized. From the numerical value of a public access entry, for example ACL(ID2(U2,f1 )), present in the access list ACL(f1 ), a third party cannot trace the identity of the device I2. The value of the access entry is obtained from the database DB not by providing an identifier of the device I2, but by supplying the numerical value ID2(U2,f1) obtained with the second identification function ID2.
Un deuxième avantage du protocole selon l’Exemple 2 est de masquer les valeurs de la première fonction d’identification ID1 associées aux différents dispositifs, avec une randomisation des valeurs de la première fonction d’identification ID1 lors des échanges. Ainsi, un attaquant tiers qui intercepterait les communications de données ne pourrait pas avoir accès en clair aux valeurs de la première fonction d’identification ID1 pour le délégant I2 ou pour le délégué I3. La sécurité des échanges de données est ainsi renforcée.
A second advantage of the protocol according to Example 2 is to mask the values of the first identification function ID1 associated with the different devices, with a randomization of the values of the first identification function ID1 during the exchanges. Thus, a third-party attacker who would intercept data communications could not have clear access to the values of the first identification function ID1 for the delegator I2 or for the delegate I3. The security of data exchanges is thus reinforced.