CH716297A2 - Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée contenant du code source, avec audit préalable de celui-ci. - Google Patents

Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée contenant du code source, avec audit préalable de celui-ci. Download PDF

Info

Publication number
CH716297A2
CH716297A2 CH00769/19A CH7692019A CH716297A2 CH 716297 A2 CH716297 A2 CH 716297A2 CH 00769/19 A CH00769/19 A CH 00769/19A CH 7692019 A CH7692019 A CH 7692019A CH 716297 A2 CH716297 A2 CH 716297A2
Authority
CH
Switzerland
Prior art keywords
source code
data
enclave
container
encrypted
Prior art date
Application number
CH00769/19A
Other languages
English (en)
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 CH00769/19A priority Critical patent/CH716297A2/fr
Publication of CH716297A2 publication Critical patent/CH716297A2/fr

Links

Classifications

    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (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 déterminée par un code source contenu 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, le code source audité et, lorsqu'il ne comprend pas de commande décrétée interdite, compilé pour permettre l'exécution de l'application ( 14 ) sur les données ( 12 ).

Description

DOMAINE TECHNIQUE
[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.
ART ANTERIEUR
[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).
[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).
[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.
[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.
[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.
[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.
[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 de ses applications, dont le développement est le fruit d'un savoir-faire précieux.
[0009] Cependant le propriétaire des données peut souhaiter être assuré que l'application (ou les applications) du tiers intéressé ne contien(nen)t pas d'instructions qu'il n'autoriserait pas, par ex. une fonction de copie intégrale de ses données. Se pose donc le problème de l'audit de l'application (des applications) tierce(s) en dépit de son (leur) chiffrement.
[0010] 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 au code source de l'application elle-même de demeurer confidentiel, tout en vérifiant toutefois que cette application remplit certaines conditions.
RESUME DE L'INVENTION
[0011] Il est proposé un procédé de traitement conditionnel de données informatiques au moyen d'une application tierce déterminée par un code source, 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 code source 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>- Charger dans l'enclave un programme d'audit de code source, comprenant une liste de commandes décrétées interdites et des instructions pour vérifier qu'un code source ne contient pas de commande décrétée interdite ; <tb><SEP>- Dans l'enclave : <tb><SEP><SEP>o Déchiffrer le code source 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 le programme d'audit sur le code source ainsi déchiffré ; <tb><SEP><SEP>o Si le code source ainsi audité ne contient aucune commande réputée interdite, compiler le code source ainsi déchiffré pour obtenir un fichier exécutable de l'application tierce, déchiffrer les données du premier conteneur au moyen de la première clé cryptographique de déchiffrement et exécuter l'application tierce sur les données ainsi déchiffrées ; <tb><SEP><SEP>o Si le code source ainsi audité contient au moins une commande réputée interdite, générer un message d'alerte ; <tb><SEP>- Hors de l'enclave : <tb><SEP><SEP>o Mémoriser le résultat de l'exécution sur un emplacement mémoire prédéfini, ou <tb><SEP><SEP>o Publier le message d'alerte.
BREVE DESCRIPTION DES FIGURES
[0012] 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.
DESCRIPTION DETAILLEE DE L'INVENTION
[0013] 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).
[0014] 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).
[0015] 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).
[0016] 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.
[0017] 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).
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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).
[0022] Pour pouvoir exploiter une telle enclave5, une application8 doit ê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)).
[0023] 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).
[0024] 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.
[0025] 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.
[0026] On a, sur laFIG.1, représenté de manière fonctionnelle l'enclave5sous 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.
[0027] Nous expliquerons ci-après comment sont exploitées les enclaves.
[0028] Comme cela est visible sur laFIG.2, 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.
[0029] 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.
[0030] Le traitement des données est destiné à être réalisé au moyen d'une application14tierce qui se présente sous forme d'un ou plusieurs fichiers contenant du code source qui détermine des instructions pour l'application.
[0031] 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).
[0032] 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.
[0033] Dans l'exemple illustré, le chiffrement est réalisé au sein du terminal13émetteur.
[0034] 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).
[0035] De même, avant d'être stockée sur le réseau1en vue d'une future utilisation, l'application14est d'abord chiffrée 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.
[0036] Dans l'exemple illustré, le chiffrement est réalisé au sein du terminal15éditeur.
[0037] 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).
[0038] 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.
[0039] 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.
[0040] Une deuxième opération consiste à instancier l'enclave5.
[0041] 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.
[0042] 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.
[0043] Préalablement au traitement des données12par l'application14tierce, il est souhaitable de vérifier que celle-ci remplit certaines conditions, et plus précisément qu'elle ne contient pas d'instruction de nature à compromettre la confidentialité des données12.
[0044] C'est pourquoi il est prévu, préalablement au traitement des données12par l'application14tierce, d'auditer son code source au moyen d'un programme22d'audit de code source. Ce programme comprend une liste de commandes décrétées interdites, et des instructions pour vérifier qu'un code source ne contient pas de commande décrétée interdite.
[0045] Peuvent ainsi être considérées comme des commandes réputées interdites : La copie de tout ou partie des données12 ; La falsification de tout ou partie de données12.
[0046] Une quatrième opération consiste par conséquent à charger dans l'enclave le programme22d'audit, typiquement à partir d'un nœud2du réseau et via une ligne20de communication sécurisée.
[0047] Une cinquième opération consiste, dans l'enclave5, à déchiffrer le code source de l'application14tierce contenu dans le deuxième conteneur18, au moyen de la deuxième clé19de déchiffrement. A cet effet, l'enclave5est avantageusement pourvue d'un module23de déchiffrement.
[0048] A l'issue de cette opération, l'application14est accessible en clair dans l'enclave5(mais pas depuis l'extérieur de celle-ci).
[0049] Une sixième opération consiste, dans l'enclave5à exécuter le programme22d'audit sur le code source ainsi déchiffré, aux fins de vérifier qu'il ne contient pas de commande décrétée interdite.
[0050] Si le code source ainsi audité contient au moins une commande décrétée interdite, il est généré un message d'alerte, et ce message est publié hors de l'enclave5. Dans ce cas, le déchiffrement du premier conteneur16n'est pas réalisé, et le traitement des données12n'est pas effectué.
[0051] Si au contraire le code source ainsi audité ne contient aucune commande décrétée interdite, une septième opération consiste à compiler le code source ainsi déchiffré. Cette compilation est réalisée au moyen d'un compilateur24(préalablement chargé dans l'enclave5), le résultat de cette compilation étant un exécutable25.
[0052] Une huitième opération consiste alors, dans l'enclave5, à déchiffrer les données du premier conteneur16au moyen de la première clé17de déchiffrement. Cette opération est ici réalisée par le module23de 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).
[0053] Une neuvième opération consiste alors à exécuter l'application14ainsi déchiffrée (c'est-à-dire, plus précisément, en faisant tourner l'exécutable25) sur les données12ainsi déchiffrées. Cette opération est avantageusement conduite par un module26de calcul dont est pourvue l'enclave5.
[0054] L'exécution de l'application14sur les données produit un résultat27. Ce résultat27est mémorisé, hors de l'enclave5, sur un emplacement mémoire prédéfini. Dans l'exemple illustré, le résultat27est transmis à un nœud2du réseau.
[0055] 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ées12\ y compris vis-à-vis des tiers qui souhaitent (et peuvent être autorisés à) les analyser.
[0056] 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'enclave5. 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é.
[0057] Par ailleurs, le chiffrement de son code source permet à l'éditeur de maintenir la confidentialité, vis-à-vis des tiers, sur les opérations que réalise son application14.
[0058] Cependant l'audit du code source permet de garantir que celui-ci ne contient pas de commande interdite, et ainsi de garantir que la confidentialité des données est respectée par l'application14tierce.

