Sécurité
Cette page explique ce qui protège vos fichiers, et ce qui ne les protège pas. Le nom de chaque méthode est donné entre parenthèses pour les curieux.
En bref
- Pas de compte, pas de serveur géré par le projet, pas de télémétrie.
- Tout ce que Tressyl envoie entre vos appareils est chiffré de bout en bout : seuls vos propres appareils peuvent le lire.
- Tressyl ne chiffre pas les fichiers sur vos disques. Utilisez pour cela le chiffrement de disque de votre système (par exemple BitLocker sous Windows, LUKS sous Linux).
Une identité, des clés qui restent sur l’appareil
- Votre identité a une clé racine. Elle est scellée par votre phrase de passe (Argon2id, ChaCha20-Poly1305) : la phrase de passe est donc nécessaire pour ajouter un appareil, en retirer un, ou changer ce que vos appareils synchronisent.
- La phrase de passe fait au moins 15 caractères. L’application mesure sa robustesse pendant la saisie, et peut en proposer une de 6 mots tirés au hasard.
- Chaque appareil crée sa propre clé, qui ne le quitte jamais. Sur un ordinateur, Tressyl la protège avec le trousseau du système quand il y en a un (Secret Service sous Linux, Gestionnaire d’identification sous Windows).
- Le nœud toujours allumé ne détient jamais la clé racine.
Ajouter un appareil
- L’appareil depuis lequel vous l’ajoutez affiche un code de 10 caractères. Le code ne sert qu’une fois, pour un seul essai, et pendant 10 minutes au plus.
- Le code n’est jamais envoyé sur le réseau. Les deux appareils s’en servent pour se prouver mutuellement qu’ils le connaissent (SPAKE2) : quelqu’un qui observe l’échange ne peut pas tester de propositions après coup.
- L’invitation que vous pouvez copier vers le nouvel appareil contient seulement l’adresse de l’autre appareil, jamais le code.
Connexions
- Les appareils sont adressés par leur clé, jamais par un nom de machine.
- Les connexions utilisent TLS 1.3 sur QUIC, avec un échange de clés hybride (X25519 + ML-KEM-768) et sans repli vers un échange classique.
- Chaque appareil prouve, à l’intérieur de la connexion, qu’il détient un certificat signé par votre clé racine. Un appareil d’un autre utilisateur n’est jamais accepté.
- Un relais, si vous en faites tourner un, ne fait que transmettre du trafic chiffré. Le service de découverte publie le relais qu’utilise un appareil, jamais ses adresses IP. Les deux ne sont joints qu’en HTTPS.
Un appareil perdu ou volé
- Vous le retirez depuis un autre de vos appareils. Le retrait est signé, se propage d’appareil en appareil, et coupe aussitôt les connexions avec l’appareil retiré.
- Un appareil tenu à l’écart de vos appareils informés n’apprend pas qu’il a été retiré. Pour borner ce risque, chaque appareil cesse d’échanger des fichiers après 7 jours sans preuve récente de la liste actuelle des appareils (un « tampon »). Un appareil retiré qui n’apprend jamais son retrait peut donc synchroniser 7 jours de plus, au maximum.
- Les fichiers déjà présents sur l’appareil volé y restent : Tressyl ne peut pas les effacer à distance. Le chiffrement de disque les protège.
La règle des 7 jours au quotidien
Le tampon vient d’un appareil qui a le rôle de tamponneur : par défaut, votre premier appareil, qui le renouvelle chaque jour. Si aucun tamponneur n’est allumé pendant plus de 7 jours, vos autres appareils mettent leur synchronisation en pause jusqu’à ce qu’un tamponneur soit joignable.
Si vous avez un nœud Linux toujours allumé, faites-en un tamponneur : votre identité ne dépendra plus d’un seul ordinateur portable. Cela se fait avec une commande décrite dans le guide de déploiement du nœud ; l’application ne le propose pas encore.
Post-quantique
Un trafic enregistré aujourd’hui pourrait être déchiffré plus tard par un ordinateur quantique. L’échange de clés et les signatures de Tressyl associent chacun une méthode classique et une méthode post-quantique : la protection tient tant que l’une des deux tient. Voir Que veut dire « post-quantique » ici ?
À garder en tête
- Tressyl n’a pas encore été audité par un tiers.
- Il s’appuie sur des composants établis plutôt que sur les siens : iroh pour les connexions, rustls et aws-lc-rs pour le chiffrement.
- C’est un logiciel en pré-version. Gardez vos propres sauvegardes.
Signaler une vulnérabilité
Un canal privé pour les signalements de sécurité sera publié avec la première version publique. D’ici là, il n’existe pas de moyen public d’en signaler une.