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.
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
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.
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.
-
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.
-
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.
-
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.
-
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é.
Le projet en images
7 images · Ouvrez une image pour la voir en grand.
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
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.
Des cas proches de celui-ci
En savoir plus
Flashdays · App photo
Une pellicule développée comme en 2006
App Flutter Android et iOS qui donne à toute une pellicule le rendu d'un compact des années 2000 et l'exporte en carrousel, développée sur le GPU du téléphone.
En savoir plus →
En savoir plus
Dampling · Boire moins
Boire moins, avec une mascotte qui grandit
App Flutter pour Android et iOS : un journal alcool et nicotine qui garde ses données sur le téléphone, et un dumpling qui grandit les jours sans alcool.
En savoir plus →
En savoir plus
Nekonap · Puzzle logique
Un puzzle quotidien pour endormir des chats
Puzzle logique Flutter pour Android et iOS : un chat par ligne, colonne et carré, un puzzle du jour commun et 36 chats, sans publicité.
En savoir plus →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.
