Conception d’architecture informatique multipartie

Stockage Blob Azure
Azure Kubernetes Service (AKS)
Azure SQL Database

La calcul multipartite, ou calcul préservant la confidentialité, permet aux différentes parties d’une relation commerciale de partager des données, d’effectuer des calculs et de parvenir à un résultat mutuel sans divulguer leurs données privées. Les services Azure peuvent vous aider à créer une solution de calcul multipartite. Cette solution peut inclure des ressources cloud et locales.

Le calcul multipartite comporte les attributs suivants :

  • Plusieurs entreprises ou organisations sont impliquées.
  • Les parties sont indépendantes.
  • Les parties ne souhaitent pas partager toutes leurs données.
  • Toutes les parties accèdent à une plateforme commune de stockage de données et de calcul.
  • Certains processus ne doivent pas être partagés avec les parties impliquées.

Une chaîne logistique est un exemple de workflow impliquant plusieurs parties. Les matières premières passent de leur site d’origine au fabricant. Le fabricant fait appel aux transporteurs pour envoyer ses produits vers le hub de distribution. Ensuite, les marchandises sont envoyées aux détaillants à partir du hub de distribution.

Diagramme montrant les différents membres d’une chaîne logistique sous la forme d’images clipart.

Ce processus nécessite la collaboration des entreprises. Ces parties incluent le fournisseur de matières premières, le fabricant, les sociétés de transport, les entrepôts et les détaillants. Le produit passe de mains en mains plusieurs fois dans la chaîne logistique. Les différentes parties doivent pouvoir suivre le trajet du produit à chaque étape.

Technologies de calcul multipartite

Le calcul multipartite implique plusieurs technologies qui permettent aux différentes parties d’effectuer des transactions de façon sécurisée sur un réseau.

Diagramme montrant la distribution de registres de données vers un calcul confidentiel, Azure Kubernetes Service, des machines virtuelles et des offres partenaires.

Pour cela, vous pouvez utiliser des registres distribués, comme les blockchains, par exemple. Une blockchain est un registre de données qui peut être partagé entre plusieurs parties indépendantes qui acceptent de partager les données qui se trouvent dans le registre. Les transactions sont collectées sous la forme de blocs, chaque bloc étant lié au précédent. Certains registres distribués n’utilisent pas de blocs. Chaque transaction peut être liée à la transaction précédente à l’intérieur du registre.

Une autre possibilité pour le calcul multipartite consiste à utiliser la mémoire matérielle protégée du processeur. Ces régions, appelées enclaves sécurisées, sont protégées par chiffrement. Cette approche signifie que même un administrateur privilégié disposant d’un accès complet au serveur ne pourra pas accéder aux processus ni aux données qui se trouvent à l’intérieur de ces enclaves sécurisées.

Étant donné que les enclaves sécurisées peuvent s’attester à distance auprès d’autres enclaves, vous pouvez concevoir un réseau multi-organisation, dans lequel le système s’exécute à partir des enclaves. Cette approche est appelée environnement d’exécution approuvé.

Azure propose un service géré appelé « Registre confidentiel Azure », qui vous permet d’exécuter un modèle blockchain sur des enclaves sécurisées.

Enfin, vous pouvez choisir un système centralisé, qui offre immuabilité et crédibilité. Le registre Azure SQL Database permet d’établir la confiance nécessaire à l’utilisation du calcul multipartite au sein d’une base de données relationnelle. Vous n’avez peut-être pas besoin d’un consensus décentralisé, mais simplement de l’immuabilité du registre.

Modèles de réseau blockchain

Pour déterminer si la blockchain est adapté à un processus métier, posez-vous les questions suivantes :

  • Ce processus métier dépasse-t-il les limites de la confiance ?
  • Est-ce que les différentes parties partagent et mettent à jour des données ?
  • Existe-t-il des intermédiaires qui contrôlent la seule source de vérité ?
  • Le processus implique-t-il des étapes de vérification manuelles à faible valeur ?

Si vous avez répondu Oui à ces questions, l’approche blockchain sera la mieux adaptée au processus métier. Même si vous avez répondu non à certaines questions, l’approche blockchain vous sera quand même utile. Étudiez attentivement les autres options de calcul avant de vous décider.

Il existe différents types de réseaux blockchain qui peuvent répondre aux besoins de votre entreprise. L’une des caractéristiques sont les critères de participation au réseau. Si le réseau est ouvert à tous, il s’agit d’un réseau blockchain public. Il suffit de télécharger le client et de rejoindre le réseau. La plupart des cryptomonnaies fonctionnent de cette façon.

Comme alternative, vous avez le réseau blockchain avec autorisations qui nécessite que les membres du réseau approuvent votre ajout. Ce modèle fonctionne pour les entreprises qui travaillent avec des organisations connues. Par exemple, un supermarché peut exiger un réseau blockchain fermé avec autorisations pour les acteurs de la chaîne logistique.

Un processus métier peut exiger uniquement des données infalsifiables ou prouvant leur falsification, ce que ne nécessite pas une blockchain. Si votre processus peut s’exécuter de manière centralisée ou si l’ensemble des parties acceptent de partager leurs données, la blockchain ne sera pas utile.

Calcul multipartite Azure

Cette section décrit les options de calcul multipartite qui sont disponibles dans les services Azure.

Blockchain avec des machines virtuelles Azure

Vous pouvez exécuter un registre à l’aide de machines virtuelles Azure. Créez autant de machines virtuelles que nécessaire et connectez-les dans un réseau blockchain.

