Kalnetz pour Windows et Android

Messagerie chiffrée, appels, VPN.

Sans compte, sans journal. Tes messages et tes appels sont chiffrés sur ton appareil : seuls tes correspondants peuvent les lire, pas nous. Avec le VPN, ta connexion entre chiffrée par notre serveur en France, puis ressort dans le pays de ton choix : Amsterdam, Hong Kong ou New York. Comme tout VPN, nos serveurs voient les sites que tu contactes, et ils n'en gardent aucun journal.

Windows 10 et 11, 64 bits · Android 8 ou plus récent (installation) · Aucune inscription

Trois outils. Une seule app.

Chat, appels et VPN dans une seule app. Trois boutons en bas, rien à configurer.

Chat chiffré de bout en bout

Chaque message est chiffré sur ton appareil, avec un aléa neuf tiré au hasard. En privé, il a en plus sa propre clé éphémère ; en groupe et en canal, il est chiffré avec la clé du groupe, renouvelée quand quelqu'un quitte le groupe ou en est retiré. Le serveur relaie une enveloppe illisible : il ne sait pas ce que tu écris, et deux messages identiques ne se ressemblent jamais une fois chiffrés.

  • Conversations 1:1, groupes et canaux
  • Recherche d'un contact par son @pseudo exact
  • Messages éphémères réglables (24 h en privé, 48 h en groupe, après lecture, ou désactivés)
  • Suppression pour moi ou pour tout le monde, sans trace
  • Accusés de réception chiffrés eux aussi
  • Empreinte de sécurité pour vérifier un contact

Appels audio et vidéo chiffrés

En tête-à-tête ou en groupe jusqu'à six. Chaque trame audio et vidéo est chiffrée une seconde fois dans l'app, par-dessus le chiffrement WebRTC : même notre relais ne voit passer qu'un flux illisible.

  • Micro, caméra, partage d'écran, grille de groupe
  • Signalisation d'appel dans les messages chiffrés
  • Aucun serveur tiers, aucun STUN/TURN externe
  • Sous Windows, l'appel s'ouvre dans sa propre fenêtre : le chat reste utilisable à côté 1.0.2
  • Micro coupé visible chez tous les participants 1.0.2
  • Sonnerie quand un contact t'appelle, tonalité de retour pour un appel à deux 1.0.2
  • Pas de limite de durée : l'accès au relais se renouvelle pendant l'appel 1.0.2

VPN multi-saut

Un bouton « Connecter » : ton trafic entre par notre serveur en France, puis ressort par un second serveur, dans le pays de ton choix. Les sites voient l'adresse IP de ce serveur de sortie. WireGuard (ChaCha20-Poly1305), une clé neuve à chaque connexion, et aucun journal : le VPN n'a pas de notion d'utilisateur.

  • Entrée en France, sortie au choix : Amsterdam (Pays-Bas), Hong Kong (Chine) ou New York (États-Unis) 1.0.2
  • « Changer de localisation » pour passer d'une sortie à l'autre ; l'app retient ton dernier choix
  • Entre nos deux serveurs, un second tunnel WireGuard. Si la sortie ne répond plus, l'app garde le tunnel : ton trafic est bloqué, jamais envoyé par le serveur d'entrée, jusqu'à ce que tu changes de localisation ou que la sortie revienne
  • DNS résolu dans le tunnel, par le serveur de sortie : tes recherches partent du pays choisi
  • Tous ces serveurs sont à Kalnetz, et le serveur d'entrée voit ton adresse et ce que tu contactes : ce n'est pas une protection contre nous (qui voit quoi)
  • Clé pré-partagée tirée au hasard pour cette connexion-là
  • Adresse IP de sortie affichée une fois connecté
  • Sous Windows, pare-feu WireGuard actif tant que le tunnel est monté : rien ne sort à côté
  • Sur Android, « VPN permanent » et « Bloquer les connexions sans VPN », réglages du système ouverts depuis l'onglet VPN

La clé pré-partagée ajoute une couche symétrique par-dessus le chiffrement du tunnel : ce n'est pas une résistance post-quantique complète. Ton FAI ne voit ni tes requêtes DNS ni ce qui passe dans le tunnel ; il voit toujours que tu es connecté à un VPN. Notre serveur d'entrée, lui, voit ton adresse IP le temps de la connexion : c'est ainsi que fonctionne un VPN. Comme tout VPN, nos serveurs voient aussi les sites que tu contactes, et le serveur de sortie résout tes requêtes DNS ; ils n'en gardent rien.

Rien ne traîne.

Des messages qui s'effacent d'eux-mêmes, des appels sans historique, une app qui reste à jour.

