
Seal v0.2.3
Peer-to-Peer-, Ende-zu-Ende-verschlüsselter Chat. Kein Posteingang. Kein Konto zum Wiederherstellen. Niemand hört zu — nicht einmal wir.
Seal
Peer-to-Peer-Chat mit Ende-zu-Ende-Verschlüsselung.
Kein Posteingang. Kein Konto, das wiederhergestellt werden müsste. Niemand hört mit — nicht einmal wir.
Nachrichten werden direkt zwischen Peers über libp2p übertragen und mit den Signal-artigen Olm/Megolm-Protokollen verschlüsselt (über vodozemac), bevor sie dein Gerät verlassen. Der einzige beteiligte Server ist ein kleines Verzeichnis, das Peers dabei hilft, die aktuelle Adresse des jeweils anderen zu finden. Es sieht nie Nachrichteninhalte und kann mit einem einzigen Befehl gelöscht werden.
Siehe docs/THREAT_MODEL.md und
docs/SECURITY.md für Details dazu, wogegen tatsächlich
geschützt wird und wie.
Inhalt
- Screenshots
- Funktionen
- So funktioniert es
- Projektstruktur
- 1. Voraussetzungen
- 2. Kompilieren
- 3. Im Entwicklermodus ausführen
- 4. Testen
- 5. Backend-(Verzeichnisserver-)Einrichtung
- 6. Die App verwenden
Screenshots
Erster Start — Namen wählen; sonst ist nichts einzurichten.
Unterhaltungen — die Gruppenleiste, Kontaktliste und ein Ende-zu-Ende-verschlüsselter Chat-Bereich.
Einstellungen — Mikrofonempfindlichkeit, Push-to-Talk, Anmelden bei Start, Netzwerkerreichbarkeit.
Funktionen
- Immer Ende-zu-Ende-verschlüsselt — jede Nachricht wird mit Olm (1:1) oder Megolm (Gruppen) versiegelt, bevor sie dein Gerät verlässt, und zwar mithilfe von vodozemacs Double-Ratchet-artigem Schema: Jede Nachricht erhält ihren eigenen Schlüssel.
- Nie ein Posteingang — Nachrichten werden über eine direkte Peer-to-Peer-Verbindung übertragen (libp2p: QUIC/TCP + Noise, mit Relay und Hole-Punching für NATs). Ist der Empfänger offline, wartet die Nachricht lokal und versucht es erneut — sie wird nie in der Infrastruktur anderer in eine Warteschlange gestellt.
- Ein Verzeichnis, keine Datenbank — der eine beteiligte Server
(
crates/directory-server) bildet eine Benutzer-ID auf eine aktuelle Netzwerkadresse ab und sonst nichts. Er ist strukturell nicht in der Lage, Nachrichteninhalte zu lesen: SeineCargo.tomlhängt nicht einmal von den Crates ab, die dafür nötig wären. - Mehrere Konten auf einem Gerät — vollständig getrennte Identitäten (Schlüssel, Kontakte, Nachrichten), zwischen denen du ohne Neustart wechseln kannst.
- Gruppen mit echten Mitgliedschaftsänderungen — Text- und Sprachkanäle pro Gruppe; das Entfernen einer Person rotiert den Gruppen- schlüssel, sodass sie nichts mehr lesen kann, was danach gesendet wird.
- Integrierte Sprachfunktion — Push-to-Talk über einen systemweiten Shortcut (funktioniert aus jeder App, nicht nur aus Seal), einstellbare Mikrofonempfindlichkeit und ein optionaler Stimmverzerrer.
- Anhänge ohne Metadaten — EXIF-Daten (GPS-Standort, Kamera-/ Geräteinformationen) werden standardmäßig aus Bildern entfernt, bevor sie gesendet werden.
- Ein echter Panikknopf — Einstellungen → Daten & Datenschutz löscht sofort und unwiderruflich jeden Schlüssel, Kontakt und jede Nachricht auf diesem Gerät — ohne jede Auswirkung auf Personen, mit denen du gesprochen hast.
- Anmelden bei Start, falls gewünscht — standardmäßig aktiviert, in den Einstellungen per Schalter deaktivierbar.
- Eine Codebasis, drei Plattformen — native Fenster auf macOS, Windows und Linux, über Tauri.
So funktioniert es
Es gibt zwei Arten von Identitäten in dieser App, die bewusst getrennt gehalten werden: