CH716280A2 - A method of processing, in an enclave, encrypted computer data by means of an encrypted application containing an executable. - Google Patents

A method of processing, in an enclave, encrypted computer data by means of an encrypted application containing an executable. Download PDF

Info

Publication number
CH716280A2
CH716280A2 CH00752/19A CH7522019A CH716280A2 CH 716280 A2 CH716280 A2 CH 716280A2 CH 00752/19 A CH00752/19 A CH 00752/19A CH 7522019 A CH7522019 A CH 7522019A CH 716280 A2 CH716280 A2 CH 716280A2
Authority
CH
Switzerland
Prior art keywords
data
enclave
encrypted
container
processing
Prior art date
Application number
CH00752/19A
Other languages
French (fr)
Inventor
Attia Jonathan
Louiset Raphaël
Original Assignee
Lapsechain Sa C/O Leax Avocats
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lapsechain Sa C/O Leax Avocats filed Critical Lapsechain Sa C/O Leax Avocats
Priority to CH00752/19A priority Critical patent/CH716280A2/en
Publication of CH716280A2 publication Critical patent/CH716280A2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé de traitement de données ( 12 ) informatiques contenues dans un premier conteneur ( 16 ) chiffré, au moyen d'une application ( 14 ) tierce contenue, sous forme d'un fichier exécutable, dans un deuxième conteneur ( 18 ) chiffré, ce traitement étant conduit au sein d'une enclave ( 5 ) cryptographique dans laquelle les conteneurs ( 16 , 18 ) sont déchiffrés pour permettre l'exécution de l'application ( 14 ) ainsi déchiffrée sur les données ( 12 ) ainsi déchiffrées.The invention relates to a method for processing computer data (12) contained in a first encrypted container (16), by means of a third-party application (14) contained, in the form of an executable file, in a second container (18). ) encrypted, this processing being carried out within a cryptographic enclave (5) in which the containers (16, 18) are decrypted to allow the execution of the application (14) thus decrypted on the data (12) thus decrypted .

Description

DOMAINE TECHNIQUETECHNICAL AREA

[0001] L'invention a trait au domaine de l'informatique, et plus précisément au domaine du traitement des données informatiques au moyen d'une application. The invention relates to the field of computing, and more specifically to the field of processing computer data by means of an application.

ART ANTERIEURPRIOR ART

[0002] Un programme d'ordinateur comprend des instructions au moyen desquelles, par l'intermédiaire d'une unité de traitement, des opérations sont réalisées sur des données d'entrée (en anglais input), pour fournir, à partir de celles-ci, des données de sortie ou résultat (en anglais output). A computer program comprises instructions by means of which, by means of a processing unit, operations are carried out on input data, to provide, from these- ci, output data or result.

[0003] Le traitement de données en masse (en anglais big data) tend à s'industrialiser. Des programmes spécialisés scrutent les flux de données (tout particulièrement les données personnelles des usagers) circulant sur la Toile, procèdent à des analyses de ces données, effectuent des calculs (notamment statistiques) puis stockent leurs résultats sur des bases de données aux fins d'une exploitation ultérieure (notamment commerciale). [0003] Mass data processing (in English big data) is tending to industrialize. Specialized programs scrutinize the data flows (in particular the personal data of users) circulating on the Web, analyze this data, perform calculations (in particular statistics) and then store their results in databases for the purposes of subsequent exploitation (especially commercial).

[0004] Pour éviter que leurs données personnelles soient exploitées sans leur autorisation, ou pour conserver un relatif anonymat sur la Toile, certains usagers prennent la précaution de les chiffrer. To prevent their personal data from being used without their authorization, or to maintain relative anonymity on the Web, some users take the precaution of encrypting them.

[0005] Certaines données font d'ailleurs (ou devraient faire) l'objet d'un chiffrement systématique, en raison de leur caractère confidentiel (typiquement les données de santé ou les données financières), les instances chargées de leur gestion (hôpitaux, banques) étant soumises à des obligations professionnelles de secret, et responsables à ce titre de l'usage qui pourrait en être fait par des tiers non autorisés. [0005] Some data are moreover (or should be) the subject of systematic encryption, because of their confidential nature (typically health data or financial data), the bodies responsible for their management (hospitals, banks) being subject to professional secrecy obligations, and as such responsible for any use that may be made of it by unauthorized third parties.

[0006] Les données chiffrées sont cependant inaccessibles - et donc inexploitables - pour qui ne dispose pas d'une clé cryptographique appropriée permettant leur déchiffrement. [0006] The encrypted data is however inaccessible - and therefore unusable - for those who do not have an appropriate cryptographic key allowing their decryption.