Messages éphémères

Chaque conversation a son minuteur. Par défaut, un message disparaît au bout de 24 heures en privé et de 48 heures en groupe, chez toi comme chez tes contacts. Tu peux choisir une autre durée, l'effacement après lecture, ou tout désactiver.

  • Désactivé
  • Après lecture
  • 1 h
  • 24 h · privé
  • 48 h · groupe
  • 7 jours
  • Personnalisé

Un message échu disparaît sans laisser de mention. En groupe et en canal, le réglage appartient au propriétaire et aux admins. Limite honnête : rien n'empêche quelqu'un de photographier son écran.

Suppression pour tout le monde

Supprime un message, ou toute une conversation privée, chez toi et chez ton contact. S'il attendait encore sur le serveur, il en est retiré aussi. Aucune mention « message supprimé » ne reste.

Partage d'écran chiffré

Pendant un appel, en tête-à-tête ou en groupe, partage un écran entier ou une seule fenêtre sous Windows, l'écran du téléphone sur Android. Le flux est chiffré image par image, comme la caméra : notre relais ne voit passer qu'un flux illisible.

Aucun historique d'appel

Un appel terminé ne laisse aucun historique : ni dans la conversation, ni sur ton appareil, ni sur le serveur. Un appel manqué, c'est une notification, et c'est tout. Les appels passent par notre relais : ton interlocuteur ne voit pas ton adresse IP. Le relais, lui, voit forcément passer un flux pendant l'appel — il n'en garde rien et n'en lit rien.

Mises à jour intégrées

Kalnetz vérifie lui-même s'il existe une nouvelle version et te la propose dans les Paramètres. Un clic pour télécharger, un clic pour installer. Rien ne s'installe sans toi. Sous Windows, l'empreinte SHA-512 du fichier est vérifiée avant l'installation. Sur Android, l'app vérifie l'empreinte SHA-256 du fichier et que la nouvelle version est signée par le même certificat que celle installée, puis Android te demande de confirmer.

Simple, à ta main

Trois boutons en bas : VPN, Chat, Paramètres. Un thème clair ou sombre, ou celui du système. Des notifications qui préviennent sans jamais afficher le texte d'un message. Ton identité s'exporte en un token chiffré par une phrase de passe, pour la retrouver sur un autre appareil, PC ou téléphone. Un compte ne s'ouvre que sur un appareil à la fois.

Comment ça marche

Quatre étapes. Pas d'email, pas de numéro, pas de mot de passe.

  1. Télécharger

    Récupère Kalnetz-Setup.exe pour Windows ou Kalnetz.apk pour Android sur cette page. C'est le seul fichier dont tu as besoin.

  2. Installer

    Sous Windows, l'installateur met en place Kalnetz et, si besoin, WireGuard pour le VPN. Sur Android, autorise l'installation depuis ton navigateur (comment) : tout est dans l'app.

  3. Choisir un pseudo

    Au premier lancement, tes clés sont générées sur ton appareil. Choisis un nom et un @pseudo. C'est ton seul identifiant.

  4. Discuter

    Ajoute un contact par son @pseudo, écris, appelle, active le VPN. Tout est chiffré avant de quitter ton appareil.

Confidentialité, en langage simple

Nos serveurs sont conçus pour en savoir le moins possible. Voici exactement ce qu'ils voient et ce qu'ils gardent.

Ce que le serveur voit

  • Des enveloppes chiffrées : un identifiant, un expéditeur, un destinataire et un bloc illisible.
  • Ton @pseudo, ton nom affiché et tes clés publiques, pour que tes contacts te trouvent.
  • Le nom et le type (groupe ou canal) de chaque groupe, la liste de ses membres et leurs rôles ; jamais ses messages.
  • Qui écrit à qui, le temps d'acheminer : il faut bien un destinataire sur l'enveloppe. Si le message ne peut pas être remis tout de suite, par exemple parce que ton contact est hors ligne, l'enveloppe en attente, expéditeur et destinataire compris, est écrite dans la file du serveur jusqu'à sa livraison (72 h au plus), puis effacée. Sinon, rien n'en est écrit.
  • Qu'un appel a lieu : son contenu et sa signalisation sont chiffrés, mais le serveur peut le deviner (messages de signalisation à durée de vie courte, demande d'accès au relais).
  • Le texte de tes messages, tes appels, les clés de groupe : rien de lisible, jamais.

