Sicherheit im Überblick
Was juist schützt, worauf es sich verlässt und wo seine Grenzen liegen, für Leser, die keine Sicherheitsfachleute sind. juist hatte noch kein Sicherheitsaudit.
Worum es geht
juist hat keinen Server in der Mitte, der entscheidet, wer zum Netz gehört. Das entscheiden deine Admins, indem sie Änderungen signieren, und jedes Gerät prüft diese Änderungen selbst. Diese Seite sagt, was daraus folgt: wem du vertrauen musst, wo die Schlüssel liegen und was juist nicht leisten kann.
Die vollständige Analyse, mit jeder verbleibenden Schwäche, steht im Bedrohungsmodell (englisch).
Wem du vertraust
- Deinen Admins als Gruppe. Eine Änderung, etwa ein Gerät aufzunehmen oder zu entfernen, braucht das Quorum: so viele Admin-Stimmen, wie das Netz verlangt. Ein Admin mit weniger Stimmen kann allein nichts ändern, und das Log hält fest, wer welche Änderung signiert hat.
- Dem Anfang des Netzes. Jedes Gerät prüft jede Änderung im Mitgliederlog zurück bis zur ersten, die beim Anlegen des Netzes entstand.
- Jedem Mitglied. Ein aufgenommenes Gerät erreicht durch den Tunnel jeden Port jedes anderen Mitglieds. Zugriffsregeln hat juist noch nicht.
- Einem Exit-Node, für das, was er trägt. Den Internetverkehr, den du über einen Exit-Node schickst, kann er lesen, so wie es jeder VPN-Anbieter könnte.
Wem du nicht vertraust
- Den Wegen dazwischen. Jede Änderung ist signiert und wird von jedem Gerät geprüft, egal wie sie ankam. Verkehr zwischen Mitgliedern verschlüsselt WireGuard.
- Den öffentlichen Helfern. Der öffentliche BitTorrent-DHT und die STUN-Server helfen Geräten, einander zu finden. Sie können eine Verbindung verzögern, aber weder ändern, wer zum Netz gehört, noch Verkehr lesen. Sie sehen die Adressen, die sie nutzen.
- Dem Relay. Ein Relay ist eines deiner eigenen Mitglieder. Nur Mitglieder können es nutzen, und es sieht nur verschlüsselten WireGuard-Verkehr.
- Dem Daemon, wenn es ums Signieren geht. juistd hält nie einen Admin-Schlüssel, ein kompromittierter juistd kann also keine Änderungen signieren.
Wo die Schlüssel liegen
- Admin-Schlüssel liegen in deinem Keystore,
~/.config/juist, auf jedem Rechner, von dem aus du bestätigst. Kopiere nie einen Schlüssel: Wer zwei Laptops hat, erzeugt auf jedem einen. Jedes Netz bekommt einen eigenen Schlüssel, ein verlorener oder gestohlener kostet also ein Netz. - Die eigenen Schlüssel des Geräts hält juistd; unter Linux legt das Paket sie
in
/var/lib/juistab. juistd läuft als eigener Benutzer, nur mitCAP_NET_ADMIN. Der Befehljuistsigniert nur, was er aus seinem eigenen geprüften Log nachgebaut hat, egal worum juistd bittet. - Die Break-glass-Geheimnisse, die
juist createschreibt, sind für eine Wiederherstellung gedacht, die es noch nicht gibt. Bewahre sie trotzdem offline auf.
Wovor Einladungen schützen
Mit einer Einladung tritt ein Gerät bei. Sie schützt vor dreierlei:
- Vor dem Raten. Ein Code erlaubt genau einen Versuch, und nur aus dem LAN. Ein Link enthält ein 128-Bit-Geheimnis, viel zu lang zum Raten.
- Vor einem Gerät dazwischen. Bevor etwas signiert wird, vergleicht der Admin vier Wörter mit dem neuen Gerät. Sie sind so gemacht, dass niemand dazwischen nach passenden Wörtern suchen kann.
- Vor einem kompromittierten Daemon auf dem einladenden Gerät. Der Link bindet das neue Gerät an die Signatur des einladenden Admins, dieser Daemon kann es also nicht in ein eigenes Netz holen.
Ein Gerät entfernen, und wo das an Grenzen stößt
juist remove phone nimmt ein Gerät aus dem Netz. Es erneuert das
Gruppengeheimnis des Netzes, mit dem sich die Mitglieder finden, und jedes
Mitglied baut seinen Tunnel zu dem Gerät ab, sobald es von der Entfernung hört.
Siehe Ein Gerät entfernen.
Die Grenze: Ein Mitglied, das vom Rest abgeschnitten ist, hört spät davon und
behält bis dahin seinen Tunnel zum entfernten Gerät. Die Frische begrenzt das
auf 48 Stunden: Ein Mitglied, für das seit 48 Stunden kein Voucher gebürgt
hat, behält nur noch Tunnel zu Vouchern. Ein Voucher ist ein Gerät, das
stündlich bestätigt, dass der Stand des Netzes aktuell ist. Mit
juist admins vouchers M hält diese Grenze auch dann, wenn M − 1 Voucher
lügen. Siehe Frische.
Ein verlorenes oder gestohlenes Gerät bleibt Mitglied, bis du es entfernst. Entferne es, sobald du es merkst.
Was juist in Kauf nimmt
Ohne Server in der Mitte ist manches schwächer. Die Trade-offs sagen zu jedem Punkt, was passieren kann, warum es in Kauf genommen wird und was du ändern kannst. Kurz:
- Gehen die Admin-Schlüssel eines Quorums verloren, ist das Netz nicht mehr zu retten. Gib ihm mehr Admins, als das Quorum braucht.
- Ein Netz, in dem jedes Gerät hinter symmetrischem NAT steht, braucht ein Mitglied als Relay.
- Der öffentliche DHT und die STUN-Server sehen die Adressen, die sie nutzen, und sonst nichts. Mit einem eigenen Relay kommt juistd ohne sie aus.
Post-Quanten
Ein künftiger Quantencomputer könnte heute übliche Verschlüsselung brechen. Die Gruppengeheimnisse des Netzes schützt juist schon dagegen: Sie verwenden X25519 zusammen mit ML-KEM-768. WireGuard-Verkehr ist noch nicht so geschützt; das ist für die Zeit nach Version 1 geplant. Signaturen sind Ed25519.
Heute aufgezeichneter Verkehr könnte also eines Tages entschlüsselt werden. Verlass dich für Verkehr, der jahrzehntelang geheim bleiben muss, nicht auf juist.
Gut zu wissen
- juist hatte noch kein Sicherheitsaudit.
- Unter Linux ist ein Dienst, der nur auf der juist-Adresse eines Geräts lauscht, trotzdem aus dem LAN dieses Geräts erreichbar. Lass Dienste prüfen, wer sich verbindet.
- Jede Änderung am Netz, und wer sie bestätigt hat, steht in
juist log.