[0007] Pourtant il existe de nombreux cas où le propriétaire des données (typiquement un patient d'un institut médical ou un client d'une banque) peut souhaiter, sous conditions, autoriser un tiers intéressé à procéder à un traitement des données, sans pour autant communiquer à ce tiers la clé de déchiffrement, ni l'autoriser à accéder pleinement aux données lorsque seule une partie de ces données est susceptible de l'intéresser. However, there are many cases where the owner of the data (typically a patient of a medical institute or a client of a bank) may wish, under conditions, to authorize an interested third party to process the data, without however, communicate the decryption key to this third party, nor authorize him to fully access the data when only part of this data is likely to interest him.

[0008] Inversement, le tiers intéressé peut souhaiter conserver secrètes, vis-à-vis d'autres tiers encore, ses propres routines d'analyse, et chiffrer les données programmatiques (y compris sous forme d'exécutables) de ses applications, dont le développement est le fruit d'un savoir-faire précieux. Conversely, the interested third party may wish to keep secret, vis-à-vis still other third parties, its own analysis routines, and encrypt the programmatic data (including in the form of executables) of its applications, including development is the result of precious know-how.

[0009] L'invention vise à offrir une solution à ces problèmes, en proposant un procédé de traitement de données chiffrées qui permette à la fois à une application de traiter ces données sans affecter leur confidentialité, et à l'application elle-même de demeurer confidentielle. The invention aims to offer a solution to these problems, by proposing a method of processing encrypted data which allows both an application to process this data without affecting their confidentiality, and the application itself to remain confidential.

RESUME DE L'INVENTIONSUMMARY OF THE INVENTION

[0010] Il est proposé un procédé de traitement de données informatiques au moyen d'une application tierce sous forme d'un fichier exécutable, ce procédé comprenant les opérations consistant à : <tb><SEP>- Chiffrer les données à traiter pour former un premier conteneur crypté de données ; <tb><SEP>- Mémoriser séparément le premier conteneur crypté et une première clé cryptographique de déchiffrement de celui-ci ; <tb><SEP>- Chiffrer le fichier exécutable de l'application tierce pour former un deuxième conteneur crypté ; <tb><SEP>- Mémoriser séparément le deuxième conteneur et une deuxième clé cryptographique de déchiffrement associée ; <tb><SEP>- A réception d'une requête de traitement des données par l'application tierce, sélectionner une unité de traitement informatique dans laquelle est implémenté un environnement d'exécution sécurisé par cryptographie, dit enclave ; <tb><SEP>- Instancier l'enclave ; <tb><SEP>- Charger dans l'enclave le premier conteneur et la première clé cryptographique de déchiffrement associée, ainsi que le deuxième conteneur et la deuxième clé cryptographique de déchiffrement associée ; <tb><SEP>- Dans l'enclave : <tb><SEP><SEP>o Déchiffrer les données du premier conteneur au moyen de la première clé cryptographique de déchiffrement ; <tb><SEP><SEP>o Déchiffrer le fichier exécutable de l'application tierce contenu dans le deuxième conteneur, au moyen de la deuxième clé cryptographique de déchiffrement ; <tb><SEP><SEP>o Exécuter l'application tierce sur les données ainsi déchiffrées ; <tb><SEP>- Hors de l'enclave, mémoriser le résultat de cette exécution sur un emplacement mémoire prédéfini.A method is proposed for processing computer data by means of a third-party application in the form of an executable file, this method comprising the operations consisting in: <tb> <SEP> - Encrypt the data to be processed to form a first encrypted data container; <tb> <SEP> - Store separately the first encrypted container and a first decryption cryptographic key thereof; <tb> <SEP> - Encrypt the executable file of the third party application to form a second encrypted container; <tb> <SEP> - Store separately the second container and an associated second cryptographic decryption key; <tb> <SEP> - On receipt of a data processing request by the third-party application, select a computer processing unit in which an execution environment secured by cryptography, called an enclave, is implemented; <tb> <SEP> - Instantiate the enclave; <tb> <SEP> - Load into the enclave the first container and the associated first cryptographic decryption key, as well as the second container and the associated second cryptographic decryption key; <tb> <SEP> - In the enclave: <tb><SEP> <SEP> o Decrypt the data of the first container using the first cryptographic decryption key; <tb><SEP> <SEP> o Decrypt the executable file of the third-party application contained in the second container, using the second cryptographic decryption key; <tb><SEP> <SEP> o Run the third-party application on the data thus decrypted; <tb> <SEP> - Outside the enclave, store the result of this execution on a predefined memory location.

BREVE DESCRIPTION DES FIGURESBRIEF DESCRIPTION OF THE FIGURES

[0011] D'autres objets et avantages de l'invention apparaîtront à la lumière de la description d'un mode de réalisation, faite ci-après en référence aux dessins annexés dans lesquels : <tb><SEP>LaFIG.1est un schéma simplifié illustrant un réseau informatique dont au moins un nœud est équipé d'une unité de traitement sur laquelle est implémentée une enclave ; <tb><SEP>LaFIG.2est un schéma fonctionnel illustrant le stockage de données chiffrées à traiter et d'une application également chiffrée ; <tb><SEP>LaFIG.3est un schéma fonctionnel illustrant le traitement des données par l'application.[0011] Other objects and advantages of the invention will become apparent in the light of the description of an embodiment, given below with reference to the accompanying drawings in which: <tb> <SEP> LaFIG.1 is a simplified diagram illustrating a computer network of which at least one node is equipped with a processing unit on which an enclave is implemented; <tb> <SEP> LaFIG.2 is a functional diagram illustrating the storage of encrypted data to be processed and of an also encrypted application; <tb> <SEP> LaFIG.3 is a functional diagram illustrating the processing of data by the application.

DESCRIPTION DETAILLEE DE L'INVENTIONDETAILED DESCRIPTION OF THE INVENTION

[0012] Le procédé proposé vise à traiter, de manière confidentielle, des données informatiques au moyen d'une application tierce (c'est-à-dire provenant d'un éditeur distinct de l'émetteur des données). The proposed method aims to treat, confidentially, computer data by means of a third-party application (that is to say from a publisher separate from the sender of the data).

