# Vue d'ensemble

L'objectif de la technologie Seald est de protéger des données dans une application en partant du principe que les serveurs de l'application peuvent devenir malveillants.

# Faiblesse du chiffrement en transit & au repos

De façon générale, lorsque l'on développe une application, celle-ci est utilisée pour intermédier des données entre plusieurs utilisateurs.

Une méthodologie classique pour intégrer une politique de chiffrement dans une telle application est d'ajouter du chiffrement en transit et au repos (éventuellement avec une gestion dans clés déportée dans un KMS) tel que décrit dans le schéma ci-dessous.

uml diagram

N'employer que du chiffrement en transit et au repos introduit une faiblesse structurelle : le Back-end dispose des données en clair (a minima au cours de l'exécution).

WARNING

Si le Back-end est compromis, l'ensemble des données auxquelles ce Back-end a accès peut être compromis.

# Attitude défensive vis-à-vis de l'hébergeur

Ce que propose Seald est d'adopter une attitude défensive vis-à-vis de l'hébergeur et considérer que celui-ci puisse être compromis.

Pour étayer un peu plus les motivations de cette attitude qui peut sembler radicale, vous pouvez vous reporter à notre livre blanc (opens new window).

# Chiffrement côté client

La seule façon d'assurer qu'un hébergeur (que l'on considère comme malveillant) ne peut lire les données est de ne pas lui permettre de lire les données qu'il manipule au moyen de chiffrement dit "de bout-en-bout" qui est effectué côté client.

uml diagram

Seald propose une solution permettant "clé-en-main" de mettre en oeuvre du chiffrement côté client dans des applications web, mobile et de bureau.

# Schéma de principe

De façon simplifiée, voici la façon dont le Seald-SDK s'intègre :

uml diagram

Les données sont chiffrées au moyen du Seald-SDK depuis le front-end de l'application (web, mobile, desktop).

Le Seald-SDK utilise pour cela l'identité de l'utilisateur qui est générée lors de la création du compte et récupérable au moyen d'une des trois méthodes proposées :

Le Seald-SDK distribue les clés pour les destinataires au travers de l'API Seald qui permet de :

  • récupérer les identités publiques des autres utilisateurs ;
  • créer une nouvelle clé et la distribuer chiffrée de bout-en-bout à d'autres utilisateurs ;
  • autoriser, révoquer d'autres utilisateurs ou groupes à accéder à une donnée précédemment chiffrée ;
  • récupérer une clé chiffrée pour soi-même afin de déchiffrer une donnée précédemment chiffrée.