Ce qu'il conserve

  • Un message destiné à un contact hors ligne attend au plus 72 heures, moins si ton minuteur est plus court, puis il est supprimé. Dès qu'il est livré, ou dès que tu le supprimes pour tout le monde, il est effacé.
  • L'annuaire : ton @pseudo, ton nom affiché et tes clés publiques. Supprimer ton compte dans l'app l'efface de ton appareil, pas de l'annuaire. Et les groupes : nom, type, membres et rôles, tant qu'il reste au moins un membre.
  • Aucun historique de messages. Ton historique n'existe que sur ton appareil, chiffré.
  • Aucun historique d'appel : ni début, ni fin, ni participants ne sont enregistrés. Le relais transporte des trames illisibles pendant l'appel et n'en garde aucune trace.
  • Aucun journal d'accès : ni adresse IP, ni horodatage de connexion ne sont écrits, où que ce soit. Ton adresse reste seulement en mémoire vive, pour les garde-fous anti-abus : tant que tu es connecté (et jusqu'à une minute après), jusqu'à une heure après une création de compte, et tant qu'un de tes messages attend un contact hors ligne (72 h au plus). Pendant ce temps, qui lirait la mémoire du serveur verrait quelle adresse va avec quel compte. Ensuite, elle est oubliée.
  • VPN : aucun journal, ni sur le serveur d'entrée ni sur les serveurs de sortie. Une clé WireGuard neuve à chaque connexion et une clé pré-partagée propre à cette connexion, toutes deux oubliées dès que tu te déconnectes. Le VPN n'a pas de notion d'utilisateur.

Le VPN, saut par saut

Ta connexion entre par notre serveur en France, puis ressort par le serveur du pays que tu as choisi. Voici ce que voit chaque maillon du chemin.

  1. Ton fournisseur d'accès

    Voit que tu es connecté à un VPN, vers notre serveur d'entrée en France, et la taille et le rythme de ce qui passe.

    Ne voit pas tes requêtes DNS, ni ce qui passe dans le tunnel.

  2. Serveur d'entrée France

    Voit ton adresse IP, et vers où part ton trafic : les adresses contactées, et tes requêtes DNS au passage, qu'il relaie sans les résoudre.

    Ne voit pas le contenu de ce qui est chiffré par ailleurs : une page en HTTPS, tes messages et tes appels Kalnetz.

  3. Serveur de sortie Amsterdam, Hong Kong ou New York

    Voit ton trafic, et tes requêtes DNS, qu'il résout lui-même : tes recherches partent du pays choisi.

    Ne voit pas ton adresse IP : il ne voit arriver que notre serveur d'entrée.

  4. Les sites et services

    Voient l'adresse IP du serveur de sortie, dans le pays choisi.

    Ne voient pas ton adresse IP.

Les deux serveurs de ton chemin sont à Kalnetz, et celui d'entrée voit à lui seul ton adresse et les adresses que tu contactes : le multi-saut ne te protège pas de nous, il sépare ton adresse IP de celle que voient les sites. Aucun de nos serveurs n'en garde de journal. Comme avec tout VPN, ce qui n'est pas chiffré par ailleurs (une page en http:// simple) reste lisible par nos serveurs. Si le serveur de sortie ne répond plus, l'app garde le tunnel et ton trafic est bloqué : il ne sort jamais par le serveur d'entrée. L'app te le signale et t'invite à changer de localisation.

Le même message, jamais le même chiffré

Chaque message reçoit un aléa de 12 octets tiré au hasard, à usage unique. En privé, il a aussi sa propre clé éphémère ; en groupe et en canal, il est chiffré avec la clé du groupe, renouvelée quand quelqu'un quitte le groupe ou en est retiré. Écris « cc » deux fois : les deux enveloppes relayées ou mises en attente sont totalement différentes. Personne ne peut deviner que tu as répété quoi que ce soit.

À ne pas confondre avec l'anti-rejeu, qui est un mécanisme distinct — et bien présent. Empêcher qu'une enveloppe capturée soit renvoyée plus tard, ou détournée vers un autre destinataire, tient à trois choses : l'expéditeur et le destinataire sont scellés dans le chiffrement, ton app garde la liste des messages déjà traités et refuse un identifiant déjà vu, et les horodatages reçus sont bornés. Deux chiffrés différents pour le même texte, ce n'est pas la même promesse.

Illustration. AES-256-GCM, IV neuf à chaque message (et clé neuve, en privé).

Sans compte

Ton identité est une paire de clés créée sur ton appareil. Pas d'email, pas de numéro, pas de mot de passe. Pour la retrouver sur un autre appareil, exporte-la depuis les Paramètres : tu obtiens un token chiffré par une phrase de passe que tu es seul à connaître. Kalnetz ne l'envoie nulle part : c'est toi qui le copies vers ton autre appareil.