[0013] Ce traitement peut être conduit au sein d'un réseau1informatique (qui, comme illustré, peut être du type pair-à-pair) comprenant une pluralité de nœuds2(ordinateurs, serveurs). This processing can be carried out within a computer network (which, as illustrated, can be of the peer-to-peer type) comprising a plurality of nodes2 (computers, servers).

[0014] Le procédé de traitement proposé exploite notamment la technologie de l'environnement d'exécution sécurisé ou, en terminologie anglo-saxonne, du trusted execution environment (TEE). The proposed processing method uses in particular the technology of the secure execution environment or, in English terminology, of the trusted execution environment (TEE).

[0015] Par référence à laFIG.1, un environnement d'exécution sécurisé (Trusted execution environment ou TEE) est, au sein d'une unité3de traitement informatique équipant un nœud2et pourvue d'un processeur ou CPU (Central Processing Unit)4, un espace5temporaire de calcul et de stockage de données, appelé (par convention) enclave, ou encore enclave cryptographique, qui se trouve isolé, par des moyens cryptographiques, de toute action non autorisée résultant de l'exécution d'une application hors de cet espace, typiquement du système d'exploitation. By reference to theFIG.1, a secure execution environment (Trusted execution environment or TEE) is, within a computer processing unit3 equipping a node2and provided with a processor or CPU (Central Processing Unit) 4, a temporary space for computing and storing data, called (by convention) an enclave, or even a cryptographic enclave, which is isolated, by cryptographic means, from any unauthorized action resulting from the execution of an application outside this space , typically of the operating system.

[0016] Intel® a, par exemple, revu à partir de 2013 la structure et les interfaces de ses processeurs pour y inclure des fonctions d'enclave, sous la dénomination Software Guard Extension, plus connue sous l'acronyme SGX. SGX équipe la plupart des processeurs de type XX86 commercialisés par Intel® depuis 2015, et plus précisément à partir de la sixième génération incorporant la microarchitecture dite Skylake. Les fonctions d'enclave proposées par SGX ne sont pas accessibles d'office : il convient de les activer via le système élémentaire d'entrée/sortie (Basic Input Output System ou BIOS). [0016] Intel®, for example, from 2013 revised the structure and interfaces of its processors to include enclave functions, under the name Software Guard Extension, better known by the acronym SGX. SGX equips most of the XX86 type processors marketed by Intel® since 2015, and more specifically from the sixth generation incorporating the so-called Skylake microarchitecture. The enclave functions offered by SGX are not automatically accessible: they must be activated via the elementary input / output system (Basic Input Output System or BIOS).

