Pour un usage sécurisé de CryptPad
Photo Dietmar Rabich Wikimedia Commons CC-BY-SA
Ce billet de blog est une traduction francophone d'une première version originale en anglais rédigée par Théo Von Arx et Fabrice Mouhartem.
Vous êtes à la recherche d'un outil de collaboration axé sur la vie privée ? Eh bien, vous l'avez déjà trouvé ! Mais que signifie réellement « vie privée » dans ce contexte ? Et comment est-il techniquement appliqué ? Il y a-t-il des précautions supplémentaires nécessaires pour une utilisation extra-sûre de CryptPad ?
Dans ce billet de blog, nous répondrons à ces questions, ainsi qu'à d'autres. Nous vous montrerons dans quels scénarios CryptPad est sécurisé et vous donnerons des idées d'actions concrètes pour utiliser CryptPad en toute confidentialité. Bien que nous fassions tout ce qui est possible pour sécuriser CryptPad, sa sécurité dépend également de la façon dont vous l'utilisez.
Préliminaires
Modèle de menace
Lorsque nous parlons de sécurité ou de confidentialité, nous devrions toujours définir le scénario dont nous parlons. Ce scénario est ce qu'on appelle le modèle de menace, qui définit la possibilité d'action. En général, nous visons à penser qu'elles sont aussi puissantes que possible. Si nous pouvons nous défendre contre un adversaire fort, nous pouvons également nous défendre contre un adversaire plus faible.
La première hypothèse sur les capacités de'un adversaire découle directement de l'architecture de CryptPad. CryptPad est une application web : vous visitez le site web de votre instance (par exemple, https://cryptpad.fr) et téléchargez automatiquement le code client qui sera exécuté localement sur votre ordinateur. Si vous recevez un code source altéré de ce serveur, vous ne pouvez pas établir de sécurité, car ce mauvais code source peut, par exemple, envoyer tous vos documents en texte clair au serveur. Par conséquent, vous devez faire confiance au serveur pour ne pas exécuter d'attaques active (c'est-à-dire pour ne pas exécuter un logiciel de serveur CryptPad modifié).
Nous nous défendons néanmoins contre un serveur honnête mais curieux (c'est-à-dire passif). La deuxième hypothèse est donc que le serveur joue selon les règles, mais pourrait essayer de déduire des informations sensibles en analysant toutes les données qu'il reçoit. Ce scénario inclut la possibilité qu'un tiers ait accès au serveur et puisse voir toutes les données et tous les journaux de logs. CryptPad s'est déjà défendu contre un tel adversaire dans le passé lorsque une instance tierce a été saisie par la police. Nous considérons donc ce scénario comme très réaliste.
Enfin, nous supposons que les attaquants ont une capacité de réseau. Ce serait le cas de l'administrateur système qui gère le réseau dans votre bureau, de votre fournisseur d'accès Internet, ou des services secrets ainsi que de nombreux autres. Les attaquants peuvent même utiliser les capacités de réseau actives, c'est-à-dire qu'ils peuvent épier votre trafic internet, et également analyser, déposer ou modifier les données envoyées sur le réseau.
Cryptographie
L'une des principales caractéristiques de CryptPad est le chiffrement de bout en bout. Laissez-nous vous donner une idée approximative de ce que sont le chiffrement et l'authentification. Il y a trois blocs de construction principaux :
- Le chiffrement symétrique (ou chiffrement à clé secrète) fonctionne de la même manière qu'une boîte avec un verrou : nous pouvons mettre quelque chose dans la boîte et verrouiller la boîte à l’aide de la clé (c’est la phase de chiffrement). Seule une personne ayant un exemplaire de la clé peut déverrouiller la boîte et accéder au contenu (qui correspond au déchiffrement) et le modifier. Étant donné que la même clé est utilisée pour verrouiller et déverrouiller la boîte, ce schéma est surnommé symétrique. Nous pouvons également faire des copies de la clé et la distribuer aux personnes en qui nous avons confiance, afin qu'elles puissent toutes verrouiller et déverrouiller la boîte.
- Le chiffrement asymétrique (ou chiffrement à clé publique : Public Key Encryption, PKE pour faire court) diffère du chiffrement symétrique en ce sens qu'une clé différente est utilisée pour le chiffrement (à savoir la clé publique) et le déchiffrement (la clé privée). Vous pouvez imaginer le chiffrement asymétrique comme le système suivant : vous distribuez des cadenas ouverts (la clé de chiffrement publique) à tout le monde et gardez la clé (secrète de déchiffrement) pour vous. Ensuite, si quelqu'un veut vous envoyer un message, il le met dans une boîte et la ferme grâce au cadenas que vous lui avez donné. Ainsi, vous seul·e pouvez l'ouvrir pendant que n'importe qui peut produire une boîte verrouillée pour vous.
- Les signatures numériques sont étroitement liées aux sceaux physiques : seules les personnes en possession du sceau (que nous appelons la clé de signature) peuvent signer, mais toutes les autres personnes peuvent vérifier l'authenticité d'un document à l'aide de la clé de vérification publique de l'émetteur. En outre, les signatures numériques garantissent également que personne n'est en mesure de modifier le contenu scellé sans que les lecteur·ices ne s'en aperçoivent. Une propriété que les sceaux conventionnels n'apprécient pas. Notez qu'il existe une variante symétrique de cette primitive appelée code d'authentification de message. Cependant, il est rarement utilisé comme brique de construction indépendante et est utilisé conjointement avec le chiffrement symétrique pour obtenir le chiffrement authentifié, ce qui garantit en outre que les messages ne sont pas altérés. Comme nous utilisons exclusivement le chiffrement authentifié dans CryptPad, nous utilisons généralement le terme de "chiffrement symétrique" à la place dans les explications pour plus de simplicité, mais les garanties réelles sont plus fortes.
Pour CryptPad, nous combinons toutes ces briques de construction pour atteindre différents objectifs. Nous expliquerons l'utilisation ci-dessous dans la section relative aux documents.
Les bases
Nous décrivons quelques mesures de base qui vous permettent d'augmenter considérablement la sécurité de votre utilisation de CryptPad :
- CryptPad est un logiciel open source et, à ce titre, il y a diverses instances qui l'exécutent. Alors que nous hébergeons l'instance phare, vous pouvez en choisir une autre, en fonction de la juridiction par exemple.
- Assurez-vous de vous connecter à l'instance CryptPad choisie via HTTPS.
- Tous les mécanismes de sécurité sont seulement aussi forts que votre mot de passe. Si votre mot de passe est facilement devinable, les attaquants peuvent obtenir un accès complet à toutes vos données stockées sur CryptPad. Nous vous recommandons soit de générer un mot de passe aléatoire à l'aide d'un gestionnaire de mots de passe, ou de choisir une bonne phrase de passe au cas où le mot de passe devrait être mémorisable. Utilisez ce mot de passe uniquement pour CryptPad afin d'éviter que d'autres services ne le divulgue.
- Déconnectez-vous de CryptPad après chaque session, afin de redemander le mot de passe pour accéder à vos données sur CryptPad. Sinon, toute personne ayant accès à votre appareil peut également accéder à vos données sur CryptPad.
- Utilisez l'authentification à deux facteurs dans votre compte pour ajouter une protection contre le phishing en ajoutant un facteur temporel à votre connexion. Un tutoriel (en anglais) à ce sujet est disponible sur ce blog.
Contacts
Comme nous le montrerons ci-dessous, l'ajout de vos pairs en tant que contacts CryptPad vous permet de partager des documents plus facilement, ainsi qu'en toute sécurité. Vous pouvez en outre restreindre l'accès à un document à des contacts spécifiques et échanger des messages texte avec eux.
La façon la plus simple d'ajouter quelqu'un à vos contacts est de partager le lien vers votre profil via une communication sécurisée avec votre pair et de demander à s'ajouter les un·es les autres en tant que contacts.
⚠️ Notez que les noms d'utilisateur·ices ne sont pas uniques sur CryptPad. Selon le contexte, il peut être judicieux de vérifier une demande de contact reçue par un autre canal sécurisé.
Documents
CryptPad utilise un chiffrement symétrique avec une clé secrète par document pour rendre vos documents illisibles pour tous ceux qui n'ont pas accès aux clés correspondantes. CryptPad vous permet également de faire la différence entre les accès en lecture seule et les accès en écriture à un document. Pour cela, toute personne souhaitant modifier un document doit prouver qu'iel possède la clé de signature privée liée au document. Pour cela, iels signent leurs modifications et d'autres personnes travaillant sur le même document peuvent vérifier que la modification a effectivement été effectuée par une personne autorisée avant d'accepter les modifications.
Partager
CryptPad conserve ces détails techniques « sous le capot » et fournit une interface simple pour partager des documents via des liens. Un tel lien contient essentiellement la clé symétrique pour le chiffrement et le déchiffrement, pour la vérification des signatures ainsi que celle pour l'émission des signatures (en cas d'accès en lecture/écriture) d'une manière non révocable.
⚠️ Cela implique que le document est seulement aussi sécurisé que le canal de communication le plus faible utilisé pour envoyer ces liens.
Si vous considérez qu'un canal n'est pas sûr, ou s'il est accessible au public, vous voudrez peut-être en isoler certains de vos documents. Par exemple, vous pouvez limiter l'envoi de liens d'édition vers les chats Signal avec des messages éphémères qui disparaissent.
Une autre possibilité de partager l'accès en toute sécurité est de l'envoyer via CryptPad à vos contacts. Iel utilisent en interne le système de "mailbox" (en anglais) pour les communications internes, sans que le serveur CryptPad ne le sache. De cette façon, vous n'avez pas besoin d'utiliser un canal de communication tiers (potentiellement non sécurisé).
⚠️ Notez que les documents CryptPad contiennent l'historique complet des modifications. Il est facilement accessible à n'importe qui à partir de l'interface utilisateur·ice. Si vous avez commis une erreur de manipulation, par exemple au bout d'un texte que vous ne vouliez pas partager, tout en produisant le document avant de le partager, nous vous recommandons de copier-coller la version que vous souhaitez partager pour la collaboration dans un nouveau document avant de l'envoyer pour nettoyer l'historique (cela aide également à suivre les modifications par la suite).
⛔ Restreindre l'accès
Comme CryptPad fonctionne avec des clés statiques, les accès partagés accordés ne sont pas révoquables. Cela signifie que par défaut, toute personne à qui l'accès a été accordé pourra à jamais lire (et modifier) un document. Pour éviter cela, vous pouvez fermer l'accès à un document à l'aide de la fonctionnalité Liste d'accès.
De cette façon, seules les personnes sélectionnées ont accès au document, indépendamment de la personne qui a reçu le lien de partage.
Assurez-vous également que vous ou votre équipe êtes défini comme « propriétaire » lorsque vous créez des documents. Cela vous donnera un contrôle total, y compris la possibilité de détruire un document s'il contient des informations sensibles ou si le lien échappe à votre contrôle.
Mots de passe par document
Pour plus de sécurité, vous pouvez protéger un document avec un mot de passe. Le document n'est alors disponible que si vous avez les deux, le lien de partage et le mot de passe. Ceci est particulièrement utile dans le cas où vous n'avez pas de canal de communication sécurisé pour partager le lien, car vous pouvez envoyer le lien et le mot de passe sur deux canaux distincts (par exemple, la messagerie texte et le courrier électronique). De cette façon, l'attaquant doit surveiller les deux canaux en même temps, ce qui le rend beaucoup plus difficile.
Lorsque vous partagez des documents avec vos contacts directement sur CryptPad, les communications sont chiffrées, et nous supposons que vous voulez leur donner accès. Par conséquent, le mot de passe est mémorisé et envoyé avec le document lorsque vous le partagez. On ne le demande pas au destinataire, ou à vous-même, lors de l'ouverture du document. Cela suppose implicitement que la sécurité du lecteur CryptPad est au moins aussi forte que les canaux de communication utilisés pour partager le document.
Autodestruction
CryptPad vous permet de créer des documents qui s'autodétruisent, ils seront détruits soit après l'heure d'expiration définie, soit après l'ouverture du document partagé la première fois.
Cette fonctionnalité est particulièrement utile si vous devez partager des données sensibles qui ne devraient pas être accessibles pour toujours. Vous pouvez l'utiliser pour partager un mot de passe avec une personne par exemple.
️ Anonymat
CryptPad ne fournit qu'une faible forme d'anonymat et ne cache pas votre adresse IP ou votre « agent utilisateur » (navigateur et système d'exploitation). Le serveur peut en outre lier les adresses IP de personnes qui collaborent souvent sur les mêmes documents. Bien sûr, nous n'exécutons pas ces analyses pour notre instance phare, mais nous voulons que vous nous fassiez confiance le moins possible. Vous pouvez donc utiliser les outils et techniques suivants :
- Le Navigateur Tor pour se connecter à CryptPad et cacher votre adresse IP.
- Un compte « jetable » qui n'est utilisé que pour des actions spécifiques à haut risque, telles que le travail sur un petit ensemble de documents ou la publication d'informations sensibles pour éviter la possibilité de lier les adresses IP des personnes collaboratrices.
- Tails pour ne laisser aucune trace sur votre appareil local.
Autres outils
CryptPad est conçu pour être une suite bureautique générale et facile à utiliser. En tant que tel, il se peut qu'il ne réponde pas toujours à vos besoins spécifiques. Nous vous redirigons vers d'autres outils et services qui ne sont pas affiliés à CryptPad pour les actions suivantes :
- Un gestionnaire de mots de passe pour avoir le contrôle de vos mots de passe.
- Secure Drop pour les lanceur·euses d'alertes.
- Signal pour une messagerie sécurisée en temps réel.
Références
À propos de CryptPad :
- La section sécurité dans notre guide de l'utilisateur·ice explique l'utilisation des fonctionnalités de sécurité de CryptPad.
- La conférence « Vivre à la périphérie avec CryptPad : confidentialité, calcul distribué et architectures de résilience » (en anglais) est une explication détaillée des concepts derrière CryptPad.
- Nous avons publié un livre blanc (en anglais) décrivant les mécanismes de sécurité et la cryptographie utilisés dans CryptPad. Ce document est destiné aux personnes qui sont déjà familières avec la cryptographie.
Plus général :
- Le Guide d'Autodéfence Numérique
- Le guide d'autodéfense de surveillance par l'Electronic Frontier Foundation (EFF)
Questions ?
Nous sommes heureux·ses de vous aider et de répondre à vos questions concernant ce billet de blog. Vous pouvez nous joindre sur notre forum, Matrix, Mastodon, ou par e-mail.
Remerciements
Ce projet fait partie de CryptPad Blueprints, qui est financé par le Fonds NGI0 Entrust, un fonds créé par NLnet avec le soutien financier du programme Next Generation Internet de la Commission européenne, sous l'égide de DG Communications Networks, Content and Technology dans le cadre de la convention de subvention n° 101069594.