Principes de fonctionnement
des coffres-forts PERSO et PRO

Vous retrouverez le détail des algorithmes cryptographiques utilisés à la fin de cette page.

Principe de fonctionnement des coffres-forts PERSO

Stockage local

Les coffres-forts PERSO sont conçus comme un fichier stocké localement et de façon chiffrée sur votre appareil. La clé de chiffrement utilisée est dérivée de votre mot de passe maître.

Appairage de nouveaux appareils

Afin d’obtenir une copie synchronisée de votre coffre-fort sur tous vos appareils, vous devez faire un appairage entre un appareil où vous avez déjà votre coffre-fort et le nouvel appareil. Cela ne fonctionne pas comme un compte web où il suffirait de saisir son adresse email et son mot de passe.

L’appareil à partir duquel vous avez créé votre coffre-fort demande un identifiant aléatoire auprès du serveur et génère une clé secrète aléatoire. Ces deux informations sont enregistrées dans le coffre-fort et ne seront jamais manipulées par l’utilisateur directement.

L’appairage d’un nouvel appareil consiste à transférer cet identifiant et cette clé de chiffrement de façon sécurisée au nouvel appareil. Pour que ce transfert soit sécurisé, une information est transférée physiquement d’un appareil à un autre (soit par scan d’un QR code, soit par recopie manuelle). Il est donc physiquement impossible que cette information soit interceptée (sauf à se trouver derrière vous ou à avoir installé un virus sur votre ordinateur mais dans ce cas vous avez déjà perdu). Par ailleurs, l’information n’est utilisable qu’une seule fois. Le nouvel appareil obtient ainsi un identifiant et une clé secrète en commun avec l’appareil source.

Synchronisation entre appareils

Une fois que l’identifiant et la clé sont partagés entre les deux appareils, ils peuvent échanger des informations de façon totalement sécurisée via n’importe quel canal de communication (même non sécurisé) en chiffrant les messages avec leur clé secrète. Chaque appareil envoie au serveur, de façon chiffrée, les modifications qu'il effectue dans le coffre-fort et inversement, récupère les modifications envoyées par les autres appareils.

L’avantage de ce système est que le serveur ne connaît aucune information sur vous (il ne connaît pas votre adresse email par exemple) et n’a aucun moyen de déchiffrer vos données. Si le serveur est compromis, le pirate ne récupère aucune information utilisable. S’il efface des données, l’application les recréra automatiquement lors de la prochaine synchronisation à partir du coffre-fort local.

Sauvegarde de données chez un contact de confiance

L’inconvénient (ou la force) de ce système est que si vous perdez tous vos appareils, alors vous perdez votre coffre-fort. Pour résoudre ce problème, UpSignOn vous propose de confier une sauvegarde de vos données à un ou plusieurs contacts de confiance (voir ci-dessous).

Techniquement, votre contact de confiance conservera dans son coffre-fort un petit fichier chiffré par votre mot de passe maître contenant votre identifiant et votre clé secrète de coffre-fort. Il ne peut donc pas récupérer lui-même vos données même s’il essayait, car il ne connaît pas votre mot de passe maître.

Contacts de confiance

Un contact de confiance est une personne que vous connaissez et avec laquelle vous partagez une clé secrète (différente évidemment de la clé secrète de votre coffre-fort). Cette clé secrète est stockée dans chacun de vos coffres-forts respectifs et s’échange initialement selon le même principe sécurisé que pour l’appairage d’appareils.

Grâce à cette clé secrète commune, vous disposez d’un canal d’échange sécurisé (chiffré de bout en bout) avec vos contacts de confiance. Ce canal d’échange vous permet d’envoyer des sauvegardes ou des coffres-forts partagés.

Sauvegarde de mot de passe maître chez un contact de confiance

L’autre force du système de synchronisation des coffres-forts PERSO et que le serveur ne reçoit jamais votre mot de passe maître ni un dérivé de celui-ci. Ce mot de passe maître ne sert qu’au déchiffrement de votre coffre-fort local.

Si vous oubliez votre mot de passe maître, nous n’avons aucun moyen de vous aider à le réinitialiser. Si c’était le cas, cela voudrait dire que nous serions en mesure de déchiffrer votre coffre-fort PERSO, ce qui n’est pas souhaité.

Pour résoudre ce problème, nous avons donc conçu un système de sauvegarde de votre mot de passe maître auprès d’un ou plusieurs contacts de confiance. Concrètement, une clé secrète de sauvegarde (encore une différente bien sûr) est confiée à vos contacts de confiance désignés. Cette clé est utilisée sur chacun de vos appareils pour chiffrer votre mot de passe maître et stocker le résultat chiffré dans un fichier local.