[0017] Il n'entre pas dans les nécessités de la présente description de détailler l'architecture des enclaves, dans la mesure où : En dépit de sa relative jeunesse, cette architecture est relativement bien documentée, notamment par Intel® qui a déposé de nombreux brevets, cf. par ex., parmi les plus récents, la demande de brevet américain US 2019/0058696 ; Des processeurs permettant de les implémenter sont disponibles sur le marché - notamment les processeur Intel® précités ; Seules les fonctionnalités permises par l'enclave nous intéressent ici, ces fonctionnalités pouvant être mises en œuvre via des lignes de commande spécifiques. A ce titre, l'homme du métier pourra se référer au guide édité en 2016 par Intel® : Software Guard Extensions, Developer Guide.It does not fall within the requirements of the present description to detail the architecture of the enclaves, insofar as: Despite its relative youth, this architecture is relatively well documented, in particular by Intel® which has filed numerous patents, cf. e.g., among the most recent, the US patent application US 2019/0058696; Processors making it possible to implement them are available on the market - in particular the aforementioned Intel® processors; Only the functionalities allowed by the enclave are of interest to us here, these functionalities being able to be implemented via specific command lines. As such, those skilled in the art may refer to the guide published in 2016 by Intel®: Software Guard Extensions, Developer Guide.

[0018] Pour une description plus accessible des enclaves, et plus particulièrement d'Intel® SGX, l'homme du métier peut également se référer à A. Adamski, Overview of Intel SGX - Part 1, SGX Internal, ou à D. Boneh, Surnaming Schemes, Fast Verification, and Applications to SGX Technology, in Topics in Cryptology, CT - RSA 2017, The Cryptographers' Track at the RSA Conférence 2017, San Francisco, CA, USA, Feb.14-17, 2017, Proceedings, pp.149-164, ou encore à K. Severinsen, Secure Programming with Intel SGX and Novel Applications, Thesis submitted for the Degree of Master in Programming and Networks, Dept. Of Informatics, Faculty of Mathematics and Natural Science, University of Oslo, Autumn 2017. [0018] For a more accessible description of the enclaves, and more particularly of Intel® SGX, those skilled in the art can also refer to A. Adamski, Overview of Intel SGX - Part 1, SGX Internal, or to D. Boneh , Nickaming Schemes, Fast Verification, and Applications to SGX Technology, in Topics in Cryptology, CT - RSA 2017, The Cryptographers' Track at the RSA Conférence 2017, San Francisco, CA, USA, Feb. 14-17, 2017, Proceedings, pp. 149-164, or to K. Severinsen, Secure Programming with Intel SGX and Novel Applications, Thesis submitted for the Degree of Master in Programming and Networks, Dept. Of Informatics, Faculty of Mathematics and Natural Science, University of Oslo, Autumn 2017.

