Veto · Messagerie privée

Messagerie privée sans numéro de téléphone

Veto est une messagerie chiffrée de bout en bout : identité locale, clés sur l'appareil et relais qui ne voient que du chiffré. Nous avons construit le site, l'app web et une app native Flutter pour Android et iOS, le tout sur un seul cœur Rust.

Deux téléphones Android, chacun avec son identité, qui échangent via deux relais locaux : demande acceptée, messages, réaction et réponse citée. Contacts inventés.
En bref

Veto est une messagerie chiffrée de bout en bout qui ne demande pas de numéro de téléphone : l'identité et les clés sont créées sur l'appareil, et les messages passent par plusieurs relais qui ne voient que du chiffré. Nous avons construit son site trilingue, la PWA /app et, en octobre 2026, une app native Flutter qui utilise le même cœur cryptographique Rust que le web. Sur le téléphone, l'app ajoute des contacts par lien ou QR code, gère groupes et sondages, et se verrouille par un code local.

Client
Veto · Messagerie privée
Secteur
Confidentialité et messagerie
Année
2026
Livrables
  • App native Flutter (Android, iOS)
  • Cœur Rust via FFI
  • PWA sur /app
  • Site marketing trilingue
  • Architecture E2E multi-relais
0numéro de téléphone requis
ML-KEM-768+ X25519, échange hybride
4 366lignes du cœur crypto en Rust
50tests de l'app mobile
Le contexte

Personne sur le trajet ne lit les messages

Le cahier des charges de Veto était strict. Ni scanners, ni relais, ni opérateurs ne devaient jamais voir le texte en clair, et personne ne devait fournir un numéro de téléphone ou passer par un SMS pour s'inscrire. Les promesses de sécurité devaient aussi rester honnêtes : un produit de confidentialité qui surestime sa protection trahit la confiance qu'il demande. Il fallait un vrai produit et un état des lieux clair.

Conception et réalisation

Une app native sur le même cœur Rust

En octobre 2026, nous avons remplacé les coques Capacitor par une app native Flutter pour Android et iOS. Réécrire le protocole en Dart aurait dupliqué la cryptographie et coupé Veto en deux réseaux incapables de se parler. L'app appelle donc le même cœur Rust que l'app web, via une petite interface C (veto-ffi). Les secrets restent derrière des handles natifs ; Dart ne reçoit que des clés publiques, du chiffré et le texte en clair qu'il demande. Des vecteurs de test générés depuis le code TypeScript tournent dans les deux suites, et la CI échoue si le web et le natif divergent.

L'app native utilise les mêmes relais que l'app web : un utilisateur sur téléphone et un autre dans le navigateur s'ajoutent avec le même lien d'invitation ou le même QR code. Un message compte comme livré dès qu'au moins deux relais l'ont stocké. Sur le téléphone, chaque ligne SQLite est scellée sous la clé du coffre, elle-même enveloppée par une clé d'appareil conservée dans l'Android Keystore ou le trousseau iOS. Copier les fichiers de l'app ne permet donc pas de deviner le code hors ligne. L'app se verrouille après cinq minutes en arrière-plan et masque les discussions dans le sélecteur d'apps.

Le dépôt compte 217 commits depuis mai 2026. L'app représente 53 fichiers Dart et 16 369 lignes, avec 50 cas de test, au-dessus d'un crate crypto Rust de 4 366 lignes. Un script de bout en bout fait dialoguer le vrai APK, sur émulateur, avec la vraie app web.

Premier lancement de l'app native : accueil, nom, code d'accès local et liste de discussions vide. Aucun numéro demandé.
  1. 01

    App Flutter, cœur Rust

    Un seul code Flutter pour Android et iOS appelle la même cryptographie Rust que l'app web via veto-ffi : il n'y a qu'un protocole à maintenir.

  2. 02

    Échange hybride

    Le protocole v2 combine X25519 et ML-KEM-768 dans le handshake, puis un Double Ratchet avec des renouvellements ML-KEM réguliers. La partie post-quantique protège la confidentialité des messages.

  3. 03

    Numéros de sécurité

    Chaque contact a un numéro de sécurité de 60 chiffres en 12 groupes de 5. On le compare en personne ou par appel, on marque le contact comme vérifié, et Veto prévient si les clés changent.

  4. 04

    Téléphone, ordinateur et web

    L'app web tourne dans le navigateur de n'importe quel ordinateur et retrouve les utilisateurs natifs sur les mêmes relais. L'app native ne relie pas encore les appareils : chacun a sa propre identité.

Résultats

Une messagerie sur téléphone, ordinateur et web

Veto fonctionne désormais en app native sur Android et iPhone, et en app web sur ordinateur, avec les mêmes relais et les mêmes liens d'invitation. Groupes, sondages, stickers, réactions, réponses, discussions verrouillées et thème sombre fonctionnent dans l'app native, et Veto Echo, un contact de démo qui tourne sur le téléphone lui-même, permet de l'essayer seul.

  • App native Flutter sur le même cœur Rust que l'app web
  • Mêmes relais et liens d'invitation sur téléphone et dans le navigateur
  • 50 tests mobiles et vecteurs partagés avec le code web
Questions fréquentes

Les questions qu'on nous pose souvent

L'app Veto est-elle sûre ?

Veto chiffre chaque message sur votre appareil avant qu'il ne parte, avec un handshake hybride X25519 + ML-KEM-768 et un Double Ratchet, et les relais ne transportent que des enveloppes scellées qu'ils ne peuvent pas lire. La note « Honest status » de l'app fixe la limite : la protection post-quantique couvre la confidentialité des messages, la vérification d'identité reste classique. Comparez donc les numéros de sécurité avec vos contacts.

Faut-il un numéro de téléphone pour utiliser Veto ?

Non. Veto ne demande ni numéro de téléphone, ni e-mail, ni compte. Votre identité et vos clés sont créées sur votre appareil, et vous ajoutez des contacts en partageant un lien d'invitation ou en montrant un QR code.

Peut-on utiliser Veto sur un ordinateur portable ?

Oui, avec l'app web dans le navigateur, installable en PWA. Elle utilise le même cœur cryptographique Rust que l'app mobile et les mêmes relais : utilisateurs sur ordinateur et sur téléphone peuvent s'ajouter. L'app native ne relie pas encore les appareils, l'ordinateur a donc sa propre identité.

Existe-t-il une app Veto pour téléphone ?

Oui : une app native pour Android et iPhone, issue d'un seul code Flutter. Elle crée votre identité sur le téléphone et ne demande aucun numéro pour commencer.

Parler à Slash

Mettons-le en production

Racontez-nous votre défi. Nous répondons sous 24 heures ouvrées avec une première lecture honnête : si nous pouvons aider, nous dirons comment ; sinon, nous dirons qui peut.

Je réponds en personne. Pas de formulaires interminables ni de réponses automatiques.

Écrire à Esteban