Sécurité

Conçu pour n’avoir à faire confiance à personne

Crocodile est conçu pour que ni les serveurs, ni les réseaux, ni même l’ami qui héberge un salon ne puissent lire ce que vous dites. Cette page détaille ce qui est protégé, ce qui ne l’est pas, et comment.

Ce qui est protégé

Votre voix

Seuls les participants à l’appel l’entendent. Elle est chiffrée sur votre ordinateur, trame par trame, avant de le quitter.

Vos messages

Seuls les membres de l’espace ou de la conversation privée peuvent les lire, maintenant comme plus tard. Ils sont stockés sur les appareils des membres, jamais sur un serveur.

Votre identité

Seuls vos propres appareils et la personne qui détient votre clé de récupération l’ont. Elle est conservée chiffrée par le trousseau de votre système.

Ce que voient les serveurs, et ce qu’ils ne voient pas

Aucun système qui relie des personnes n’est exempt de métadonnées. Voici exactement où Crocodile trace la limite.

Les serveurs ne voient jamais

  • Ce que vous écrivez ou dites : le contenu est chiffré de bout en bout, y compris si vous utilisez le relais ou la boîte aux lettres en option.
  • Votre numéro de téléphone, votre e-mail ou votre mot de passe : Crocodile n’en demande aucun.
  • Votre liste d’amis et vos blocages : ils sont chiffrés pour que seuls vos appareils puissent les lire.
  • Qui a envoyé une demande d’ami : les demandes circulent sous forme de notes scellées qui ne nomment pas l’expéditeur.

Les serveurs voient

  • Les profils publics, les noms d’espaces, les listes de salons, les adhésions et les noms d’appareils.
  • Qui est en ligne et qui est dans quel salon vocal.
  • Tant que vous êtes connecté : de qui vous suivez la présence et avec qui vous lancez une conversation privée ou un appel (ce n’est ni conservé ni partagé avec d’autres serveurs).
  • Les adresses IP, nécessaires pour relier les applis entre elles. L’hôte d’un salon voit aussi les adresses IP de ses membres.

Qui pourrait essayer, et ce qu’il obtiendrait

Un modèle de menaces liste les attaquants possibles et ce que chacun peut ou non faire. En voici un résumé.

AttaquantPeutNe peut pas
Quelqu’un qui surveille le réseauVoir avec quelles adresses IP vous échangez, et en quelle quantité.Lire le contenu ni les métadonnées, ni deviner ce que vous dites d’après la taille des paquets.
Enregistrer maintenant, déchiffrer plus tardStocker votre trafic chiffré pendant des années.Le déchiffrer avec un futur ordinateur quantique : chaque échange de clés est hybride post-quantique.
Un serveur malveillantMentir sur qui est en ligne, retarder ou couper des connexions, consigner des métadonnées.Lire le contenu, falsifier des profils, des espaces ou des invitations, substituer les clés de quelqu’un, ni s’intercaler entre deux applis.
L’opérateur d’un relais ou d’une boîte aux lettresVoir la taille et le rythme des paquets relayés, ou qui a laissé combien de messages à qui.Les lire, les modifier ni les falsifier.
L’ami qui héberge un salonVoir les adresses IP des membres et qui parle à quel moment.Faire quoi que ce soit qu’un autre membre ne pourrait pas faire : son relais ne fait que transmettre des paquets chiffrés.
Quelqu’un qui a quitté un espaceGarder ce qu’il a déjà vu.Lire ce qui se dit après son départ : les clés sont remplacées quand quelqu’un part.
Quelqu’un qui vole une cléLire au plus la période de clé en cours, de 30 minutes, d’une conversation.Lire les messages antérieurs (clés supprimées) ni les suivants (nouvelles clés).
Quelqu’un qui a votre ordinateur déverrouilléTout ce que vous pouvez faire. Utilisez le chiffrement du disque, et retirez un appareil perdu depuis un autre.Recevoir de nouveaux messages une fois l’appareil retiré.

La cryptographie

Des briques bien étudiées, issues de bibliothèques open source auditées (@noble), combinées de façon standard.

Ed25519Signatures sur chaque enregistrement, message et offre de connexion
X25519 + ML-KEM-768Échange de clés hybride post-quantique pour chaque secret par paire
AES-256-GCMChiffrement des messages, des trames vocales et des connexions aux serveurs
HKDF-SHA256Dérivation des clés et cliquets qui n’avancent que dans un sens
DTLS-SRTPLe transport chiffré de WebRTC en dessous
Padmé · CBR OpusMasquer la longueur des messages et le rythme de la parole

Limites connues

Nous préférons que vous l’appreniez par nous.

  • Pas encore d’audit indépendant. La conception et le code sont publics, mais aucune entreprise extérieure ne les a encore audités. D’ici là, ne comptez pas sur Crocodile si votre sécurité en dépend.
  • Les appareils partagent une même clé de compte. Retirer un appareil l’empêche de recevoir de nouveaux messages et de nouvelles clés, mais un appareil volé pourrait encore signer en votre nom. Des clés de signature par appareil sont prévues.
  • Certaines métadonnées sont visibles. Les serveurs voient les adhésions et, tant que vous êtes connecté, qui vous contactez. Réduire cela est prévu.
  • Très grands groupes. Crocodile utilise des clés d’expéditeur à cliquet plutôt que MLS : renouveler les clés coûte donc plus cher à mesure que le groupe grandit. MLS est prévu pour les très grands espaces.
  • La vérification des clés est manuelle. Vous pouvez comparer vos numéros de sécurité avec un ami, mais l’appli ne vous le propose pas.

Vous avez trouvé un problème ?

Merci de signaler les problèmes de sécurité en privé via GitHub, pour qu’ils puissent être corrigés avant d’être rendus publics.