[0019] Pour résumer, en référence à laFIG.1, une enclave5comprend, en premier lieu, une zone6mémoire sécurisée (dénommée Page Cache d'enclave, en anglais Enclave Page Cache ou EPC), qui contient du code et des données relatives à l'enclave elle-même, et dont le contenu est chiffré et déchiffré en temps réel par une puce dédiée dénommée Moteur de Chiffrement de Mémoire (en anglais Memory Encryption Engine ou MEE). L'EPC6est implémentée au sein d'une partie de la mémoire vive dynamique (DRAM)7allouée au processeur4, et à laquelle les applications ordinaires (notamment le système d'exploitation) n'ont pas accès. To summarize, with reference to theFIG.1, an enclave5 comprises, first of all, a secure memory zone (called Enclave Page Cache, in English Enclave Page Cache or EPC), which contains code and data relating to the 'enclave itself, and whose content is encrypted and decrypted in real time by a dedicated chip called the Memory Encryption Engine (MEE). The EPC6 is implemented within a part of the dynamic random access memory (DRAM) 7 allocated to the processor4, and to which ordinary applications (in particular the operating system) do not have access.

[0020] L'enclave5comprend, en deuxième lieu, des clés cryptographiques employées pour chiffrer ou signer à la volée les données sortant de l'EPC6, ce grâce à quoi l'enclave5peut être identifiée (notamment par d'autres enclaves), et les données qu'elle génère peuvent être chiffrées pour être stockées dans des zones de mémoire non protégées (c'est-à-dire hors de l'EPC6). [0020] The enclave5 comprises, secondly, cryptographic keys used to encrypt or sign on the fly the data leaving the EPC6, whereby the enclave5 can be identified (in particular by other enclaves), and the The data it generates can be encrypted to be stored in unprotected memory areas (ie outside of EPC6).

[0021] Pour pouvoir exploiter une telle enclave5, une application8doit être segmentée en, d'une part, une ou plusieurs parties9non sécurisées (en anglais untrusted part(s)), et, d'autre part, une ou plusieurs parties10sécurisées (en anglais trusted part(s)). In order to be able to operate such an enclave5, an application8 must be segmented into, on the one hand, one or more unsecured parts9 (in English untrusted part (s)), and, on the other hand, one or more secure parts10 (in English trusted part (s)).

[0022] Seuls les processus induits par la (les) partie(s)10sécurisée(s) de l'application8peuvent accéder à l'enclave5. Les processus induits par la (les) partie(s)9non sécurisée(s) ne peuvent pas accéder à l'enclave5, c'est-à-dire qu'ils ne peuvent pas dialoguer avec les processus induits par la (les) partie(s)10sécurisée(s). Only the processes induced by the secure part (s) of the application8 can access the enclave5. The processes induced by the unsecured part (s) 9 cannot access the enclave5, that is to say, they cannot dialogue with the processes induced by the part (s) (s) 10secure (s).

[0023] La création (également dénommée instanciation) de l'enclave5et le déroulement de processus en son sein sont commandés via un jeu11d'instructions particulières exécutables par le processeur4et appelées par la (les) partie(s)10sécurisée(s) de l'application8. The creation (also called instantiation) of the enclave5 and the flow of processes within it are controlled via a set of particular instructions executable by the processor4et called by the part (s) 10secure (s) of the application8.

[0024] Parmi ces instructions : ECREATE commande la création d'une enclave5 ; EINIT commande l'initialisation de l'enclave5 ; EADD commande le chargement de code dans l'enclave5 ; ERESUME commande une nouvelle exécution de code dans l'enclave5 ; EEXIT commande la sortie de l'enclave5, typiquement à la fin d'un processus exécuté dans l'enclave5.[0024] Among these instructions: ECREATE commands the creation of an enclave5; EINIT commands the initialization of the enclave5; EADD commands the code loading into the enclave5; ERESUME commands a new execution of code in the enclave5; EEXIT controls the exit of enclave5, typically at the end of a process running in enclave5.

[0025] On a, sur laFIG.1, représenté de manière fonctionnelle l'enclave 5 sous la forme d'un bloc (en traits pointillés) englobant la partie10sécurisée de l'application8, le jeu11d'instructions du processeur4, et l'EPC6. Cette représentation n'est pas réaliste ; elle vise simplement à regrouper visuellement les principaux éléments qui composent ou exploitent l'enclave5. We have, on theFIG.1, functionally represented the enclave 5 in the form of a block (in dotted lines) encompassing the secure part of the application8, the instruction set of the processor4, and the EPC6 . This representation is not realistic; it simply aims to visually bring together the main elements that make up or operate the enclave5.

[0026] Nous expliquerons ci-après comment sont exploitées les enclaves. [0026] We will explain below how the enclaves are exploited.

[0027] Comme cela est visible sur laFIG.1, on a représenté des données12à traiter sous forme d'un dossier. Ces données12peuvent se présenter sous forme d'un ou plusieurs fichiers informatiques. Les données12peuvent être structurées, par ex. sous forme de fichiers de bases de données, de formulaires, de tableurs, de documents. Il peut également s'agir de données brutes, non structurées. As can be seen in laFIG.1, there is shown data12 to be processed in the form of a file. These data12 may be in the form of one or more computer files. The data12 can be structured, e.g. in the form of database files, forms, spreadsheets, documents. It can also be raw, unstructured data.

[0028] Ces données12sont créées, ou temporairement stockées, en clair (c'est-à-dire sous forme non chiffrée), au sein d'un terminal13dit émetteur, relié à un réseau1. These data12sont created, or temporarily stored, in clear (that is to say in unencrypted form), within a terminal13dit transmitter, connected to a network1.

[0029] Le traitement des données est destiné à être réalisé au moyen d'une application14tierce qui se présente sous forme d'un fichier de code directement exécutable par un processeur (simplement appelé „exécutable“). The data processing is intended to be carried out by means of an application14tierce which is in the form of a code file directly executable by a processor (simply called an "executable").

[0030] L'application14est créée (ou éditée), ou temporairement stockée, en clair (c'est-à-dire sous forme non chiffrée), au sein d'un terminal15dit éditeur, relié à un réseau1(qui peut être le même que celui auquel est relié l'émetteur13). The application14 is created (or edited), or temporarily stored, in clear (that is to say in unencrypted form), within a terminal15 said editor, connected to a network1 (which may be the same than the one to which the transmitter is connected13).

[0031] Avant d'être stockées sur le réseau1en vue d'un futur traitement, les données12sont d'abord chiffrées pour former un premier conteneur16crypté de données. Le déchiffrement du premier conteneur16crypté ne peut être réalisé qu'au moyen d'une première clé17cryptographique de déchiffrement. Selon un mode particulier de réalisation, une seule clé17est utilisée à la fois pour le chiffrement et le déchiffrement. Dans ce cas, le chiffrement est dit symétrique. Before being stored on the network1 for future processing, the data12 is first encrypted to form a first encrypted container16 of data. The decryption of the first encrypted container can only be carried out by means of a first decryption cryptographic key. According to a particular embodiment, a single key 17 is used for both the encryption and the decryption. In this case, the encryption is said to be symmetric.

