Aller au contenu

Sécurité et chiffrement

Quarel n’invente pas sa cryptographie : il s’appuie sur des bibliothèques éprouvées (Olm/Megolm via vodozemac, la bibliothèque de Matrix ; Ed25519, X25519, XChaCha20-Poly1305, HPKE).

  • Mots de passe hachés avec argon2id ; double authentification TOTP (application d’authentification) avec 10 codes de secours.
  • Blocage automatique après des échecs répétés (par compte et par adresse IP), sans révéler si un compte existe. Un appareil que vous avez déjà utilisé pour vous connecter n’est pas bloqué par des échecs venus d’ailleurs : personne ne peut vous tenir dehors en tapant de faux mots de passe.
  • L’inscription ne révèle pas non plus si une adresse email a déjà un compte (la personne concernée est prévenue par email).
  • Mot de passe oublié : un code par email, et la double authentification reste exigée. Toutes les sessions sont alors fermées.
  • Clés d’accès (second facteur) : la page de votre service qui vérifie la clé indique quel appareil se connecte, d’où et à quelle heure ; ensuite elle affiche un code à taper dans l’application. Quelqu’un qui connaîtrait votre mot de passe et vous enverrait le lien de cette page n’obtiendrait donc rien en vous faisant toucher votre clé. Ajouter ou retirer une clé vous est signalé par email (le retrait demande le mot de passe).
  • Vos données : Paramètres › Confidentialité › « Télécharger mes données » (ce que votre service garde sur vous, et l’historique de vos messages privés gardé sur l’appareil) ; pour un serveur : menu du serveur › « Mes données sur ce serveur ». Si vous supprimez votre compte, les serveurs que vous aviez rejoints remplacent votre nom par « Ancien compte ».
  • Une session inutilisée pendant 90 jours se termine. Quand une session se termine (déconnexion, appareil retiré, changement de mot de passe), les serveurs communautaires en sont informés et ferment celles de cet appareil sous 10 minutes.
  • Chiffrés de bout en bout avec Olm (entre appareils) et Megolm (par conversation), le protocole de Matrix. Le service d’identité ne voit que des données illisibles et les efface dès que tous les appareils destinataires les ont reçues.
  • Chaque appareil a ses clés. Un nouvel appareil doit être validé par un appareil déjà validé, après comparaison d’un code affiché sur les deux écrans. Sans cela, il ne reçoit rien.
  • Phrase de récupération : 12 mots (liste BIP-39 française) qui chiffrent une sauvegarde de vos clés et de votre historique, stockée sur le service sous forme illisible. Si vous perdez tous vos appareils, elle seule permet de tout retrouver : notez-la sur papier.
  • Les fichiers envoyés en privé sont chiffrés sur votre appareil, transmis de préférence directement aux appareils en ligne (pair à pair), sinon déposés chiffrés sur le service, puis effacés dès réception (7 jours au plus).
  • Le contact avec chaque personne est épinglé au premier échange : si ses clés changent, l’application refuse d’envoyer et vous prévient. Un code de sécurité, le même des deux côtés, permet de vérifier hors ligne que personne (pas même votre service d’identité) n’a substitué ses clés.
  • Dans un groupe, l’application ne chiffre que pour les membres annoncés par un membre (chiffré) : un service compromis ne peut pas glisser quelqu’un dans une conversation pour lire les messages suivants.
  • Les messages éphémères ne quittent jamais les appareils qui les ont reçus : ni la sauvegarde chiffrée, ni l’historique envoyé à un nouvel appareil ne les contiennent, et les notifications n’en montrent pas le texte.

Les appels entre amis sont pair à pair et chiffrés (DTLS-SRTP). La mise en relation elle-même voyage dans des messages chiffrés : le service ne voit ni vos adresses IP ni les paramètres de l’appel. Si aucun chemin direct n’existe, le relais de votre service d’identité transmet le flux sans pouvoir le lire.

Une connexion directe montre votre adresse IP à l’autre appareil. Par défaut (« Mes amis seulement », Paramètres › Voix et vidéo), seuls vos amis la voient : avec les membres d’un groupe qui ne sont pas vos amis, les appels passent par le relais et les fichiers par la copie chiffrée du service. Vous pouvez aussi toujours passer par le relais, ou ne jamais l’utiliser.

Les notifications de l’application web installée sont des réveils vides envoyés par le service de notification de votre navigateur (Google, Mozilla, Apple, Microsoft) : ni contenu, ni expéditeur.

  • Identité portable : un jeton signé par votre service, lié à la clé de votre appareil. Chaque connexion prouve la possession de cette clé en signant un défi à usage unique : un jeton volé seul ne suffit pas.
  • Certificat lié à l’identité du serveur : les liens d’invitation contiennent l’identifiant du serveur (sid). L’application vérifie pendant la connexion HTTPS que le serveur détient la clé correspondante, sans autorité de certification. Un intermédiaire ne peut pas se faire passer pour lui. Une adresse qui a prouvé ce lien doit continuer à le prouver : un certificat ordinaire y est ensuite refusé.
  • Pas de connexion relayée : la preuve signée à chaque connexion nomme aussi l’adresse contactée et la façon dont elle a été vérifiée. Un serveur malveillant (même muni d’un certificat reconnu) qui transmettrait votre connexion à un autre serveur en se faisant passer pour lui est refusé par ce dernier.
  • Les serveurs communautaires ne reçoivent jamais votre email.
  • Secrets chiffrés par le trousseau du système (bureau) ou par une clé non exportable du navigateur (version web).
  • Interface isolée (Electron en bac à sable, politique de sécurité du contenu stricte), liens externes ouverts dans votre navigateur.
  • Mises à jour signées : chaque version est signée par la clé de publication de Quarel ; l’application refuse toute mise à jour qui ne l’est pas, même venant de notre propre site.
  • Les salons des serveurs ne sont pas chiffrés de bout en bout : l’hébergeur du serveur peut les lire.
  • Pour le vocal des salons, votre adresse IP est visible du serveur vocal de ce serveur.
  • Les installateurs ne sont pas encore signés par un certificat d’éditeur (avertissement de Windows).
  • La version web reçoit son code de app.quarel.app à chaque ouverture : quiconque prendrait le contrôle de ce site pourrait y glisser du code capable de lire vos clés et vos messages privés dans le navigateur. C’est une limite de tout chiffrement de bout en bout dans une page web. L’application de bureau, elle, n’exécute que du code installé sur votre machine et ne se met à jour qu’avec des versions signées : préférez-la pour les conversations sensibles.

Une faille ? Merci de la signaler en privé plutôt que dans un ticket public : voir Contribuer.