FR3146220A1 - METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT - Google Patents
METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT Download PDFInfo
- Publication number
- FR3146220A1 FR3146220A1 FR2301721A FR2301721A FR3146220A1 FR 3146220 A1 FR3146220 A1 FR 3146220A1 FR 2301721 A FR2301721 A FR 2301721A FR 2301721 A FR2301721 A FR 2301721A FR 3146220 A1 FR3146220 A1 FR 3146220A1
- Authority
- FR
- France
- Prior art keywords
- encrypted
- online storage
- message
- relay server
- pseudo
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 239000012634 fragment Substances 0.000 claims abstract description 70
- 230000009466 transformation Effects 0.000 claims abstract description 8
- 230000005540 biological transmission Effects 0.000 claims abstract description 7
- 239000006185 dispersion Substances 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 55
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/76—Proxy, i.e. using intermediary entity to perform cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
La présente invention concerne un procédé et un système de stockage sécurisé zéro connaissance géré par un serveur relai connecté à une pluralité de services de stockage en ligne, le fichier à stocker étant divisé en une pluralité de fragments sauvegardés sur la pluralité de services de stockage en ligne. Le fichier à sauvegarder étant soumis à une fonction de transformation tout ou rien et à un chiffrement totalement homomorphe au moins partiel avant sa transmission pour sauvegarde au serveur relai. The present invention relates to a method and system for secure zero-knowledge storage managed by a relay server connected to a plurality of online storage services, the file to be stored being divided into a plurality of fragments saved on the plurality of online storage services. The file to be saved is subjected to an all-or-nothing transformation function and to at least partial fully homomorphic encryption before its transmission for backup to the relay server.
Description
La présente invention concerne le domaine du stockage de fichiers informatiques en ligne auprès d’une pluralité de services de stockage dans un contexte où la sécurité du service n’implique pas de relation de confiance entre les différents acteurs.The present invention relates to the field of storing computer files online with a plurality of storage services in a context where the security of the service does not imply a relationship of trust between the different actors.
Les services de stockage en ligne de fichiers informatiques se sont développés ces dernières années. Les grands noms de l’informatique, proposent presque tous leur propre service. Aux côtés de ses grands acteurs, de multiples sociétés ont également développé leur propre service à destination tant des particuliers que des entreprises. Ces dernières sont nombreuses aujourd’hui à adopter ces services pour sauvegarder leurs données.Online computer file storage services have grown in recent years. The big names in IT almost all offer their own service. Alongside these major players, many companies have also developed their own service for both individuals and businesses. Many of the latter are now adopting these services to save their data.
L’utilisation d’un service de stockage en ligne permet en effet d’éviter la mise en place et la gestion au quotidien d’un stockage, de ses sauvegardes et de sa sécurité. Il permet également de mutualiser les coûts du service entre les différents clients.Using an online storage service allows you to avoid setting up and managing storage, its backups and its security on a daily basis. It also allows you to share the costs of the service between different customers.
La sécurité informatique est également un sujet de plus en plus sensible. Les exemples de piratage d’entreprises et de services en ligne se multiplient. Même sans intention malveillante, un exemple récent d’incendie dans un centre de données d’un important acteur de services en ligne a pu provoquer la perte de leurs données pour un nombre important de ses clients.IT security is also an increasingly sensitive topic. Examples of hacking of companies and online services are increasing. Even without malicious intent, a recent example of a fire in a data center of a major online services player could have caused the loss of data for a significant number of its customers.
Dans ce contexte, l’amélioration de la sécurité et de la fiabilité des services de stockage en ligne est un souci constant.In this context, improving the security and reliability of online storage services is a constant concern.
L’invention se place dans le contexte où un service sécurisé de stockage en ligne est géré par un serveur relai (proxy serveren anglais) qui fait le lien entre l’utilisateur du service et une pluralité de services de stockage en ligne. Le terme serveur est ici utilisé de manière fonctionnelle et peut référer à diverses implémentations physiques du serveur relai comprenant un ou plusieurs serveurs physiques. Le terme utilisateur désigne un terminal informatique utilisé par l’utilisateur humain pour accéder au service. Lorsque nous utilisons ce terme d’utilisateur dans la description des procédés proposés, il s’agit d’actions effectuées par le terminal de l’utilisateur sous son contrôle et non pas d’actions faites par l’utilisateur humain.The invention is placed in the context where a secure online storage service is managed by a proxy server which provides the link between the user of the service and a plurality of online storage services. The term server is used here in a functional manner and can refer to various physical implementations of the relay server comprising one or more physical servers. The term user designates a computer terminal used by the human user to access the service. When we use this term user in the description of the proposed methods, it refers to actions performed by the user's terminal under his control and not to actions performed by the human user.
L’utilisateur du service sécurisé de stockage en ligne ne communique qu’avec le serveur relai et n’a pas connaissances des différents services de stockage en ligne utilisés. De même, chaque service de stockage en ligne ne communique qu’avec le serveur relai et n’a pas connaissance des autres services en ligne ni de l’utilisateur.The user of the secure online storage service communicates only with the relay server and has no knowledge of the different online storage services used. Similarly, each online storage service communicates only with the relay server and has no knowledge of the other online services or the user.
Le fonctionnement général du service sécurisé de stockage en ligne est illustré par la
The general operation of the secure online storage service is illustrated by the
Lorsque l’utilisateur 101 veut retrouver le fichier stocké, il soumet une requête en téléchargement (downloaden anglais) au serveur relai 102. Le serveur relai 102 requiert alors les différents fragments 107, 108, 109 aux différents services de stockage en ligne 103, 104, 105. A partir de ces fragments 107, 108, 109, il reconstitue le fichier initial 106 et le transmet à l’utilisateur 101.When the user 101 wants to find the stored file, he submits a download request to the relay server 102. The relay server 102 then requests the different fragments 107, 108, 109 from the different online storage services 103, 104, 105. From these fragments 107, 108, 109, it reconstitutes the initial file 106 and transmits it to the user 101.
La figure illustre trois services de stockage en ligne. Cette figure n’est qu’un exemple et le nombre de services en ligne utilisé par un mode de réalisation particulier de l’invention peut être quelconque avec un minimum de deux services. De manière similaire, la figure illustre la sauvegarde d’un seul fragment par service de stockage en ligne. Dans la pratique, plusieurs fragments peuvent être stockés sur un même service de stockage en ligne.The figure illustrates three online storage services. This figure is only an example and the number of online services used by a particular embodiment of the invention can be any with a minimum of two services. Similarly, the figure illustrates the backup of a single fragment per online storage service. In practice, multiple fragments can be stored on a single online storage service.
Avantageusement, ces fragments comportent un certain degré de redondance pour permettre la reconstitution du fichier initial à partir seulement d’un sous-ensemble de l’intégralité des fragments disponibles pour ce fichier. Cette propriété apporte la résilience du système face à la perte potentielle ou la compromission d’un service de stockage en ligne.Advantageously, these fragments include a certain degree of redundancy to allow the reconstruction of the initial file from only a subset of the entirety of the fragments available for this file. This property provides the resilience of the system in the face of the potential loss or compromise of an online storage service.
Avantageusement, les communications entre l’utilisateur et le serveur relai ainsi qu’entre le serveur relai et les services de stockage en ligne utilisent des tunnels chiffrés permettant de garantir la confidentialité des échanges. Chaque acteur du système est authentifié auprès des acteurs avec lesquels il communique. L’utilisateur, en particulier, doit être authentifié auprès du système qui lui délivre un jeton d’accès qui peut être vérifié par le serveur relai et/ou les services de stockage en ligne.Advantageously, communications between the user and the relay server as well as between the relay server and the online storage services use encrypted tunnels to ensure the confidentiality of the exchanges. Each actor in the system is authenticated with the actors with whom it communicates. The user, in particular, must be authenticated with the system which issues him an access token that can be verified by the relay server and/or the online storage services.
L’utilisateur dispose également d’une clé de signature lui permettant de signer ses messages. Cette signature peut être vérifiée, et donc les messages authentifiés comme provenant bien de l’utilisateur par le serveur relai et les services de stockage en ligne. Cette clé de signature peut être symétrique ou asymétrique.The user also has a signature key that allows him to sign his messages. This signature can be verified, and therefore the messages authenticated as coming from the user by the relay server and online storage services. This signature key can be symmetric or asymmetric.
Avantageusement, la fonction de dispersion permet de garantir que la connaissance d’un seul fragment ne permet pas à un service de stockage en ligne de reconstituer le fichier initial. Dans le cas où le système utilise de la redondance et où plusieurs fragments sont stockés sur un même service de stockage en ligne, le système assure que le nombre de fragments stockés sur un même service de stockage en ligne ne permet pas de reconstituer le fichier.Advantageously, the dispersion function ensures that knowledge of a single fragment does not allow an online storage service to reconstruct the initial file. In the case where the system uses redundancy and where several fragments are stored on the same online storage service, the system ensures that the number of fragments stored on the same online storage service does not allow the file to be reconstructed.
En termes de sécurité, il est avantageux de proposer un service de stockage dit zéro confiance entre les différents acteurs. Ainsi la compromission de l’un des acteurs ne compromet pas la sécurité de la solution. Dans le cas présent, nous nous intéressons à la confidentialité des échanges et aux moyens mis en œuvre pour assurer que le serveur relai et les services de stockage ne puissent pas accéder à l’information sauvegardée par l’utilisateur. Cette confidentialité doit être assurée sans requérir la gestion de clés dans le temps par l’utilisateur. Pour ce faire, cinq contraintes sont imposées au système.In terms of security, it is advantageous to offer a so-called zero-trust storage service between the different actors. Thus, the compromise of one of the actors does not compromise the security of the solution. In this case, we are interested in the confidentiality of the exchanges and the means implemented to ensure that the relay server and the storage services cannot access the information saved by the user. This confidentiality must be ensured without requiring the management of keys over time by the user. To do this, five constraints are imposed on the system.
Selon une première contrainte, l’utilisateur ne doit pas devoir gérer de clés persistantes.According to a first constraint, the user must not have to manage persistent keys.
Selon une seconde contrainte, l’utilisateur ne doit pas avoir la connaissance des services de stockage en ligne.According to a second constraint, the user must not have knowledge of online storage services.
Selon une troisième contrainte, les services de stockage en ligne ne doivent pas pouvoir acquérir de connaissance, même partielle du contenu original stocké par l’utilisateur.According to a third constraint, online storage services must not be able to acquire knowledge, even partial, of the original content stored by the user.
Selon une quatrième contrainte, le serveur relai ne doit pas être en mesure d’acquérir la moindre information sur le contenu original de l’utilisateur.A fourth constraint is that the relay server must not be able to acquire any information about the user's original content.
Selon une cinquième contrainte, l’utilisateur ne doit avoir besoin que d’une requête pour obtenir une réponse valide du service.A fifth constraint is that the user should only need one request to get a valid response from the service.
L’invention vise à offrir un service sécurisé de stockage en ligne sur la base d’un serveur relai et d’une pluralité de services de stockage en ligne respectant ces contraintes.The invention aims to offer a secure online storage service based on a relay server and a plurality of online storage services respecting these constraints.
Selon un aspect de l’invention il est proposé un procédé de stockage sécurisé d’un fichier original caractérisé en ce qu’il comprend les étapes suivantes pour téléverser un fichier original:
- réception du fichier original, transmis par un dispositif utilisateur, par un serveur relai connecté à une pluralité de services de stockage en ligne ;
- application d’une fonction de dispersion par le serveur relai pour générer une pluralité de fragments à partir du fichier original reçu ;
- transmission pour sauvegarde par le serveur relai de chaque fragment à un service de stockage en ligne parmi la pluralité de service de stockage en ligne ;
caractérisé en ce que :
- le fichier original est transformé en pseudo-message par le dispositif utilisateur à l’aide d’une fonction de transformation tout ou rien ;
- le pseudo-message est chiffré, au moins en partie, par le dispositif utilisateur à l’aide d’une clés secrète partagée avec la pluralité de service de stockage en ligne, le chiffrement étant homomorphe, le fichier original reçu par le serveur relai étant le pseudo-message chiffré ;
- la fonction de dispersion est appliquée sur le pseudo-message chiffré et génère des fragments chiffrés ;
- les fragments chiffrés sont déchiffrés par les services de stockage en ligne avant stockage.According to one aspect of the invention, a method for securely storing an original file is provided, characterized in that it comprises the following steps for uploading an original file:
- reception of the original file, transmitted by a user device, by a relay server connected to a plurality of online storage services;
- application of a dispersion function by the relay server to generate a plurality of fragments from the original file received;
- transmission for backup by the relay server of each fragment to an online storage service among the plurality of online storage services;
characterized in that:
- the original file is transformed into a pseudo-message by the user device using an all-or-nothing transformation function;
- the pseudo-message is encrypted, at least in part, by the user device using a secret key shared with the plurality of online storage services, the encryption being homomorphic, the original file received by the relay server being the encrypted pseudo-message;
- the dispersion function is applied to the encrypted pseudo-message and generates encrypted fragments;
- encrypted fragments are decrypted by online storage services before storage.
Un mode de réalisation est caractérisé en ce que :
- la clé secrète est partagée entre le dispositif utilisateur et les services de stockage en ligne par un protocole d’échange de clé sécurisé.One embodiment is characterized in that:
- the secret key is shared between the user device and the online storage services by a secure key exchange protocol.
Un mode de réalisation est caractérisé en ce que :One embodiment is characterized in that:
- le protocole d’échange de clé sécurisé est le protocole de Diffie-Hellman.- the secure key exchange protocol is the Diffie-Hellman protocol.
Un mode de réalisation est caractérisé en ce que :
- le protocole d’échange de clé sécurisé est le protocole d’échange de clé sécurisé.
Un mode de réalisation est caractérisé en ce que :
- le protocole de Diffie-Hellman est basé sur une première clé asymétrique générée par le dispositif utilisateur et une seconde clé asymétrique partagée par les services de stockage en ligne.One embodiment is characterized in that:
- Secure Key Exchange Protocol is the Secure Key Exchange Protocol.
One embodiment is characterized in that:
- the Diffie-Hellman protocol is based on a first asymmetric key generated by the user device and a second asymmetric key shared by the online storage services.
Un mode de réalisation est caractérisé en ce que :
- une nouvelle première clé asymétrique est générée avant chaque échange par le dispositif utilisateur.One embodiment is characterized in that:
- a new first asymmetric key is generated before each exchange by the user device.
Un mode de réalisation est caractérisé en ce qu’il comporte en outre les étape suivantes pour le téléchargement :
- chiffrement des fragments par les services de stockage en ligne à l’aide d’une clé secrète partagée avec le dispositif utilisateur;
- réception par le serveur relai des fragments chiffrés ;
- application de la fonction de dispersion inverse par le serveur relai sur les fragments chiffrés pour générer un pseudo-message chiffré ;
- transmission du pseudo-message chiffré au dispositif utilisateur ;
- déchiffrement du pseudo-message chiffré par le dispositif utilisateur ;
- application de la fonction inverse de transformation tout ou rien par le dispositif utilisateur pour retrouver le fichier original.One embodiment is characterized in that it further comprises the following steps for downloading:
- encryption of fragments by online storage services using a secret key shared with the user device;
- reception by the relay server of encrypted fragments;
- application of the inverse dispersion function by the relay server on the encrypted fragments to generate a pseudo-encrypted message;
- transmission of the encrypted pseudo-message to the user device;
- decryption of the encrypted pseudo-message by the user device;
- application of the inverse all-or-nothing transformation function by the user device to find the original file.
Selon un autre aspect de l’invention il est proposé un programme d’ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l’invention lorsque ledit programme est exécuté sur un ordinateur.According to another aspect of the invention, a computer program is provided comprising instructions adapted to the implementation of each of the steps of the method according to the invention when said program is executed on a computer.
Selon un autre aspect de l’invention il est proposé un moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé selon l’invention.According to another aspect of the invention, there is provided a means of storing information, removable or not, partially or totally readable by a computer or a microprocessor comprising code instructions of a computer program for the execution of each of the steps of the method according to the invention.
Selon un autre aspect de l’invention il est proposé un système comprenant un dispositif utilisateur, un serveur relai et une pluralité de service de stockage en ligne configurés pour mettre en œuvre un procédé selon l’invention.According to another aspect of the invention, there is provided a system comprising a user device, a relay server and a plurality of online storage services configured to implement a method according to the invention.
Selon un autre aspect de l’invention il est proposé un programme d’ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l’invention lorsque ledit programme est exécuté sur un ordinateur.
According to another aspect of the invention, a computer program is provided comprising instructions adapted to the implementation of each of the steps of the method according to the invention when said program is executed on a computer.
Selon un autre aspect de l’invention il est proposé un moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé selon l’invention.
According to another aspect of the invention, there is provided a means of storing information, removable or not, partially or totally readable by a computer or a microprocessor comprising code instructions of a computer program for the execution of each of the steps of the method according to the invention.
Selon un autre aspect de l’invention il est proposé un système comprenant un dispositif utilisateur, un serveur relai et une pluralité de service de stockage en ligne configurés pour mettre en œuvre un procédé selon l’invention.
According to another aspect of the invention there is provided a system comprising a user device, a relay server and a plurality of online storage services configured to implement a method according to the invention.
Aux dessins annexés, donnés à titre d'exemples non limitatifs :
In the attached drawings, given as non-limiting examples:
la
les figures 2a et 2b illustrent le fonctionnement général du téléversement et du téléchargement d’un fichier ;Figures 2a and 2b illustrate the general operation of uploading and downloading a file;
les figures 3a et 3b illustrent un mode de réalisation de l’invention ;Figures 3a and 3b illustrate one embodiment of the invention;
la
Les figures 2a et 2b illustrent le fonctionnement général du téléversement,
Sur ces figures un seul service de stockage en ligne 203 est représenté. Le même fonctionnement s’applique à la pluralité de services de stockage en ligne connectés au serveur relai 202.In these figures only one online storage service 203 is shown. The same operation applies to the plurality of online storage services connected to the relay server 202.
Le téléversement du fichier est illustré par la
Le serveur relai applique la fonction de dispersion pour générer les fragments à partir du fichier original. Le fonctionnement de la fonction de dispersion n’est pas le sujet du présent document. La figure illustre un fragment 205 de cette pluralité de fragments. Le fragment 205 est transmis au service de stockage en ligne 203 qui lui attribue un identifiant de fragment Id_f 206 et mémorise le lien 208 entre le fragment 205 et son identifiant Id_f 206. Le service de stockage en ligne transmet cet identifiant de fragment 206 au serveur relai qui mémorise l’association 209 entre l’identifiant du fichier original Id_o et l’identifiant de fragment Id_f. Les autres fragments générés par le serveur relai reçoivent le même traitement non représenté sur la figure.The relay server applies the dispersion function to generate the fragments from the original file. The operation of the dispersion function is not the subject of this document. The figure illustrates a fragment 205 of this plurality of fragments. The fragment 205 is transmitted to the online storage service 203 which assigns it a fragment identifier Id_f 206 and stores the link 208 between the fragment 205 and its identifier Id_f 206. The online storage service transmits this fragment identifier 206 to the relay server which stores the association 209 between the identifier of the original file Id_o and the fragment identifier Id_f. The other fragments generated by the relay server receive the same processing not shown in the figure.
Le téléchargement illustré par la figure 2b présente un fonctionnement symétrique. L’utilisateur 201 transmet au serveur relai 202 une requête comprenant l’identifiant Id_o 207 du fichier qu’il souhaite télécharger. Le serveur relai retrouve l’identifiant de fragment associé Id_f qu’il utilise pour construire une requête comprenant cet identifiant qu’il transmet au service de stockage en ligne 203. A l’aide de l’identifiant de fragment Id_f, le service de stockage en ligne 203 retrouve le fragment associé 205 et le transmet au serveur relai 202. Ce dernier, quand il a récupéré la totalité des fragments, ou au moins un nombre suffisant si la redondance est mise en œuvre, reconstruit le fichier original 204 en utilisant la fonction inverse de la fonction de dispersion. Le serveur relai peut alors transmettre le fichier original 204 ainsi obtenu à l’utilisateur.The download illustrated in Figure 2b has a symmetrical operation. The user 201 transmits to the relay server 202 a request comprising the identifier Id_o 207 of the file that he wishes to download. The relay server finds the associated fragment identifier Id_f that it uses to construct a request comprising this identifier that it transmits to the online storage service 203. Using the fragment identifier Id_f, the online storage service 203 finds the associated fragment 205 and transmits it to the relay server 202. The latter, when it has recovered all of the fragments, or at least a sufficient number if redundancy is implemented, reconstructs the original file 204 using the inverse function of the dispersion function. The relay server can then transmit the original file 204 thus obtained to the user.
Les solutions proposées dans ce document pour permettre de répondre aux contraintes de sécurité exposées sont basée sur l’utilisation d’outils cryptographiques. Parmi ces outils nous citerons les fonctions suivantes :The solutions proposed in this document to meet the security constraints outlined are based on the use of cryptographic tools. Among these tools we will cite the following functions:
La fonction KEYGEN qui permet de générer une clé cryptographique. La clé générée peut être une clé symétrique ou asymétrique.The KEYGEN function which allows to generate a cryptographic key. The generated key can be a symmetric or asymmetric key.
Une clé symétrique est une clé partagée entre deux acteurs qui permet le chiffrement d’un contenu pour obtenir un contenu chiffré. La même clé est nécessaire pour déchiffrer le contenu chiffré et retrouver le contenu d’origine. Cette clé constitue un secret partagé entre l’émetteur du contenu chiffré qui procède au chiffrement et le récepteur du contenu chiffré qui procède au déchiffrement.A symmetric key is a key shared between two parties that allows the encryption of content to obtain encrypted content. The same key is needed to decrypt the encrypted content and retrieve the original content. This key constitutes a secret shared between the sender of the encrypted content who performs the encryption and the receiver of the encrypted content who performs the decryption.
Une clé asymétrique est composée d’une paire de clés, une clé dite privée et une clé dite publique. Pour échanger du contenu chiffré entre deux acteurs, chacun possède sa propre clé asymétrique. Chaque acteur garde secret sa clé privée et diffuse sa clé publique. Dans ce cas, l’émetteur qui procède au chiffrement d’un contenu chiffre celui-ci à l’aide de la clé publique du récepteur. Ce dernier déchiffre le contenu à l’aide de sa propre clé privée .An asymmetric key is composed of a pair of keys, a so-called private key and a so-called public key. To exchange encrypted content between two actors, each has their own asymmetric key. Each actor keeps their private key secret and broadcasts their public key. In this case, the sender who encrypts content encrypts it using the receiver's public key. The latter decrypts the content using their own private key.
La fonction ENC(k, m) représente le chiffrement d’un contenu ‘m’ à l’aide de la clé ‘k’. Il s’agit ici d’une clé symétrique, typiquement issue de la fonction KEYGEN. Une clé asymétrique peut également être utilisée.The ENC(k, m) function represents the encryption of a content ‘m’ using the key ‘k’. This is a symmetric key, typically from the KEYGEN function. An asymmetric key can also be used.
La fonction DEC(k, c) représente le déchiffrement d’un contenu chiffré ‘c’ à l’aide de la clé ‘k’. C’est la fonction inverse de la fonction ENC(k, m).The function DEC(k, c) represents the decryption of an encrypted content ‘c’ using the key ‘k’. It is the inverse function of the function ENC(k, m).
La fonction SIGN(k, m) produit une signature cryptographique du contenu ‘m’ à l’aide de la clé ‘k’. Cette fonction ne chiffre pas le contenu et le laisse lisible. L’émetteur d’un contenu ‘m’ peut signer ce contenu à l’aide de cette fonction. Il transmet alors le contenu ‘m’ et la signature ainsi calculée. Le récepteur du contenu ‘m’ peut vérifier la signature, par exemple à l’aide de la même fonction et de la même clé ou des fonctions de vérification selon le mode de réalisation. Si la signature ainsi obtenue correspond à la signature reçue, cela signifie que le contenu ‘c’ n’a pas été altéré et qu’il a bien été signé par le possesseur de la clé ‘k’. Dans le mode de réalisation privilégié, la clé de signature est différente de la clé utilisée pour chiffrer/déchiffrer les messages.The function SIGN(k, m) produces a cryptographic signature of the content ‘m’ using the key ‘k’. This function does not encrypt the content and leaves it readable. The sender of a content ‘m’ can sign this content using this function. He then transmits the content ‘m’ and the signature thus calculated. The receiver of the content ‘m’ can verify the signature, for example using the same function and the same key or the verification functions according to the embodiment. If the signature thus obtained corresponds to the signature received, this means that the content ‘c’ has not been altered and that it has indeed been signed by the owner of the key ‘k’. In the preferred embodiment, the signature key is different from the key used to encrypt/decrypt the messages.
La fonction HASH(m) est une fonction mathématique non inversible qui produit à partir d’un contenu ‘m’ de longueur quelconque une valeur de taille fixe. La probabilité que deux contenus différents m1 et m2 produise la même valeur de hash est suffisamment faible pour que l’on considère la fonction HASH comme permettant de vérifier l’intégrité du contenu ‘m’.The HASH(m) function is a non-invertible mathematical function that produces a fixed-size value from a content ‘m’ of any length. The probability that two different contents m1 and m2 produce the same hash value is low enough that the HASH function is considered to be a way to verify the integrity of the content ‘m’.
La fonction AONT (pourAll Or Nothing Transformen anglais) est une fonction de transformation tout ou rien, c’est-à-dire sans clé, inversible, aléatoire ayant la propriété d’être très difficilement inversible si l’on ne connaît pas l’intégralité de son résultat. Cette fonction prend en entrée un message et génère un pseudo-message. L’opération inverse permettant de retrouver le message original à partir du pseudo-message nécessite de connaître l’intégralité du pseudo-message. Un simple fragment du pseudo-message ne permet pas de reconstruire, même partiellement, le message d’origine. Différents exemples de telles fonctions sont connus de l’homme du métier, dont la fonction décrite par Ronald L. Rivest dans son article de 1997 intitulé « All-Or-Nothing Encryption and The Package Transform ». La transformation proposée par Rivest consiste à prétraiter le texte en clair en effectuant un XOR de chaque bloc de texte en clair avec l'index de ce bloc chiffré par une clé choisie au hasard, puis en ajoutant un bloc supplémentaire calculé en effectuant un XOR de cette clé aléatoire et des hashs de tous les blocs prétraités. Le résultat de ce prétraitement est appelé le pseudo-message et sert d'entrée à l'algorithme de chiffrement. Pour annuler la transformation du paquet, il faut hacher tous les blocs du pseudo-message sauf le dernier, faire un XOR de tous les hachages avec le dernier bloc pour récupérer la clé aléatoire, puis utiliser la clé aléatoire pour reconvertir chaque bloc prétraité en son bloc original en clair. De cette façon, il est impossible de récupérer le texte en clair original sans avoir accès à l’intégralité des blocs du pseudo-message. D’autres fonctions AONT ont été proposées depuis. Dans le cadre de ce document, toute fonction AONT peut être utilisée indifféremment.The AONT function (for All Or Nothing Transform in English) is an all-or-nothing transformation function, i.e. without a key, invertible, random, having the property of being very difficult to invert if the entirety of its result is not known. This function takes a message as input and generates a pseudo-message. The inverse operation allowing the original message to be found from the pseudo-message requires knowing the entirety of the pseudo-message. A simple fragment of the pseudo-message does not allow the original message to be reconstructed, even partially. Various examples of such functions are known to those skilled in the art, including the function described by Ronald L. Rivest in his 1997 article entitled "All-Or-Nothing Encryption and The Package Transform". The transformation proposed by Rivest consists of preprocessing the plaintext by performing an XOR of each plaintext block with the index of this block encrypted by a randomly chosen key, then adding an additional block calculated by performing an XOR of this random key and the hashes of all the preprocessed blocks. The result of this preprocessing is called the pseudo-message and serves as input to the encryption algorithm. To undo the transformation of the packet, one must hash all the blocks of the pseudo-message except the last one, perform an XOR of all the hashes with the last block to recover the random key, then use the random key to convert each preprocessed block back to its original plaintext block. In this way, it is impossible to recover the original plaintext without having access to all the blocks of the pseudo-message. Other AONT functions have been proposed since. For the purposes of this document, any AONT function can be used interchangeably.
La fonction HEenc(k, m) est une fonction de chiffrement homomorphe d’un message m par une clé k ayant la propriété suivante par rapport à une loi définie par deux opérateurs (
HEenc(k, m1)
La fonction HEenc(k, m) est dite totalement homomorphe si la propriété d’homomorphisme est valable vis-à-vis de deux lois
La fonction Diffie Hellman DH-Key permet un échange de clés entre deux agents, nommés par convention Alice et Bob, tel que cet échange permet aux deux agents de partager un secret sans que les échanges ne révèlent ce secret. Si Alice dispose d’une clé secrète DH_S_A et d’une clé publique correspondante DH_P_A, tandis que Bob dispose de la clé secrète DH_S_B et de la clé publique correspondante DH_P_B, et que Alice et Bob s’échangent leurs clés publiques DH_P_A et DH_P_B, la fonction Diffie Hellman permet aux deux agents Alice et Bob de calculer la même valeur K, pouvant servir de clé, de la façon suivante :The Diffie Hellman DH-Key function allows a key exchange between two agents, conventionally named Alice and Bob, such that this exchange allows the two agents to share a secret without the exchanges revealing this secret. If Alice has a secret key DH_S_A and a corresponding public key DH_P_A, while Bob has the secret key DH_S_B and the corresponding public key DH_P_B, and Alice and Bob exchange their public keys DH_P_A and DH_P_B, the Diffie Hellman function allows the two agents Alice and Bob to calculate the same value K, which can be used as a key, as follows:
K = DH-Key(DH_P_B, DH_S_A) = DH-Key(DH_P_A, DH_S_B) ;K = DH-Key(DH_P_B, DH_S_A) = DH-Key(DH_P_A, DH_S_B);
Un agent malveillant interceptant les échanges entre Alice et Bob n’acquière la connaissance que des clés publiques de Alice et Bob qui ne permettent pas, en l’absence des clés privées, le calcul de K. La clé K permet ensuite à Alice et Bob, par exemple, de chiffrer leurs communications.A malicious agent intercepting the exchanges between Alice and Bob only acquires knowledge of Alice and Bob's public keys which, in the absence of the private keys, do not allow the calculation of K. The key K then allows Alice and Bob, for example, to encrypt their communications.
L’invention repose sur la mise en œuvre d’un chiffrement du fichier à sauvegarder par l’utilisateur. Nous rappelons que l’une des contraintes est de ne pas devoir imposer une gestion de clés persistantes à l’utilisateur. Les fragments issus du fichier à sauvegarder sont donc stockés en clair par les services de stockage. Ce chiffrement vise à protéger la confidentialité du fichier d’origine pendant les communications et en particulier lors de la manipulation du fichier par le serveur relai pour générer les fragments. De ce fait, le fichier ne doit pas être déchiffrer par le serveur relai qui doit travailler sur la version chiffrée du fichier. Pour permettre cette manipulation du fichier chiffré par le serveur relai sans compromettre le déchiffrement des fragments par les services de stockage, un chiffrement totalement homomorphe est privilégié. Toutefois, dans certains modes de réalisation, en fonction du type d’opérations mathématiques mises en œuvre par la fonction de dispersion, un chiffrement simplement homomorphe peut être utilisé.The invention is based on the implementation of encryption of the file to be saved by the user. We recall that one of the constraints is not to have to impose persistent key management on the user. The fragments from the file to be saved are therefore stored in clear text by the storage services. This encryption aims to protect the confidentiality of the original file during communications and in particular during manipulation of the file by the relay server to generate the fragments. As a result, the file must not be decrypted by the relay server which must work on the encrypted version of the file. To allow this manipulation of the encrypted file by the relay server without compromising the decryption of the fragments by the storage services, a fully homomorphic encryption is preferred. However, in certain embodiments, depending on the type of mathematical operations implemented by the dispersion function, a simply homomorphic encryption can be used.
Il est également souhaité que le serveur relai ne puisse pas déchiffrer le fichier et accéder à son contenu. De plus, l’utilisateur n’a pas de connaissance à priori des services de stockage utilisés, il communique uniquement avec le serveur relai. Ces contraintes doivent tout de même permettre le chiffrement du fichier par l’utilisateur et le déchiffrement par le service de stockage des fragments qui lui sont confiés. Pour permettre de respecter ces contraintes, il est proposé d’utiliser un protocole sécurisé d’échange de clé privée entre l’utilisateur et les services de stockage. Plusieurs protocoles peuvent être utilisés, par exemple le protocole d’échange de clé dit de Diffie-Hellman, ou encore l’algorithme de Kyber décrit dans l’article « CRYSTALS-Kyber Algorithm Specifications And Supporting Documentation (version 3.02) », par Roberto Avanzi, Joppe Bos, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Vadim Lyubashevsky, John M. Schanck, Peter Schwabe, Gregor Seiler, Damien Stehlé, et soumis au concours NIST. Avantageusement les services de stockage en ligne partagent une même clé asymétrique, c’est-à-dire composée d’une clé publique et d’une clé secrète. L’utilisateur peut, quant à lui, générer une nouvelle clé asymétrique pour chaque échange. Cette génération d’une nouvelle clé par l’utilisateur n’est pas obligatoire mais permet de changer la clé partagée K servant à chiffrer le fichier à chaque échange. Ainsi, lors de chaque échange, le protocole de Diffie-Hellman permet de générer une clé K dédiée à l’échange, partagée entre l’utilisateur et l’ensemble des services de stockage et inconnue du serveur relai, bien que ce dernier ait la connaissance de tous les échanges entre l’utilisateur et les services de stockage en ligne. Cette génération d’une nouvelle clé par l’utilisateur n’est pas obligatoire mais permet de changer la clé partagée K servant à chiffrer le fichier à chaque échange. La façon dont les services de stockage en ligne obtiennent la clé asymétrique qu’ils partagent est en dehors de la portée de ce document. Cette clé peut être configurée à l’initialisation du système ou partagée ensuite. La seule contrainte est qu’il faut garantir que le serveur relai ne puisse pas en acquérir la connaissance.It is also desired that the relay server cannot decrypt the file and access its content. In addition, the user has no a priori knowledge of the storage services used; he communicates only with the relay server. These constraints must still allow the user to encrypt the file and the storage service to decrypt the fragments entrusted to it. To allow these constraints to be respected, it is proposed to use a secure private key exchange protocol between the user and the storage services. Several protocols can be used, for example the Diffie-Hellman key exchange protocol, or the Kyber algorithm described in the article "CRYSTALS-Kyber Algorithm Specifications And Supporting Documentation (version 3.02)", by Roberto Avanzi, Joppe Bos, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Vadim Lyubashevsky, John M. Schanck, Peter Schwabe, Gregor Seiler, Damien Stehlé, and submitted to the NIST competition. Advantageously, online storage services share the same asymmetric key, i.e. composed of a public key and a secret key. The user can, for his part, generate a new asymmetric key for each exchange. This generation of a new key by the user is not mandatory but allows to change the shared key K used to encrypt the file at each exchange. Thus, during each exchange, the Diffie-Hellman protocol generates a key K dedicated to the exchange, shared between the user and all storage services and unknown to the relay server, although the latter has knowledge of all exchanges between the user and the online storage services. This generation of a new key by the user is not mandatory but allows changing the shared key K used to encrypt the file at each exchange. How online storage services obtain the asymmetric key they share is outside the scope of this document. This key can be configured at system initialization or shared afterwards. The only constraint is that it must be guaranteed that the relay server cannot acquire knowledge of it.
Il est de plus souhaité que les services de stockage en ligne utilisés pour stocker les fragments ne puissent pas acquérir de connaissances sur le fichier original. Or les fragments sont stockés non chiffrés par ces services de stockage en ligne. Pour respecter ces contraintes, il est proposé que l’utilisateur encode le fichier original en utilisant une fonction AONT pour générer un pseudo-message à partir du fichier original. C’est ce pseudo-message et non le fichier original qui est alors chiffré et transmis au serveur relai pour stockage par les services de stockage en ligne. Du fait des propriétés de la fonction AONT, l’ensemble du pseudo-message est nécessaire pour le décoder et retrouver le fichier original. Ainsi, chaque service de stockage en ligne ne possédant par définition que d’un ou plusieurs fragments du pseudo-message est incapable d’accéder ne serait-ce qu’à un fragment du fichier original.It is further desired that the online storage services used to store the fragments cannot acquire knowledge about the original file. However, the fragments are stored unencrypted by these online storage services. To comply with these constraints, it is proposed that the user encodes the original file using an AONT function to generate a pseudo-message from the original file. It is this pseudo-message and not the original file that is then encrypted and transmitted to the relay server for storage by the online storage services. Due to the properties of the AONT function, the entire pseudo-message is necessary to decode it and find the original file. Thus, each online storage service that by definition only has one or more fragments of the pseudo-message is unable to access even one fragment of the original file.
De plus, l’utilisation de la fonction AONT possède un avantage supplémentaire. En effet, comme il est nécessaire d’accéder à l’intégralité du pseudo-message pour le décoder, il n’est pas nécessaire de chiffrer l’intégralité du pseudo-message pour en protéger l’accès. Le chiffrement d’une seule partie, même minime, du pseudo-message offre le même degré de protection que le chiffrement de l’intégralité du pseudo-message. Cette propriété peut être mise en œuvre pour limiter les ressources en calcul nécessaires à la méthode proposée en ne chiffrant qu’une partie minime du pseudo-message. Ceci est d’autant plus intéressant que les fonctions de chiffrement totalement homomorphes sont coûteuses en calcul.Moreover, using the AONT function has an additional advantage. Indeed, since it is necessary to access the entire pseudo-message to decode it, it is not necessary to encrypt the entire pseudo-message to protect access to it. Encrypting only a small part of the pseudo-message offers the same degree of protection as encrypting the entire pseudo-message. This property can be implemented to limit the computational resources required by the proposed method by encrypting only a small part of the pseudo-message. This is all the more interesting since fully homomorphic encryption functions are computationally expensive.
Pour résumer, le procédé de stockage proposé, comprend pour l’opération de téléversement une première étape d’application d’une fonction AONT par l’utilisateur sur le fichier original pour obtenir un pseudo-message correspondant au fichier original. Ensuite, l’utilisateur chiffre au moins une partie du pseudo message pour obtenir un pseudo-message chiffré. Ce chiffrement est du type totalement homomorphe. Il est effectué à l’aide d’une clé secrète partagée entre l’utilisateur et les services de stockage en ligne. Dans un mode de réalisation, cette clé secrète est échangée à l’aide du protocole de Diffie-Hellman entre l’utilisateur et les services de stockage. Le pseudo-message chiffré est transmis au serveur relai. Il est à noter ici que l’on qualifie le pseudo-message de pseudo-message chiffré même dans le cas d’un chiffrement partiel du pseudo-message. En effet, du fait de l’utilisation de la fonction AONT, même dans le cas d’un chiffrement partiel, les parties non chiffrées du pseudo-message ne sont pas accessibles sans déchiffrement de la partie chiffrée. Le serveur relai applique alors la fonction de dispersion pour obtenir une pluralité de fragments chiffrés. Les fragments sont qualifiés de chiffrés ici, bien qu’en toute rigueur, le chiffrement pouvant n’affecter qu’une partie du pseudo-message, certains fragments peuvent correspondre à une partie non chiffrée du pseudo-message, ceci pour la raison expliquée ci-dessus à propos du pseudo-message chiffré. Ces fragments chiffrés sont répartis sur les différents services de stockage en ligne. Ils sont alors déchiffrés et stockés en clair par le service de stockage en ligne.To summarize, the proposed storage method comprises, for the upload operation, a first step of application of an AONT function by the user on the original file to obtain a pseudo-message corresponding to the original file. Then, the user encrypts at least part of the pseudo-message to obtain an encrypted pseudo-message. This encryption is of the fully homomorphic type. It is performed using a secret key shared between the user and the online storage services. In one embodiment, this secret key is exchanged using the Diffie-Hellman protocol between the user and the storage services. The encrypted pseudo-message is transmitted to the relay server. It should be noted here that the pseudo-message is referred to as an encrypted pseudo-message even in the case of partial encryption of the pseudo-message. Indeed, due to the use of the AONT function, even in the case of partial encryption, the unencrypted parts of the pseudo-message are not accessible without decrypting the encrypted part. The relay server then applies the dispersion function to obtain a plurality of encrypted fragments. The fragments are called encrypted here, although strictly speaking, since encryption may only affect part of the pseudo-message, some fragments may correspond to an unencrypted part of the pseudo-message, for the reason explained above regarding the encrypted pseudo-message. These encrypted fragments are distributed across the various online storage services. They are then decrypted and stored in clear text by the online storage service.
L’opération de téléchargement est symétrique. Elle est également basée sur un chiffrement homomorphe utilisant une clé partagée entre l’utilisateur est les services de stockage en ligne. Cette clé secrète peut, dans un exemple de réalisation, être échangée par le protocole de Diffie-Hellman suite à une éventuelle génération d’une nouvelle clé asymétrique par l’utilisateur. Les services de stockage en ligne chiffrent alors tout ou partie des fragments à leur disposition. Ces fragments sont alors transmis au serveur relai sur requête. Le serveur relai ayant reçu les fragments chiffrés applique la fonction de dispersion inverse pour retrouver le pseudo-message chiffré. La manipulation des données chiffrées étant rendue possible par l’utilisation d’un chiffrement totalement homomorphe. Ce pseudo-message chiffré est alors transmis sur requête à l’utilisateur qui peut le déchiffrer pour obtenir le pseudo-message non chiffré et décoder ce dernier pour retrouver le fichier original.The download operation is symmetrical. It is also based on homomorphic encryption using a key shared between the user and the online storage services. This secret key can, in an exemplary embodiment, be exchanged by the Diffie-Hellman protocol following a possible generation of a new asymmetric key by the user. The online storage services then encrypt all or part of the fragments at their disposal. These fragments are then transmitted to the relay server upon request. The relay server having received the encrypted fragments applies the inverse dispersion function to find the encrypted pseudo-message. The manipulation of the encrypted data is made possible by the use of fully homomorphic encryption. This encrypted pseudo-message is then transmitted upon request to the user who can decrypt it to obtain the unencrypted pseudo-message and decode the latter to find the original file.
Les figures 3a et 3b illustrent un premier mode de réalisation de l’invention. La
Figures 3a and 3b illustrate a first embodiment of the invention. The
Pour réaliser le téléversement, l’utilisateur 201, commence par générer le pseudo-message par application de la fonction AONT au fichier original. Ensuite, il obtient la clé secrète K partagée avec les services de stockage en ligne, ici le service de stockage 203. Dans un exemple de réalisation, l’utilisateur génère une clé asymétrique (DH_P_U, DH_S_U), typiquement à l’aide de la fonction KEYGEN et applique le protocole de Diffie-Hellman pour calculer la clé secrète K. Cette clé est alors utilisée pour chiffrer au moins partiellement le pseudo-message à l’aide d’un chiffrement totalement homomorphe et obtenir un pseudo-message chiffré. L’utilisateur transmet alors le pseudo-message chiffré 204 à stocker au serveur relai 202. Ce dernier applique la fonction de dispersion et génère les fragments chiffrés issus du pseudo-message chiffré. Il associe également le pseudo-message chiffré à l’identifiant de fichier original 207 Id_o qu’il transmet en retour à l’utilisateur 201. Nous décrivons le traitement d’un de ces fragments chiffrés, le fragment 205 qui est transmis au service de stockage en ligne 203 pour stockage. Ce fragment issu d’un pseudo-message chiffré est également chiffré. Le service de stockage en ligne 203 déchiffre le fragment chiffré 205, le mémorise et l’associe à un identifiant de fragment Id_f qui est renvoyé au serveur relai. Alternativement, l’identifiant de fragment Id_f peut être généré directement par le serveur relai qui peut alors calculer le hash directement afin d’éviter un aller-retour avec le service de stockage.To perform the upload, the user 201 begins by generating the pseudo-message by applying the AONT function to the original file. Then, he obtains the secret key K shared with the online storage services, here the storage service 203. In an exemplary embodiment, the user generates an asymmetric key (DH_P_U, DH_S_U), typically using the KEYGEN function and applies the Diffie-Hellman protocol to calculate the secret key K. This key is then used to at least partially encrypt the pseudo-message using a fully homomorphic encryption and obtain an encrypted pseudo-message. The user then transmits the encrypted pseudo-message 204 to be stored to the relay server 202. The latter applies the dispersion function and generates the encrypted fragments resulting from the encrypted pseudo-message. It also associates the encrypted pseudo-message with the original file identifier 207 Id_o that it transmits back to the user 201. We describe the processing of one of these encrypted fragments, the fragment 205 which is transmitted to the online storage service 203 for storage. This fragment from an encrypted pseudo-message is also encrypted. The online storage service 203 decrypts the encrypted fragment 205, stores it and associates it with a fragment identifier Id_f which is sent back to the relay server. Alternatively, the fragment identifier Id_f can be generated directly by the relay server which can then calculate the hash directly in order to avoid a round trip with the storage service.
Concernant le téléchargement, dans ce mode de réalisation, l’utilisateur génère une nouvelle clé asymétrique à l’aide de la fonction KEYGEN pour calculer une nouvelle clé secrète K’ partagée avec les services de stockage en ligne à l’aide du protocole de Diffie-Hellman. Pour télécharger le fichier, l’utilisateur transmet, étape 307, l’identificateur du fichier original Id_o, sa clé publique DH_P_U et possiblement sa signature. La signature permet au service de stockage en ligne de vérifier que cette clé publique n’a pas été usurpée par le serveur relai. Le serveur relai relaye ces informations au service de stockage en ligne, étape 306.Regarding the download, in this embodiment, the user generates a new asymmetric key using the KEYGEN function to calculate a new secret key K’ shared with the online storage services using the Diffie-Hellman protocol. To download the file, the user transmits, step 307, the identifier of the original file Id_o, its public key DH_P_U and possibly its signature. The signature allows the online storage service to verify that this public key has not been usurped by the relay server. The relay server relays this information to the online storage service, step 306.
A l’aide de cette clé, le service de stockage en ligne peut également calculer la clé secrète K’. Le service de stockage peut alors chiffrer le fragment pour reconstituer un fragment chiffré. Ici encore, le chiffrement du pseudo-message pouvant être partiel, il est possible que tous les fragments ne soient pas effectivement chiffrés. Ces fragments seront tout de même qualifiés de fragments chiffrés car ils correspondent à des fragments issus d’un pseudo-message chiffré au moins partiellement.Using this key, the online storage service can also calculate the secret key K’. The storage service can then encrypt the fragment to reconstruct an encrypted fragment. Here again, since the encryption of the pseudo-message may be partial, it is possible that not all the fragments are actually encrypted. These fragments will still be called encrypted fragments because they correspond to fragments from a pseudo-message that is at least partially encrypted.
Ce fragment chiffré est alors transmis au serveur relai, lors de l’étape 205, accompagné de la clé publique du service de stockage en ligne DH_P_S.This encrypted fragment is then transmitted to the relay server, during step 205, accompanied by the public key of the DH_P_S online storage service.
Alors le serveur relai, une fois en possession de l’ensemble des fragments chiffrés applique la fonction de dispersion inverse pour obtenir le pseudo-message chiffré HE(K’, AONT(fichier)). Ce dernier est transmis accompagné de la clé publique du service de stockage en ligne à l’utilisateur.Then the relay server, once in possession of all the encrypted fragments, applies the inverse dispersion function to obtain the encrypted pseudo-message HE(K’, AONT(file)). The latter is transmitted accompanied by the public key of the online storage service to the user.
A l’aide de la clé publique du stockage et en appliquant le protocole de Diffie-Hellman, l’utilisateur peut calculer la clé K’ et ainsi déchiffrer le pseudo-message qu’il ne reste alors qu’à décoder, c’est-à-dire à appliquer la fonction inverse AONT pour retrouver le fichier d’origine.Using the public key of the storage and applying the Diffie-Hellman protocol, the user can calculate the key K' and thus decrypt the pseudo-message which then only needs to be decoded, i.e. apply the inverse function AONT to find the original file.
Il peut être constaté que les cinq contraintes énoncées sont respectées par le système lors de l’étape de téléchargement. L’utilisateur n’est pas contraint de gérer des clés persistantes. L’utilisateur n’acquiert aucune information sur les services de stockage en ligne utilisés. Ces derniers ne peuvent acquérir aucune information sur le fichier original stocké. De même, le serveur relai bien qu’ayant connaissance de tous les échanges, ne peut acquérir d’information sur le fichier original stocké. Enfin, l’ensemble du procédé ne requiert qu’une occurrence d’échanges entre les différents acteurs du système depuis la requête émise par l’utilisateur à la réponse lui transmettant le pseudo-message chiffré à partir duquel il peut retrouver le fichier original.It can be seen that the five stated constraints are respected by the system during the download stage. The user is not forced to manage persistent keys. The user does not acquire any information on the online storage services used. The latter cannot acquire any information on the original file stored. Similarly, the relay server, although aware of all the exchanges, cannot acquire information on the original file stored. Finally, the entire process only requires one occurrence of exchanges between the different actors of the system from the request issued by the user to the response transmitting the encrypted pseudo-message from which the original file can be found.
Le système proposé permet de garantir la sécurité des données des utilisateurs, même en cas de compromission du serveur relai ou d’un ou des services de stockage en ligne utilisés.The proposed system ensures the security of user data, even in the event of compromise of the relay server or one or more online storage services used.
La
- une unité centrale de traitement 401, tel qu'un microprocesseur, notée CPU;- a central processing unit 401, such as a microprocessor, denoted CPU;
- une mémoire à accès aléatoire 402, notée RAM, pour mémoriser le code exécutable du procédé de réalisation de l'invention ainsi que les registres adaptés à enregistrer des variables et des paramètres nécessaires pour la mise en œuvre du procédé selon des modes de réalisation de l'invention ; la capacité de mémoire du dispositif peut être complétée par une mémoire RAM optionnelle connectée à un port d'extension, par exemple ;- a random access memory 402, denoted RAM, for storing the executable code of the method for implementing the invention as well as the registers adapted to record variables and parameters necessary for implementing the method according to embodiments of the invention; the memory capacity of the device can be supplemented by an optional RAM memory connected to an extension port, for example;
- une mémoire morte 403, notée ROM, pour stocker des programmes informatiques pour la mise en œuvre des modes de réalisation de l'invention ;- a read-only memory 403, denoted ROM, for storing computer programs for implementing the embodiments of the invention;
- une interface réseau 404 est normalement connectée à un réseau de communication sur lequel des données numériques à traiter sont transmis ou reçus. L'interface réseau 404 peut être une seule interface réseau, ou composée d'un ensemble d'interfaces réseau différentes (par exemple filaire et sans fil, interfaces ou différents types d'interfaces filaires ou sans fil). Des paquets de données sont envoyés sur l'interface réseau pour la transmission ou sont lues à partir de l'interface de réseau pour la réception sous le contrôle de l'application logiciel exécuté dans le processeur 401 ;- a network interface 404 is normally connected to a communication network over which digital data to be processed are transmitted or received. The network interface 404 may be a single network interface, or composed of a set of different network interfaces (e.g. wired and wireless interfaces or different types of wired or wireless interfaces). Data packets are sent over the network interface for transmission or are read from the network interface for reception under the control of the software application running in the processor 401;
- une interface utilisateur 405 pour recevoir des entrées d'un utilisateur ou pour afficher des informations à un utilisateur ;- a user interface 405 for receiving input from a user or for displaying information to a user;
- un dispositif de stockage 406 tel que décrit dans l’invention et noté HD ;- a storage device 406 as described in the invention and denoted HD;
- un module d’entrée/sortie 407 pour la réception / l'envoi de données depuis / vers des périphériques externes tels que disque dur, support de stockage amovible ou autres.- an input/output module 407 for receiving/sending data from/to external devices such as hard disk, removable storage media or others.
Le code exécutable peut être stocké dans une mémoire morte 403, sur le dispositif de stockage 406 ou sur un support amovible numérique tel que par exemple un disque. Selon une variante, le code exécutable des programmes peut être reçu au moyen d'un réseau de communication, via l'interface réseau 404, afin d'être stocké dans l'un des moyens de stockage du dispositif de communication 400, tel que le dispositif de stockage 406, avant d'être exécuté.The executable code may be stored in a read-only memory 403, on the storage device 406 or on a removable digital medium such as for example a disk. According to a variant, the executable code of the programs may be received by means of a communication network, via the network interface 404, in order to be stored in one of the storage means of the communication device 400, such as the storage device 406, before being executed.
L'unité centrale de traitement 401 est adaptée pour commander et diriger l'exécution des instructions ou des portions de code logiciel du programme ou des programmes selon l'un des modes de réalisation de l'invention, instructions qui sont stockées dans l'un des moyens de stockage précités. Après la mise sous tension, le CPU 401 est capable d'exécuter des instructions de la mémoire RAM principale 402, relatives à une application logicielle. Un tel logiciel, lorsqu'il est exécuté par le processeur 401, provoque l’exécution des procédés décrits.The central processing unit 401 is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to one of the embodiments of the invention, instructions which are stored in one of the aforementioned storage means. After power-up, the CPU 401 is capable of executing instructions from the main RAM 402, relating to a software application. Such software, when executed by the processor 401, causes the execution of the methods described.
Dans ce mode de réalisation, l'appareil est un appareil programmable qui utilise un logiciel pour mettre en œuvre l'invention. Toutefois, à titre subsidiaire, la présente invention peut être mise en œuvre dans le matériel (par exemple, sous la forme d'un circuit intégré spécifique ou ASIC).In this embodiment, the apparatus is a programmable apparatus that uses software to implement the invention. However, alternatively, the present invention may be implemented in hardware (e.g., as a specific integrated circuit or ASIC).
Claims (9)
- réception du fichier original, transmis par un dispositif utilisateur, par un serveur relai connecté à une pluralité de services de stockage en ligne ;
- application d’une fonction de dispersion par le serveur relai pour générer une pluralité de fragments à partir du fichier original reçu ;
- transmission pour sauvegarde par le serveur relai de chaque fragment à un service de stockage en ligne parmi la pluralité de service de stockage en ligne ;
caractérisé en ce que :
- le fichier original est transformé en pseudo-message par le dispositif utilisateur à l’aide d’une fonction de transformation tout ou rien ;
- le pseudo-message est chiffré, au moins en partie, par le dispositif utilisateur à l’aide d’une clés secrète partagée avec la pluralité de service de stockage en ligne, le chiffrement étant homomorphe, le fichier original reçu par le serveur relai étant le pseudo-message chiffré ;
- la fonction de dispersion est appliquée sur le pseudo-message chiffré et génère des fragments chiffrés ;
- les fragments chiffrés sont déchiffrés par les services de stockage en ligne avant stockage.A method of securely storing an original file, characterized in that it comprises the following steps for uploading an original file:
- reception of the original file, transmitted by a user device, by a relay server connected to a plurality of online storage services;
- application of a dispersion function by the relay server to generate a plurality of fragments from the original file received;
- transmission for backup by the relay server of each fragment to an online storage service among the plurality of online storage services;
characterized in that:
- the original file is transformed into a pseudo-message by the user device using an all-or-nothing transformation function;
- the pseudo-message is encrypted, at least in part, by the user device using a secret key shared with the plurality of online storage services, the encryption being homomorphic, the original file received by the relay server being the encrypted pseudo-message;
- the dispersion function is applied to the encrypted pseudo-message and generates encrypted fragments;
- encrypted fragments are decrypted by online storage services before storage.
- la clé secrète est partagée entre le dispositif utilisateur et les services de stockage en ligne par un protocole d’échange de clé sécurisé.Method according to claim 1, characterized in that:
- the secret key is shared between the user device and the online storage services by a secure key exchange protocol.
- le protocole d’échange de clé sécurisé est le protocole de Diffie-Hellman.Method according to claim 2, characterized in that:
- the secure key exchange protocol is the Diffie-Hellman protocol.
- le protocole de Diffie-Hellman est basé sur une première clé asymétrique générée par le dispositif utilisateur et une seconde clé asymétrique partagée par les services de stockage en ligne.Method according to claim 3, characterized in that:
- the Diffie-Hellman protocol is based on a first asymmetric key generated by the user device and a second asymmetric key shared by the online storage services.
- une nouvelle première clé asymétrique est générée avant chaque échange par le dispositif utilisateur.Method according to claim 4, characterized in that:
- a new first asymmetric key is generated before each exchange by the user device.
- chiffrement des fragments par les services de stockage en ligne à l’aide d’une clé secrète partagée avec le dispositif utilisateur;
- réception par le serveur relai des fragments chiffrés ;
- application de la fonction de dispersion inverse par le serveur relai sur les fragments chiffrés pour générer un pseudo-message chiffré ;
- transmission du pseudo-message chiffré au dispositif utilisateur ;
- déchiffrement du pseudo-message chiffré par le dispositif utilisateur ;
- application de la fonction inverse de transformation tout ou rien par le dispositif utilisateur pour retrouver le fichier original.Method according to claim 1, characterized in that it further comprises the following steps for downloading:
- encryption of fragments by online storage services using a secret key shared with the user device;
- reception by the relay server of encrypted fragments;
- application of the inverse dispersion function by the relay server on the encrypted fragments to generate a pseudo-encrypted message;
- transmission of the encrypted pseudo-message to the user device;
- decryption of the encrypted pseudo-message by the user device;
- application of the inverse all-or-nothing transformation function by the user device to find the original file.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2301721A FR3146220A1 (en) | 2023-02-24 | 2023-02-24 | METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT |
PCT/FR2024/050236 WO2024175864A1 (en) | 2023-02-24 | 2024-02-23 | Method and device for distributed online storage of files in a zero-trust context |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2301721 | 2023-02-24 | ||
FR2301721A FR3146220A1 (en) | 2023-02-24 | 2023-02-24 | METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3146220A1 true FR3146220A1 (en) | 2024-08-30 |
Family
ID=87136599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2301721A Pending FR3146220A1 (en) | 2023-02-24 | 2023-02-24 | METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR3146220A1 (en) |
WO (1) | WO2024175864A1 (en) |
-
2023
- 2023-02-24 FR FR2301721A patent/FR3146220A1/en active Pending
-
2024
- 2024-02-23 WO PCT/FR2024/050236 patent/WO2024175864A1/en unknown
Non-Patent Citations (6)
Title |
---|
"Chapter 12: Key Establishment Protocols ED - Menezes A J; Van Oorschot P C; Vanstone S A", 1 October 1996 (1996-10-01), XP001525012, ISBN: 978-0-8493-8523-0, Retrieved from the Internet <URL:http://www.cacr.math.uwaterloo.ca/hac/> * |
I. CHILLOTTIN. GAMAM. GEORGIEVAM. IZABACHÈNE: "TFHE: Fast Fully Ho-momorphic Encryptionover the Torus", JOURNAL OF CRYPTOLOGY, vol. 33 |
JASON K RESCH DEVELOPMENT CLEVERSAFE ET AL: "AONT-RS: Blending Security and Performance in Dispersed Storage Systems", USENIX, USENIX, THE ADVANCED COMPUTING SYSTEMS ASSOCIATION, 17 December 2010 (2010-12-17), pages 1 - 12, XP061009899 * |
RIVEST R L: "All-or-nothing encryption and the package transform", FAST SOFTWARE ENCRYPTION. 4TH INTERNATIONAL WORKSHOP, FSE'97 PROCEEDING, SPRINGER-VERLAG, BERLIN, GERMANY, 20 January 1997 (1997-01-20), pages 210 - 218, XP007907068, ISBN: 978-3-540-63247-4 * |
ROBERTO AVANZIJOPPE BOSLÉO DUCASEIKE KILTZTANCRÈDE LEPOINTVADIM LYUBASHEVSKYJOHN M. SCHANCKPETER SCHWABEGREGOR SEILERDAMIEN STEHLÉ, CRYSTALS-KYBER ALGORITHM SPÉCIFICATIONS AND SUPPORTING DOCUMENTATION (VERSION 3.02 |
RONALD L. RIVEST, ALL-OR-NOTHING ENCRYPTION AND THE PACKAGE TRANSFORM, 1997 |
Also Published As
Publication number | Publication date |
---|---|
WO2024175864A1 (en) | 2024-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1305948B1 (en) | Method for secure distribution of digital data representing a multimedia content | |
FR2930390A1 (en) | METHOD FOR SECURE DIFFUSION OF DIGITAL DATA TO AN AUTHORIZED THIRD PARTY | |
FR2952778A1 (en) | SECURE DATA TRANSMISSION METHOD AND ENCRYPTION AND ENCRYPTION SYSTEM FOR SUCH TRANSMISSION | |
EP3391585B1 (en) | Method for securing a recording of multimedia content in a storage medium | |
EP3928232A1 (en) | Cryptographic data verification method | |
FR2930391A1 (en) | AUTHENTICATION TERMINAL OF A USER. | |
EP1946552A2 (en) | Method for securing data exchanged between a multimedia processing device and a security module | |
FR2804561A1 (en) | METHOD OF COMMUNICATION WITH SEQUESTRE AND RECOVERY OF ENCRYPTION KEY | |
CA3142763A1 (en) | Method for encrypting and storing system files and associated encryption and storage device | |
EP2827601A1 (en) | Method and device for protecting decryption keys of a decoder | |
EP1419640B1 (en) | Local digital network, methods for installing new devices and data broadcast and reception methods in such a network | |
EP3777007A1 (en) | Methods, devices and computer programs for the encipherment and decipherment of data for the transmission or storage of data | |
WO2024175864A1 (en) | Method and device for distributed online storage of files in a zero-trust context | |
FR2965431A1 (en) | SYSTEM FOR EXCHANGING DATA BETWEEN AT LEAST ONE TRANSMITTER AND ONE RECEIVER | |
EP1723791B1 (en) | Method of securing a scrambled content sent by a broadcaster | |
EP3266148B1 (en) | Device and method for administering a digital escrow server | |
FR3022716A1 (en) | METHOD FOR SHARING DIGITAL FILES BETWEEN SEVERAL COMPUTERS, AND COMPUTER, DATA STORAGE ASSEMBLY AND SYSTEM FOR SHARING DIGITAL FILES THEREOF | |
EP1642413B1 (en) | Method for encoding/decoding a message and associated device | |
FR3141538A1 (en) | METHOD AND DEVICE FOR DISTRIBUTED ONLINE STORAGE OF FILES IN A ZERO TRUST CONTEXT | |
FR2786049A1 (en) | Information transmission dynamic key encryption coding technique having defined word generated key encryption used and receiver generation same key decoding producing. | |
FR2947072A1 (en) | DIGITAL RIGHTS MANAGEMENT SYSTEM USING A DIVERSIFIED CONTENT PROTECTION PROCESS | |
FR2850223A1 (en) | Digital signal transferring method for use in public communication network e.g. Internet, involves encoding digital signal with encryption key obtained in response to request of transfer of digital signal by client station | |
WO2010133459A1 (en) | Method for encrypting specific portions of a document for superusers | |
FR2956272A1 (en) | PASSWORD AUTHENTICATION FOR SINGLE USE | |
FR2985626A1 (en) | Method for transmission of confidential data divided into segments to e.g. fixed terminals, in network gaming field, involves decoding segments actually transmitted by error correction code to find value of segments of data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20240830 |