[0032] Dans l'exemple illustré, le chiffrement est réalisé au sein du terminal13émetteur. In the example illustrated, the encryption is carried out within the transmitter terminal13.

[0033] Une fois les données12chiffrées, le premier conteneur16et la première clé17de déchiffrement sont mémorisés séparément (ici sur des nœuds2distincts du réseau1). Once the data12 has been encrypted, the first container16 and the first decryption key17 are stored separately (here on distinct nodes2 of the network1).

[0034] De même, avant d'être stocké sur le réseau1en vue d'une future utilisation, le fichier exécutable de l'application14est d'abord chiffré pour former un deuxième conteneur18crypté. Le déchiffrement du deuxième conteneur18crypté ne peut être réalisé qu'au moyen d'une deuxième clé19cryptographique de déchiffrement. Selon un mode particulier de réalisation, une seule clé19est utilisée à la fois pour le chiffrement et le déchiffrement. Dans ce cas, le chiffrement est dit symétrique. Likewise, before being stored on the network1 for future use, the executable file of the application14 is first encrypted to form a second encrypted container18. The decryption of the second encrypted container can only be achieved by means of a second decryption cryptographic key. According to a particular embodiment, a single key 19 is used for both encryption and decryption. In this case, the encryption is said to be symmetric.

[0035] Dans l'exemple illustré, le chiffrement est réalisé au sein du terminal15éditeur. In the example illustrated, the encryption is carried out within the terminal15 éditeur.

[0036] Une fois l'application14chiffrée, le deuxième conteneur18et la deuxième clé19de déchiffrement sont mémorisés séparément (ici sur des nœuds2distincts du réseau1). Once the application14 has been encrypted, the second container18 and the second decryption key19 are stored separately (here on distinct nodes2 of the network1).

[0037] Le traitement des données12peut être sollicité, sur requête, par un utilisateur (qui peut être l'éditeur15). Dans ce cas, une requête de traitement des données12par l'application14est émise par l'utilisateur. The processing of the data12 can be requested, on request, by a user (who can be the editor15). In this case, a data processing request12 by application14 is sent by the user.

[0038] Pour réaliser ce traitement, une première opération consiste, à réception (par le réseau1) de la requête de traitement des données12, à sélectionner une unité3de traitement informatique (équipant par ex. un nœud2du réseau1) sur laquelle est implémentée une enclave5. To carry out this processing, a first operation consists, on receipt (by the network1) of the data processing request12, in selecting a computer processing unit (eg equipping a node2 of the network1) on which an enclave5 is implemented.

[0039] Une deuxième opération consiste à instancier l'enclave5. A second operation consists in instantiating the enclave5.

[0040] Une troisième opération consiste à charger dans l'enclave5(de préférence via des lignes20de communication sécurisées, typiquement utilisant le protocole Transport Layer Security ou TLS) : Le premier conteneur16et la première clé17cryptographique de déchiffrement qui lui est associée ; Le deuxième18conteneur et la deuxième clé19cryptographique de déchiffrement qui lui est associée.A third operation consists in loading into the enclave5 (preferably via secure communication lines, typically using the Transport Layer Security or TLS protocol): The first container16 and the first decryption cryptographic key17 associated with it; The second18container and the second decryption cryptographic key19 associated with it.

[0041] A cet effet, l'enclave5est avantageusement pourvue, dès son instanciation, d'une émulation d'interface21de communication supportant le protocole choisi (ici TLS) pour l'échange des données sécurisées. To this end, the enclave5est advantageously provided, from its instantiation, with a communication interface21de emulation supporting the chosen protocol (here TLS) for the exchange of secure data.

[0042] Une quatrième opération consiste, dans l'enclave5, à déchiffrer les données du premier conteneur16au moyen de la première clé17de déchiffrement. A l'issue de cette opération, les données12sont accessibles en clair dans l'enclave5(mais pas depuis l'extérieur de celle-ci). A fourth operation consists, in the enclave5, in decrypting the data of the first container16 by means of the first key17de decryption. At the end of this operation, the data12 are accessible in clear in the enclave5 (but not from outside it).

[0043] A cet effet, l'enclave5est avantageusement pourvue d'un module22de déchiffrement. For this purpose, the enclave5est advantageously provided with a decryption module22.

[0044] Une cinquième opération consiste, dans l'enclave5, à déchiffrer le fichier exécutable de l'application14tierce contenu dans le deuxième conteneur18, au moyen de la deuxième clé19de déchiffrement. Cette opération est ici réalisée par le module22 de déchiffrement. A l'issue de cette opération, l'application14est accessible en clair dans l'enclave5(mais pas depuis l'extérieur de celle-ci). A fifth operation consists, in the enclave5, in decrypting the executable file of the application14tierce contained in the second container18, by means of the second decryption key19. This operation is here performed by the decryption module 22. At the end of this operation, the application 14 is accessible in clear in the enclave5 (but not from outside it).

