Latchwire
Deutsch

Open Source · WireGuard®-kompatibel

Mach deinen VPN-Schlüssel unkopierbar.

Latchwire behält deinen privaten WireGuard-Schlüssel im YubiKey. Er wird auf der Karte erzeugt und verlässt sie nie. Protokoll und Server bleiben unverändert. Keine Karte, kein Tunnel.

Vorabversion: Kommandozeile für macOS und Linux

So funktioniert es

  1. Schlüssel auf dem YubiKey erzeugen

    Führe keygen mit einem YubiKey ab Firmware 5.7 aus. Der Schlüssel entsteht auf der Karte, in einem Retired-PIV-Slot (82–95); andere Slots bleiben unverändert. Eine Karte mit Werkseinstellungen bekommt zuerst eine neue PIN und PUK.

  2. Öffentlichen Schlüssel zum Server hinzufügen

    Dein Server sieht einen gewöhnlichen WireGuard-Peer und braucht weder Plugin noch Update. Latchwire ist für Standardserver wie OPNsense, pfSense, Linux und MikroTik gebaut. Bisher wurde es durchgehend nur gegen einen Testserver in einem Linux-Container getestet.

  3. PIN eingeben und verbinden

    Die PIN geht an die Karte und wird nicht gespeichert. Normalerweise gibst du sie einmal ein; nach dem Ruhezustand oder wenn ein anderes Programm die Karte zurücksetzt, wird sie erneut abgefragt. Ziehst du die Karte ab, geht der Tunnel zu. Ziel sind zwei Sekunden; ein Test mit einer simulierten Karte dauerte etwa eine.

Klassisches WireGuard und Latchwire

FrageKlassisches WireGuardLatchwire
Wo liegt der private Schlüssel?In einer Datei auf deinem ComputerIm YubiKey
Kann er kopiert werden?Ja, ohne SpurenNein. Der Schlüssel lässt sich nicht von der Karte holen
Laptop ohne Karte gestohlen?Schlüssel auf jedem Server ersetzenNichts auf der Festplatte kann einen Handshake abschließen
Schadsoftware auf dem Computer?Sie kann den Schlüssel stehlen und später nutzenSie kann den Tunnel nutzen, solange die Karte steckt, aber den Schlüssel nicht mitnehmen
BackupEine Kopie der DateiEin zweiter YubiKey, als zweiter Peer auf dem Server eingetragen
ServerseiteStandard-WireGuardDasselbe: Standard-WireGuard
ReifeEtabliert, mit offiziellen ClientsVorabversion

Hardware

Im Code existiert heute nur die erste Karte unten. Die Etiketten sagen, was jeweils gilt.

YubiKey 5

v1

PIV mit X25519, ab Firmware 5.7. Der Schlüssel wird auf der Karte erzeugt und verlässt sie nie. Bisherige Tests nutzen simulierte Karten; Prüfungen mit echten Karten stehen noch aus.

OpenPGP-Karten

Bald

Direkt nach v1 geplant. Nicht implementiert.

PKCS#11 und HSMs

Bald

Direkt nach v1 geplant, für Geräte mit X25519. Nicht implementiert.

TPM, Secure Enclave, FIDO2

Roadmap

Schwächere Klasse, nicht in v1. Der Schlüssel wäre durch Hardware verschlüsselt, läge beim Gebrauch aber offen im Speicher. Diese Geräte tragen darum nie die Aussage, der Schlüssel sei nicht kopierbar.

Sicherheit

Die Aussage betrifft das Entwenden des Schlüssels, nicht seine Nutzung. Das deckt sie ab und das nicht.

Schützt vor

  • Kopieren des Schlüssels von Festplatte oder Backups: Dort wird nie ein privater Schlüssel gespeichert
  • Einem gestohlenen oder geklonten Laptop ohne die Karte
  • Konfigurationsdateien mit privatem Schlüssel: Latchwire lehnt sie ab
  • Schlüsseln, die nicht auf der Karte erzeugt wurden: Latchwire verweigert sie
  • Verkehr außerhalb des Tunnels bei aktivem Kill Switch, in den Grenzen des Bedrohungsmodells