Si vous oubliez votre mot de passe maître, l’un de vos contacts de confiance peut vous renvoyer votre clé pour que vous puissiez déchiffrer votre mot de passe maître puis votre coffre-fort. La sécurité repose sur le fait que votre contact, parce qu’il vous connaît, est capable de vous identifier et que le fichier chiffré de votre mot de passe n’est disponible que sur les appareils qui vous appartiennent.

Remarquez que
  • le système de sauvegarde de vos données repose sur le fait que vous seul connaissez votre mot de passe maître ;
  • le système de sauvegarde de votre mot de passe maître repose sur le fait que vous ayez accès à l’un de vos appareils.

Par conséquent, si vous oubliez votre mot de passe maître et que vous avez en plus perdu tous vos appareils, vos données seront définitivement perdues.

Partage de mots de passe

Le partage de mots de passe dans les coffres-forts PERSO n’est possible qu’avec des contacts de confiance. Techniquement, un mini coffre-fort est créé avec son propre identifiant et sa clé secrète. Ces informations sont stockées dans votre coffre-fort et également envoyées à vos contacts de confiance destinataires du partage via le canal de communication sécurisé que vous avez avec chacun de vos contacts (cf ci-dessus).

Attention, une fois le partage effectué, la suppression d’un contact de confiance ne le supprime pas en tant que destinataire du partage. Cette opération doit être réalisée à part.

Principe de fonctionnement des coffres-forts PRO

Stockage cloud

Les coffres-forts PRO sont conçus dans la logique inverse des coffres-forts PERSO. Le serveur joue le rôle de source de vérité unique et stocke le coffre-fort chiffré de l’utilisateur. Bien que certaines informations soient transmises au serveur pour les besoins de la supervision, les mots de passe et autres secrets stockés dans le coffre-fort restent inaccessibles sans le mot de passe maître de l’utilisateur.

Chaque coffre-fort est par ailleurs associé à une adresse email pour que son propriétaire puisse être identifié par les administrateurs.

Une banque par client

Chaque organisation cliente dispose de sa propre banque (zone de stockage des coffres-forts PRO) indépendante des autres banques. Ces banques peuvent même être hébergées sur des serveurs différents (cas de l’auto-hébergement par exemple). À chaque banque est donc associé une url différente.

Autorisation de nouveaux appareils

Pour ajouter un nouvel appareil, l’utilisateur commencera par y saisir l’url de la banque correspondant à son entreprise. Puis il saisira son adresse email sur laquelle il recevra un code d’autorisation à usage unique. En saisissant ce code dans l’application, l’utilisateur confirme sa propriété sur l’adresse email en question, ce qui permet au serveur de reconnaître la légitimité de l’appareil.

Techniquement, une paire de clé asymétrique est générée et stockée sur l’appareil. La partie publique de cette clé est envoyée au serveur. Cette clé sert ensuite à chaque connexion à prouver l’identité de l’appareil via un protocole de défi-réponse.

Déverrouillage du coffre-fort

Pour déverrouiller son coffre-fort, l’utilisateur devra ensuite saisir son mot de passe maître.

Ce mot de passe maître sert ici non seulement pour le déchiffrement des données, mais également comme deuxième facteur d’authentification auprès du serveur.

Le mot de passe maître n’est pas pour autant simplement envoyé au serveur comme pour une authentification par mot de passe classique. Il est utilisé dans le cadre d’un protocole de défi-réponse afin de ne jamais être envoyé au serveur.

Synchronisation des appareils

Dans ce système, il n’y a pas vraiment de sens à parler de synchronisation entre appareils comme pour les coffres-forts PERSO. En effet, à chaque ouverture du coffre-fort, après authentification de l’appareil et de l’utilisateur, l’intégralité du coffre-fort chiffré est récupérée auprès du serveur.

Lorsque l’utilisateur effectue des modifications dans son coffre-fort, le coffre-fort entier est chiffré à nouveau puis envoyé au serveur pour stockage. (NB, la modification simultanée du coffre-fort sur deux appareils est parfaitement bien gérée par l’application).

Mode hors-connexion

Lorsque l’utilisateur n’a pas accès à internet, il peut consulter le contenu de son coffre-fort via une copie locale de ses données (qu’il faudra tout de même déchiffrer avec le mot de passe maître) mais ne peut pas apporter de modifications à son coffre-fort.

Cette fonctionnalité peut-être désactivée dans les paramétrages de la console de supervision par l’administrateur.

Sauvegarde de données transparente pour l’utilisateur