[0045] Une sixième opération consiste alors à exécuter l'application14ainsi déchiffrée sur les données12ainsi déchiffrées. Cette opération est avantageusement conduite par un module23de calcul dont est pourvue l'enclave5. A sixth operation then consists in executing the application14 thus decrypted on the data12 thus decrypted. This operation is advantageously carried out by a calculation module with which the enclave5 is provided.

[0046] L'exécution de l'application14sur les données produit un résultat24. Ce résultat24est mémorisé, hors de l'enclave5, sur un emplacement mémoire prédéfini. Dans l'exemple illustré, le résultat24est transmis par un nœud2du réseau. The execution of the application14 on the data produces a result24. This result24 is stored, outside the enclave5, on a predefined memory location. In the example illustrated, the result24 is transmitted by a node2 of the network.

[0047] Grâce à ce procédé, les données12peuvent être analysées sans être disponibles en clair hors de l'enclave5, à laquelle les tiers n'ont pas accès. En outre, les données12ne sont pas non plus communiquées à l'éditeur15pour qu'il procède lui-même à l'exécution de son application14. L'éditeur15ne dispose donc pas des données12 : il ne dispose que du résultat fourni par l'exécution de son application14. Il en résulte le maintien de la confidentialité des données12y compris vis-à-vis des tiers qui souhaitent (et peuvent être autorisés à) les analyser. Thanks to this method, the data 12 can be analyzed without being available in the clear outside the enclave 5, to which third parties do not have access. In addition, the data12 is not communicated to the publisher15 for it to carry out its application itself14. The editor15 therefore does not have the data12: it only has the result provided by the execution of its application14. This results in maintaining the confidentiality of data12, including vis-à-vis third parties who wish (and may be authorized to) analyze them.

[0048] De même, l'application14n'est pas non plus connue des tiers (ou copiable par eux), en dépit de sa disponibilité pour le traitement des données12dans l'enclave8. Il en résulte que l'éditeur15est protégé de la copie tout en pouvant traiter les données12dès lors qu'il y est autorisé. Likewise, the application14 is not known to third parties (or can be copied by them) either, despite its availability for the processing of data12 in the enclave8. The result is that the publisher15 is copy protected while being able to process the data12 when authorized to do so.

Claims (1)

1. Procédé de traitement de données (12) informatiques au moyen d'une application (14) tierce se présentant sous forme d'un fichier exécutable, ce procédé comprenant les opérations consistant à : - Chiffrer les données (12) à traiter pour former un premier conteneur (16) crypté de données ; - Mémoriser séparément le premier conteneur (16) crypté et une première clé (17) cryptographique de déchiffrement de celui-ci ; - Chiffrer le fichier exécutable de l'application (14) tierce pour former un deuxième conteneur (18) crypté ; - Mémoriser séparément le deuxième conteneur (18) et une deuxième clé (19) cryptographique de déchiffrement associée ; - A réception d'une requête de traitement des données (12) par l'application (14) tierce, sélectionner une unité (3) de traitement informatique dans laquelle est implémenté un environnement d'exécution sécurisé par cryptographie, dit enclave (5) ; - Instancier l'enclave (5) ; - Charger dans l'enclave (5) le premier conteneur (16) et la première clé (17) cryptographique de déchiffrement associée, ainsi que le deuxième conteneur (18) et la deuxième clé (19) cryptographique de déchiffrement associée ; - Dans l'enclave (5) : o Déchiffrer les données (12) du premier conteneur (16) au moyen de la première clé (17) cryptographique de déchiffrement ; o Déchiffrer le fichier exécutable de l'application (14) tierce contenu(s) dans le deuxième conteneur (18), au moyen de la deuxième clé (19) cryptographique de déchiffrement ; o Exécuter l'application (14) tierce sur les données (12) ainsi déchiffrées ; - Hors de l'enclave (5), mémoriser le résultat (24) de cette exécution sur un emplacement mémoire prédéfini.1. A method of processing computer data (12) by means of a third-party application (14) in the form of an executable file, this method comprising the operations of: - Encrypt the data (12) to be processed to form a first encrypted data container (16); - Separately storing the first encrypted container (16) and a first cryptographic key (17) for decryption thereof; - Encrypt the executable file of the third-party application (14) to form a second encrypted container (18); - Separately store the second container (18) and a second associated cryptographic decryption key (19); - On receipt of a data processing request (12) by the third-party application (14), select a computer processing unit (3) in which an execution environment secured by cryptography, called an enclave (5) is implemented ; - Instantiate the enclave (5); - Loading into the enclave (5) the first container (16) and the first associated cryptographic decryption key (17), as well as the second container (18) and the second associated cryptographic decryption key (19); - In the enclave (5): o Decrypt the data (12) of the first container (16) by means of the first cryptographic decryption key (17); o Decrypt the executable file of the third-party application (14) contained in the second container (18), by means of the second cryptographic decryption key (19); o Execute the third-party application (14) on the data (12) thus decrypted; - Outside the enclave (5), store the result (24) of this execution on a predefined memory location.
CH00752/19A 2019-06-07 2019-06-07 A method of processing, in an enclave, encrypted computer data by means of an encrypted application containing an executable. CH716280A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CH00752/19A CH716280A2 (en) 2019-06-07 2019-06-07 A method of processing, in an enclave, encrypted computer data by means of an encrypted application containing an executable.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH00752/19A CH716280A2 (en) 2019-06-07 2019-06-07 A method of processing, in an enclave, encrypted computer data by means of an encrypted application containing an executable.