Schützt nicht vor

  • Schadsoftware unter deinem Konto, während die Karte steckt und die PIN eingegeben ist: Sie kann Karte und Tunnel nutzen. Es ist keine Berührung nötig
  • Anderen Programmen, die nach der PIN-Eingabe die Karte erreichen; auf manchen Systemen gehören andere lokale Benutzer dazu
  • Einem kompromittierten Root-Konto oder Kernel
  • Einem Laptop, der zusammen mit Karte und PIN gestohlen wird
  • Auslesen des Prozessspeichers: Dort liegen Sitzungsschlüssel und ein zwischengespeichertes Geheimnis, die auch im Swap landen können. Sie sind nicht der private Schlüssel und können ohne Karte keinen Handshake abschließen
  • Gefälschten Tokens: Latchwire vertraut den Angaben der Karte und prüft noch keine Attestierung

Gut zu wissen

  • Die PIN wird nie gespeichert, läuft beim Tippen aber durch den Speicher.
  • Die Standard-PIN wird nie ausprobiert.
  • Ein Preshared Key liegt, falls genutzt, auf der Festplatte und ist nicht durch Hardware geschützt.
  • Das Bedrohungsmodell nennt den Code hinter jedem Schutz. Widersprechen sich beide, hat der Code recht und das Dokument einen Fehler.

Projektstatus

Latchwire ist Vorabsoftware. Das existiert heute, und das wurde geprüft.

  • Linux: Kommandozeile und Netzwerk

    Durchgehend getestet in einem privilegierten Container, mit Softwareschlüssel und Testserver.

    Getestet
  • macOS: Kommandozeile und Netzwerk

    Implementiert. Die manuellen Prüfungen stehen noch aus.

    Ungeprüft
  • Verhalten mit echtem YubiKey

    Automatische Tests nutzen simulierte Karten. Prüfungen mit echten Karten stehen noch aus.

    Ungeprüft
  • Windows

    Nicht implementiert. Der Windows-Build kompiliert noch nicht.

    Nicht fertig
  • Desktop-App

    In Entwicklung. Heute gibt es nur die Kommandozeile.

    Nicht fertig
  • Signierte Releases und Pakete

    Es gibt keine Releases. Du baust aus dem Quellcode.

    Noch keine
  • Unabhängige Sicherheitsprüfung

    Es gab noch keine unabhängige Prüfung.

    Noch keine

Installation

Aus dem Quellcode bauen. Es gibt noch keine Pakete oder signierten Binärdateien, und dieses Setup ist zum Testen gedacht.

Du brauchst Go 1.25 oder neuer und einen YubiKey 5 ab Firmware 5.7. Unter Linux brauchst du zum Bauen außerdem einen C-Compiler und libpcsclite-dev sowie ein laufendes pcscd.

Bauen

git clone https://github.com/Kodviva/latchwire
cd latchwire
go build -o latchwire ./cmd/latchwire
sudo install -o root -m 0755 latchwire /usr/local/bin/latchwire

Daemon und Agent starten, jeweils im eigenen Terminal

sudo latchwire daemon
latchwire agent

Schlüssel erzeugen und verbinden

latchwire devices
latchwire keygen --serial <serial> --address <tunnel-ip>
sudo latchwire add office office.conf
latchwire up office

keygen gibt einen [Peer]-Block für deinen Server aus. Deine Tunneldatei ist eine normale WireGuard-Datei mit KeyRef und PublicKey anstelle von PrivateKey.

Homebrew-, .deb-, .rpm- und Microsoft-Store-Pakete sind geplant. Keines davon existiert bisher.

Roadmap

  1. KernImplementiert

    Kommandozeilen-Client für macOS und Linux

  2. Volle NetzwerkfunktionenImplementiert

    Full Tunnel, DNS, Kill Switch, On-Demand und erlaubte Benutzer. Unter Linux getestet; macOS noch zu prüfen

  3. Prüfungen auf echter HardwareOffen

    Echte YubiKeys und macOS-Netzwerk, anhand der öffentlichen Checkliste

  4. WindowsIn Arbeit

    Dienst, Netzwerkschicht und Kill Switch

  5. Desktop-App und ÜbersetzungenIn Arbeit

    Desktop-App für macOS, Windows und Linux

  6. Signierte ReleasesGeplant

    Homebrew, Direktdownload, .deb, .rpm, Microsoft Store