Claims (1)

1. Procédé de traitement conditionnel de données (12) informatiques au moyen d'une application (14) tierce déterminée par un code source, 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 code source 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 ; - Charger dans l'enclave un programme (22) d'audit de code source, comprenant une liste de commandes décrétées interdites et des instructions pour vérifier qu'un code source ne contient pas de commande décrétée interdite ; - Dans l'enclave (5) : o Déchiffrer le code source de l'application (14) tierce contenu dans le deuxième conteneur (18), au moyen de la deuxième clé (19) cryptographique de déchiffrement ; o Exécuter le programme (22) d'audit sur le code source ainsi déchiffré ; o Si le code source ainsi audité ne contient aucune commande décrétée interdite, compiler le code source ainsi déchiffré pour obtenir un fichier (25) exécutable de l'application (14) tierce, déchiffrer les données (12) du premier conteneur (16) au moyen de la première clé (17) cryptographique de déchiffrement et exécuter l'application (14) tierce sur les données (12) ainsi déchiffrées ; o Si le code source ainsi audité contient au moins une commande décrétée interdite, générer un message d'alerte ; - Hors de l'enclave (5) : o Mémoriser le résultat (27) de cette exécution sur un emplacement mémoire prédéfini, ou o Publier le message d'alerte.
CH00769/19A 2019-06-07 2019-06-07 Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée contenant du code source, avec audit préalable de celui-ci. CH716297A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CH00769/19A CH716297A2 (fr) 2019-06-07 2019-06-07 Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée contenant du code source, avec audit préalable de celui-ci.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH00769/19A CH716297A2 (fr) 2019-06-07 2019-06-07 Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée contenant du code source, avec audit préalable de celui-ci.