Publications (1)

Publication Number Publication Date
CH716280A2 true CH716280A2 (en) 2020-12-15

Family

ID=73727405

Family Applications (1)

Application Number Title Priority Date Filing Date
CH00752/19A CH716280A2 (en) 2019-06-07 2019-06-07 A method of processing, in an enclave, encrypted computer data by means of an encrypted application containing an executable.

Country Status (1)

Country Link
CH (1) CH716280A2 (en)

Similar Documents

Publication Publication Date Title
FR3022661A1 (en) METHOD AND DEVICE FOR ENCODING SOURCE FILES FOR SAFE DELIVERY OF SOURCE CODE
Madyatmadja et al. Performance testing on Transparent Data Encryption for SQL Server's reliability and efficiency
CH716297A2 (en) A method of processing, in an enclave, encrypted computer data by means of an encrypted application containing source code, with prior auditing thereof.
CH716295A2 (en) A method of multiple signature of a transaction intended for a blockchain, by means of cryptographic keys distributed among the nodes of a peer-to-peer network.
CH716280A2 (en) A method of processing, in an enclave, encrypted computer data by means of an encrypted application containing an executable.
CH716278A2 (en) A method of processing, in an enclave, encrypted computer data by means of an encrypted application containing source code.
EP3903463A1 (en) Platform for securing data
CH716274A2 (en) A method of processing, in an enclave, encrypted computer data by means of an encrypted application.
Santos et al. Enhancing data security in cloud using random pattern fragmentation and a distributed nosql database
CH716282A2 (en) A method of distributed processing, in enclaves, of encrypted computer data by means of an encrypted application.
CH716298A2 (en) A method of storing, in encrypted form, an application on a blockchain network, with prior audit of the source code of this application.
CH716281A2 (en) A method of processing, within a blockchain and sub-enclave network, encrypted computer data by means of an encrypted application.
CH716279A2 (en) A method of processing, within a blockchain and sub-enclave network, encrypted computer data by means of an encrypted application containing source code.
CH716275A2 (en) A method of processing, within a blockchain and sub-enclave network, encrypted computer data by means of an encrypted application.
CH716276A2 (en) A method of processing, within a blockchain and sub-enclave network, computer data encrypted by means of an encrypted application, for an authorized third party.
CH716277A2 (en) Process for processing, within a blockchain and sub-enclave network, computer data encrypted by means of an encrypted application, subject to geolocation.
CH716283A2 (en) A method of distributed processing, within a blockchain network and sub-enclaves, of computer data encrypted by means of an encrypted application.
CH716285A2 (en) Method for checking the biometric data of an individual, with registration, in a blockchain, of an analysis result.
CH716284A2 (en) Process for distributed processing, within a blockchain network and sub-enclaves, of computer data encrypted with a fragmented key.
CH716294A2 (en) Decentralized signature process, under biometric control and under conditions of personal identification and geolocation, of a transaction intended for a blockchain.
CH716263A2 (en) A method of storing computer data by distributing an encrypted container and its fragmented decryption key on a blockchain network.
CH716265A2 (en) Method of storing computer data on a network with proof of storage from a compute node equipped with a cryptographic enclave.
CH716264A2 (en) A method of storing computer data on a network with proof of storage obtained by a storage node equipped with a cryptographic enclave.
Vishnoi et al. Securing medical transcription using homomorphic transform
CH716261A2 (en) A method of storing computer data by distributing an encrypted container and its decryption key on a blockchain network.

Legal Events

Date Code Title Description
AZW Rejection (application)