Protocoles

Inscription

L’inscription à la solution Seald se fait de la façon suivante :

  1. Lorsqu’un utilisateur installe Seald pour la première fois, l’application génère une paire de clé asymétrique ;
  2. La clé publique est ensuite envoyée aux serveurs Seald, et une identité Seald est créée pour cet utilisateur SealdID ;
  3. Pour s’authentifier, l’utilisateur effectue une requête aux serveurs Seald, qui lui répondront un « challenge » à signer avec sa clé privée afin de propuver son identité. Cette opération est complétement transparente pour l’utilisateur, et ne nécessite aucun mot de passe ;
  4. À sa première utilisation, il n’y a encore aucune adresse email rattachée au compte de l’utilisateur. L’application invitera donc l’utilisateur à renseigner son adresse email, celle-ci sera ensuite vérifiée par un mot de passe à usage unique. Ce lien permet à n’importe quel utilisateur de retrouver les clés publiques des destinataires des messages.

Lorsqu’un utilisateur installe Seald sur un appareil supplémentaire (mobile ou ordinateur), une nouvelle paire de clé publique / privée est générée sur le nouvel équipement, et peut être rattachée au SealdID déjà existant via un protocole de signature mutuelle.

Chiffrement

Mode de bout-en-bout

  • Mode de chiffrement bout-en-bout (end-to-end) : ce mode est utilisé lorsque l'émetteur et le destinataire possèdent l'application Seald. Seald sécurise les emails et documents à l'aide de l'algorithme AES256_CBC et vérifiés par HMAC_SHA256 en mode encrypt_then_hmac. Les clés de message sont sécurisées par RSA en mode OAEP (tel que défini dans la norme PKCS #1) avec des clés de 4096 bits, en utilisant une clé privée ne transitant jamais sur nos serveurs.
  • Mode de chiffrement authentifié : ce mode est utilisé lorsque le destinataire ne possède pas l'application Seald. Seald sécurise les emails et documents uniquement à l'aide de l'algorithme AES256_CBC et vérifiés par HMAC_SHA256 en mode encrypt_then_hmac et les serveurs Seald deviennent tiers de confiance, le déchiffrement se réalisera par une authentification du destinataire dans le navigateur.

Chiffrement

Le chiffrement d’un Message par un utilisateur possédant la solution Seald à destination d’utilisateurs ayant également Seald se fait de la façon suivante :

  1. Une MessageKey est générée localement sur l’ordinateur de l’utilisateur souhaitant protéger un document ;
  2. Si les destinataires du message ne sont pas en cache dans l’application, leurs clés publiques sont récupérées sur les serveurs de Seald (à partir de leurs adresses email) ;
  3. Pour chaque clé publique ainsi récupérée, un EncryptedMessageKey est ainsi générée localement sur le poste de l’utilisateur souhaitant chiffrer le Message ;
  4. Le client Seald effectue ensuite une requête aux serveurs Seald afin de générer un MessageID. À cette requête est également attaché l’ensemble des EncryptedMessageKey afin qu’elles puissent être récupérées par leurs destinataires respectifs ;
  5. À partir du Message chiffré à l’aide de la MessageKey et du MessageID, le fichier au format propriétaire Seald est ensuite généré, prêt à être envoyé aux destinataires.

Déchiffrement

Une fois un Message protégé avec Seald, le déchiffrement de ce document par un utilisateur possédant la solution Seald se fait de la façon suivante :

  1. Le MessageID ainsi que la forme chiffrée du Message peuvent être récupérés à partir du fichier au format propriétaire Seald ;
  2. Une requête est effectuée aux serveurs Seald pour vérifier si une EncryptedMessageKey correspondant au MessageID existe pour l’utilisateur ;
  3. A partir de l’EncryptedMessageKey, et grâce à sa clé privée, l’utilisateur peut récupérer la MessageKey nécessaire au déchiffrement du fichier ;
  4. Le logiciel Seald déchiffre le fichier dans un répertoire temporaire, et vérifie si le nom du fichier coïncide avec l'original. Si cela n’est pas le cas une alerte demandant à l’utilisateur de vérifier si le fichier est bien celui qu’il souhaite ouvrir (et non un fichier « .exe », « .vbs », etc.).
  5. Le document ainsi déchiffré est ensuite ouvert, la version déchiffrée sera supprimée une fois le travail sur ce document terminé.

Mode authentifié

Chiffrement

Le chiffrement d’un Message par un utilisateur possédant la solution Seald à destination d’utilisateurs n’ayant pas Seald se fait de la façon suivante :

  1. Une MessageKey est générée localement sur l’ordinateur de l’utilisateur souhaitant protéger un document ;
  2. Le client Seald effectue ensuite une requête aux serveurs Seald afin de générer un MessageID. À cette requête est également attaché la MessageKey pour chaque destinataire n’ayant pas Seald afin d’être convertie en EntrustedMessageKey pour pouvoir être récupérée par leurs destinataires respectifs après authentification.
  3. À partir du document chiffré à l’aide de la MessageKey et du MessageID, le fichier au format propriétaire Seald est ensuite généré, prêt à être envoyé aux destinataires.

Déchiffrement

Une fois un Message protégé avec Seald, le déchiffrement de ce document par un utilisateur ne possédant pas la solution Seald se fait de la façon suivante :

  1. Le fichier au format propriétaire « Seald » est présenté sous l’extension « .shtml », ainsi, il sera directement ouvert dans le navigateur de l’utilisateur si Seald n’est pas installé. Si cela n'était pas le cas, une page de déchiffrement manuelle est mise à disposition ici ;
  2. L’utilisateur sera invité à cliquer sur un bouton, récupérant ainsi les primitives cryptographiques permettant de déchiffrer le message depuis nos serveurs web. Le MessageID ainsi que la forme chiffrée du Message sont injectés dans le contexte de la page de déchiffrement ouverte dans le navigateur ;
  3. L’utilisateur doit ensuite s’authentifier sur les serveurs de Seald par email afin de prouver son identité ;
  4. Une fois authentifié, l’utilisateur envoie une requête sur les serveurs de Seald afin de vérifier qu’un EntrustedMessageKey lui est attribué ;
  5. A partir de l’EntrustedMessageKey, les serveurs Seald lui communique la MessageKey du document, nécessaire au déchiffrement du fichier ;
  6. Toujours dans le navigateur, le fichier est ensuite déchiffré, et si le format le permet (PDF, documents Office, ...), l’affiche directement dans le navigateur, à défaut il est proposé au téléchargement.

Contrôle d'accès

Avec les protocoles de chiffrement de Seald, il est possible d'effectuer un certain nombre d'opérations a posteriori sur les EntrustedMessageKey et les EncryptedMessageKey d'un Message, comme la journalisation des activités, la révocation ou l'ajout de destinataire.

Ajout de destinataire

Un utilisateur de Seald destinataire d'un Message peut ajouter un autre destinataire avec ou sans Seald:

  1. Obtenir, comme pour un déchiffrement, l'EncryptedMessageKey qui lui est destinée pour ce Message.
  2. Déchiffrer l'EncryptedMessageKey qui lui est destinée pour obtenir la MessageKey du Message.
  3. Si le destinataire dispose de Seald (mode de bout-en-bout), chiffrer la MessageKey pour les clés publiques de cet utilisateur pour obtenir des EncryptedMessageKey à l'attention de chacune de ses clés publiques. Sinon (mode authentifié), convertir la MessageKey en EntrustedMessageKey pour le destinataire.
  4. Envoyer les EncryptedMessageKey ou l'EntrustedMessageKey aux serveurs Seald attachées au MessageID.

Révocation de destinataire

Un utilisateur de Seald ayant autorisé quelqu'un d'autre (au travers d'un chiffrement de bout-en-bout ou authentifié), il peut également lui révoquer l'accès.

Il lui suffit de contacter le serveur Seald en indiquant vouloir révoquer le Message pour un destinataire en particulier. Le serveur supprimera ainsi les EncryptedMessageKey ou EntrustedMessageKey correspondantes.

Journalisation des actions

Chaque action impliquant les serveurs Seald effectuée sur un Message est journalisée, comme un chiffrement, déchiffrement, ajout de destinataire ou révocation. La liste comprenant l'ensemble des évènements est disponible ici.