Cette conception fait que même en cas de perte de tous ses appareils, un utilisateur peut récupérer son coffre-fort simplement en autorisant un nouvel appareil et en récupérant son coffre-fort depuis le serveur. Comme pour les coffres-forts PERSO, cela suppose néanmoins que l’utilisateur n’ait pas oublié son mot de passe maître.

Pas de notion de contact de confiance

Les coffres-forts PRO ne proposent pas la notion de contact de confiance car elle n’est pas utile. Les fonctionnalités de sauvegardes et de partage sont gérées différemment, ce qui les rend plus simples.

Sauvegarde de mot de passe maître automatique auprès du serveur

La fonction de réinitialisation du mot de passe maître fonctionne de façon assez classique via l’envoi d’un email.

Chaque appareil génère et stocke localement une paire de clé asymétrique dédiée à la fonctionnalité de mot de passe oublié. La clé privée est stockée sur l’appareil uniquement, tandis que la clé publique est enregistrée dans le coffre-fort.

Lorsque l’utilisateur modifie son mot de passe maître, celui-ci est chiffré par les clés publiques de tous les appareils autorisés et les résultats sont envoyés au serveur pour stockage.

En cas d’oubli du mot de passe maître, l’utilisateur sollicite l’envoi d’un code à usage unique par email. Ce code permet au serveur de l’authentifier temporairement et d’autoriser l’envoi de la sauvegarde chiffrée du mot de passe maître à l’application. L’application peut ensuite déchiffrer cette sauvegarde avec sa clé privée stockée localement pour récupérer le mot de passe maître de l’utilisateur et lui proposer d’en choisir un nouveau.

En cas de raquet de votre téléphone, le voleur pourrait tenter d’utiliser la fonction de mot de passe oublié et d’aller consulter vos emails qui sont souvent synchronisés sur votre téléphone. Pour contrer cette attaque, l’envoi du mail de réinitialisation est par défaut soumis à validation manuelle d’un administrateur.

Remarquez que, comme pour les coffres-fort PERSO, puisque le système de sauvegarde de votre mot de passe maître repose sur le fait que vous ayez accès à l’un de vos appareils autorisé, la même contrainte s’applique: si vous oubliez votre mot de passe maître et que vous avez en plus perdu tous vos appareils, vos données seront définitivement perdues.

Partage de mots de passe

Dans le cas des coffres-forts PRO, pour que le partage de mots de passe soit plus fluide et plus adapté à de grandes équipes, nous n’utilisons pas le concept de contacts de confiance (cf coffres-forts PERSO). Dans l’application, il vous suffit de saisir les adresses emails des collègues à qui vous souhaitez partager des secrets.

Techniquement, chaque coffre-fort PRO est associé à une paire de clé asymétrique dédiée au partage : la clé secrète est conservée en sécurité dans le coffre-fort, tandis que la clé publique est stockée par le serveur.

Lors d’un partage, un mini coffre-fort est créé avec son propre identifiant et sa clé secrète. Cette clé secrète est chiffrée par la clé publique de chaque destinataire du partage puis les résultats sont envoyés au serveur pour stockage.

Pour afficher le contenu d’un coffre-fort partagé, l’application en récupère la clé secrète chiffrée auprès du serveur, la déchiffre avec la clé privée de partage de l’utilisateur (récupérée dans le coffre-fort principal de l’utilisateur), et l’utilise enfin pour déchiffrer le contenu du coffre-fort partagé.

Détails des algorithmes cryptographiques utilisés

Librairie utilisée : libsodium

  • Dérivation de mot de passe : Argon2ID
    • dérivation des mot de passe maître PRO et PERSO
  • Chiffrement symétrique authentifié : secret box de libsodium (XSalsa20 + Poly1305 MAC)
    • chiffrement des coffres-forts PRO et PERSO après dérivation du mot de passe maître
    • chiffrement des coffres-forts partagés PRO et PERSO
    • synchronisation zero-trust PERSO
    • échanges de données zero-trust (chiffrée de bout en bout) entre contacts de confiance PERSO
    • chiffrement des sauvegardes de données PERSO après dérivation du mot de passe maître
    • chiffrement des sauvegardes de mot de passe maître PERSO
  • Chiffrement asymétrique : sealed box de libsodium (X25519 + XSalsa20-Poly1305)
    • chiffrement des clés secrètes de coffres-forts partagés PRO
    • sauvegarde de mots de passe maître PRO
  • Signature : Ed25519
    • authentification forte d’appareil PRO
  • Authentification de challenges : HMAC-SHA-256
    • authentification du mot de passe maître PRO par défi-réponse (pour que le mot de passe maître soit vérifié sans être jamais envoyé au serveur)