Le fait de déployer vos propres machines virtuelles vous permet de personnaliser votre solution. Cette approche implique des frais de gestion, comme ceux liés aux mises à jour, à la haute disponibilité et aux exigences de continuité d’activité. Vous pouvez avoir plusieurs organisations et plusieurs comptes cloud. La connexion des nœuds peut se révéler compliquée.

Des modèles de déploiement sont disponibles dans Azure pour la plupart des registres blockchain de machine virtuelle.

Blockchain sur Kubernetes

Étant donné que la plupart des registres blockchain prennent en charge le déploiement dans des conteneurs Docker, vous pouvez utiliser Kubernetes pour gérer les conteneurs. Azure propose une offre Kubernetes managée appelée Azure Kubernetes Service (AKS), que vous pouvez utiliser pour déployer et configurer vos nœuds blockchain.

Les implémentations d’AKS sont fournies avec un service managé pour les machines virtuelles qui alimentent le cluster AKS. Toutefois, votre organisation doit toujours gérer vos clusters AKS ainsi que les options de réseau ou de stockage de votre architecture.

Des modèles de déploiement sont disponibles dans Azure pour la plupart des registres blockchain AKS.

Blockchain en tant que service

Azure prend en charge des services tiers qui exécutent des registres dans Azure. Le fournisseur de services gère l’infrastructure. Il gère la maintenance et les mises à jour. La haute disponibilité et la gestion des consortiums sont incluses dans le service.

ConsenSys permet l’utilisation de Quorum dans Azure. Quorum est une couche de protocole open source qui prend en charge les applications basées sur Ethereum.

D’autres offres pourront être proposées à l’avenir.

Registre confidentiel Azure

Le Registre confidentiel Azure est un service géré basé sur le Confidential Consortium Framework. Il implémente un réseau blockchain de nœuds avec autorisations dans le calcul confidentiel Azure. Le Registre confidentiel s’appuie sur le chiffrement existant.

  • Chiffrement existant
    • Données au repos. Chiffrez les données inactives lorsqu’elles sont stockées dans un stockage d’objets blob ou dans une base de données.
    • Données en transit. Chiffrez les données qui circulent entre les réseaux publics ou privés.
  • Informatique confidentielle
    • Données en cours d’utilisation. Chiffrez les données en cours d’utilisation lorsqu’elles sont en mémoire et pendant le calcul.

Le calcul confidentiel permet de chiffrer les données dans la mémoire principale. Le calcul confidentiel Azure vous permet de traiter des données issues de plusieurs sources sans exposer les données entrées à d’autres parties. Ce type de calcul sécurisé prend en charge les scénarios de calcul multipartite dans lesquels la protection des données est obligatoire à chaque étape (par exemple pour la détection de blanchiment d’argent, la détection de fraudes et l’analyse sécurisée des données de santé).

Les données stockées dans le Registre confidentiel sont immuables et infalsifiables dans le registre d’ajout uniquement. Le registre est également vérifiable de manière indépendante. Le Registre confidentiel utilise des enclaves sécurisées pour un réseau blockchain décentralisé et exige au minimum une base de calcul approuvée.

Registre Azure SQL Database

Le registre Azure SQL Database permet aux participants de vérifier l’intégrité des données hébergées de manière centralisée, sans le consensus réseau d’un réseau blockchain. L’approbation est importante pour certaines solutions centralisées, mais l’infrastructure décentralisée n’est pas nécessaire. Cette approche permet d’éviter la complexité et les exigences de performances d’une telle infrastructure.

Diagramme montrant l’architecture du registre Azure SQL Database.

Notes

Le Registre Azure SQL Database est actuellement en préversion publique.

Le registre fournit des fonctionnalités de preuve de falsification pour votre base de données. Ces fonctionnalités vous permettent d’attester par chiffrement que vos données n’ont pas été falsifiées.

Le registre vous aide à protéger les données contre les utilisateurs malveillants ou dotés de privilèges élevés, comme les administrateurs de base de données, les administrateurs système et les administrateurs cloud. Les données d’historique sont conservées. Si une ligne est mise à jour dans la base de données, sa valeur précédente est conservée et protégée dans un tableau d’historique. Cela offre une protection sans nécessiter la modification de l’application.

Le registre est une fonctionnalité d’Azure SQL Database. Il peut être activé dans n’importe quelle instance d’Azure SQL Database existante.

Comparaison des options

Registre confidentiel et registre Azure SQL Database

Ce tableau compare le Registre confidentiel au registre Azure SQL Database.

Registre SQL Database Registre confidentiel
Système centralisé nécessitant des preuves de falsification Oui Non
Système décentralisé nécessitant que les données soient infalsifiables Non Oui
Protège les données relationnelles contre toute falsification Oui Non
Protège les données non structurées contre toute falsification Non Oui
Stockage hors chaîne sécurisé des données d’une blockchain Oui Non
Stockage hors chaîne sécurisé des fichiers référencés à partir d’une blockchain Non Oui
Les données relationnelles sont interrogeables Oui Non
Les données stockées non structurées sont interrogeables Non Oui

Registre confidentiel et Stockage Blob Azure

La fonctionnalité de stockage immuable du Stockage Blob Azure garantit que les données qui y sont écrites pourront être lues mais jamais modifiées. Ce tableau compare cette technologie au Registre confidentiel.

Registre confidentiel Stockage non modifiable
Enclaves matérielles confidentielles Oui Non
Intégrité des données avec ajout uniquement Yes Oui, limité aux intervalles
Chiffrement des données en cours d’utilisation Oui Non
Preuve du registre blockchain Oui Non

Choix du calcul multipartite

Ce diagramme résume les options de calcul multipartite proposées par les services Azure.

Diagramme montrant les différentes options de calcul multipartite.

Téléchargez un fichier Visio de cette architecture.

Étapes suivantes