Sous le capot

  • AES-256-GCM
  • ECDH P-256
  • HKDF-SHA-256
  • ECDSA P-256
  • WireGuard
  • Multi-saut
  • ChaCha20-Poly1305
  • Clé pré-partagée par connexion
  • WebRTC + trames AES-128-GCM

Serveurs auto-hébergés. Aucun service tiers, aucun tracker, ni dans l'app ni sur ce site.

Ce qui n'est pas (encore) là

Une page qui ne liste que ses qualités ment par omission. Voici ce que Kalnetz ne fait pas aujourd'hui.

Serveurs RAM-only prévu

Nos serveurs, celui d'entrée comme ceux de sortie, écrivent leur système sur disque, comme n'importe quel serveur. Rien de Kalnetz n'y est journalisé et les pairs du VPN ne vivent qu'en mémoire, mais ce n'est pas la même chose qu'une machine qui ne garde rien parce qu'elle ne sait pas écrire. Faire tourner les serveurs du VPN entièrement en mémoire est une étape prévue, pas une étape faite.

Trafic de couverture à mesurer d'abord

Le contenu est illisible, mais la taille et le rythme de ce qui passe restent observables par qui regarde le réseau. Ajouter du trafic factice ne vaut que si on le mesure avant et après ; tant que ce n'est pas mesuré, nous ne l'annonçons pas. Kalnetz ne fait pas de trafic de couverture.

Verrouillage permanent hors tunnel sous Windows prévu

Sous Windows, tant que le VPN est monté, rien ne sort à côté : WireGuard pose un pare-feu qui bloque tout ce qui passerait hors du tunnel. En revanche, entre une déconnexion et la reconnexion suivante, ton trafic repart en clair par ta connexion habituelle, y compris pendant les quelques secondes d'un changement de localisation, qui déconnecte puis reconnecte. C'est aussi le cas si notre serveur d'entrée lui-même ne répond plus : l'app finit alors par abandonner le tunnel (une sortie qui tombe, elle, ne le fait pas abandonner). Un mode « rien ne sort tant que le VPN n'est pas là » n'existe pas encore dans l'app Windows. Sur Android, ce n'est pas l'app qui le fait : ce sont les réglages du système « VPN permanent » et « Bloquer les connexions sans VPN », à activer toi-même.

Post-quantique complet non

La clé pré-partagée du tunnel ajoute une couche symétrique, et c'est tout ce qu'elle fait. Les échanges de clés restent classiques (X25519 pour le VPN, ECDH P-256 pour les messages) : face à un futur ordinateur quantique, Kalnetz n'est pas résistant. Le dire autrement serait mentir.

Android hors Play Store choix actuel

L'app Android n'est pas sur le Play Store : elle s'installe depuis le fichier Kalnetz.apk de cette page. Android te demande donc d'autoriser l'installation depuis ton navigateur, et Play Protect peut t'avertir, parce qu'il ne connaît pas l'app. Ensuite, la mise à jour intégrée n'installe une nouvelle version qu'après avoir vérifié son empreinte SHA-256 et sa signature : elle doit être signée par le même certificat que l'app déjà installée. Il n'existe pas d'app pour iPhone.

Installateur Windows signé prévu

L'installateur n'est pas encore signé par un certificat éditeur : Windows peut afficher un avertissement SmartScreen à la première ouverture. Les mises à jour, elles, sont téléchargées en HTTPS et leur empreinte SHA-512 est vérifiée avant l'installation.

Cette liste bouge avec l'app. Ce qui en sort part dans les sections du dessus, une fois fait et vérifié — pas avant.

Prêt en quelques secondes.

Télécharge Kalnetz, choisis un pseudo, et c'est tout.

Windows 10 et 11, 64 bits. L'installateur ajoute WireGuard s'il n'est pas déjà présent. Les mises à jour se font ensuite depuis l'app. L'installateur n'étant pas encore signé, Windows peut afficher un avertissement SmartScreen à la première ouverture (ce qui n'est pas encore là).

Installer sur Android

  1. Il faut Android 8 ou plus récent. Ouvre le fichier Kalnetz.apk téléchargé, depuis la notification du navigateur ou l'app Fichiers.
  2. Android bloque d'abord les apps venues du navigateur : touche « Paramètres », active « Autoriser cette source », reviens en arrière, puis « Installer ».
  3. Play Protect peut t'avertir, car l'app est distribuée hors Play Store : touche « Plus de détails », puis « Installer quand même ». Le texte exact dépend du téléphone.

Empreinte SHA-256 du certificat de signature de l'app, à comparer par exemple avec apksigner verify --print-certs Kalnetz.apk :

c69089ac2e91d05c222e9e6db061835460617171bd0698fecfb61c38cab0828f