Publications (1)

Publication Number Publication Date
CH716297A2 true CH716297A2 (fr) 2020-12-15

Family

ID=73727429

Family Applications (1)

Application Number Title Priority Date Filing Date
CH00769/19A CH716297A2 (fr) 2019-06-07 2019-06-07 Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée contenant du code source, avec audit préalable de celui-ci.

Country Status (1)

Country Link
CH (1) CH716297A2 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2602680A (en) * 2021-03-19 2022-07-13 The Blockhouse Tech Limited Code deployment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2602680A (en) * 2021-03-19 2022-07-13 The Blockhouse Tech Limited Code deployment
WO2022195293A1 (fr) * 2021-03-19 2022-09-22 The Blockhouse Technology Limited Déploiement de code
GB2602680B (en) * 2021-03-19 2023-01-11 The Blockhouse Tech Limited Code deployment

Similar Documents

Publication Publication Date Title
US20240126930A1 (en) Secure Collaboration Between Processors And Processing Accelerators In Enclaves
US10681019B2 (en) Secure sharing and collaborative editing of documents in cloud based applications
US8776258B2 (en) Providing access rights to portions of a software application
EP2958040B1 (fr) Procédé et dispositif de codage de fichiers sources pour la livraison sécurisée de code source
CH716297A2 (fr) Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée contenant du code source, avec audit préalable de celui-ci.
FR3069935A1 (fr) Dispositifs et procedes de protection de propriete intellectuelle de logiciel pour des plates-formes integrees
Santos et al. Enhancing data security in cloud using random pattern fragmentation and a distributed nosql database
CH716295A2 (fr) Procédé de signature multiple d&#39;une transaction destinée à une blockchain, au moyen de clés cryptographiques distribuées parmi les noeuds d&#39;un réseau pair-à-pair.
CH716278A2 (fr) Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée contenant du code source.
CH716274A2 (fr) Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée.
CH716280A2 (fr) Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée contenant un exécutable.
CH716282A2 (fr) Procédé de traitement distribué, sous enclaves, de données informatiques chiffrées au moyen d&#39;une application chiffrée.
CH716298A2 (fr) Procédé de stockage, sous forme cryptée, d&#39;une application sur un réseau blockchain, avec audit préalable du code source de cette application.
CH716279A2 (fr) Procédé de traitement, au sein d&#39;un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée contenant du code source.
CH716275A2 (fr) Procédé de traitement, au sein d&#39;un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée.
CH716281A2 (fr) Procédé de traitement, au sein d&#39;un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée.
CH716276A2 (fr) Procédé de traitement, au sein d&#39;un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée, pour un tiers autorisé.
CH716277A2 (fr) Procédé de traitement, au sein d&#39;un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée, sous condition de géolocalisation.
CH716283A2 (fr) Procédé de traitement distribué, au sein d&#39;un réseau blockchain et sous enclaves, de données informatiques chiffrées au moyen d&#39;une application chiffrée.
CH716285A2 (fr) Procédé de contrôle de données biométriques d&#39;un individu, avec inscription, dans une blockchain, d&#39;un résultat d&#39;analyse.
CH716284A2 (fr) Procédé de traitement distribué, au sein d&#39;un réseau blockchain et sous enclaves, de données informatiques chiffrées avec une clé fragmentée.
CH716294A2 (fr) Procédé de signature décentralisée, sous contrôle biométrique et sous conditions d&#39;identification personnelle et de géolocalisation, d&#39;une transaction destinée à une blockchain.
Katarahweire et al. A Multi-level Data Sensitivity Model for Mobile Health Data Collection Systems
Thulnoon et al. Using aspect oriented programming to enforce privacy preserving communication in distributed systems
Dhiman et al. Homomorphic Encryption Library, Framework, Toolkit and Accelerator: A Review

Legal Events

Date Code Title Description
AZW Rejection (application)