Schlüssel erneuern und zurücksetzen

Jedes Gerät hat eigene Schlüssel, und alle Geräte eines Netzes teilen ein gemeinsames Geheimnis. Du kannst beides ersetzen, ein Gerät aus dem Netz nehmen und von vorn beginnen lassen oder ein verlorenes Gerät aussperren.

Welche Schlüssel es gibt #

Jedes Gerät hat eigene Schlüssel. Seine WireGuard- und Sealing-Schlüssel schützen seine Tunnel und die Nachrichten, die an es versiegelt werden. Sein Identitätsschlüssel weist es im Mitgliederlog aus.

Außerdem hat das Netz ein Gruppengeheimnis, das alle Mitglieder kennen und mit dem sie einander finden. Admin-Schlüssel gehören Personen und bestätigen Änderungen (Mehrere Admins).

Einen Schlüssel zu ersetzen heißt, ihn zu erneuern. Ein neuer Schlüssel ist eine Änderung am Log, also bestätigen die Admins ihn wie jede andere.

Schlüssel erneuern #

Was du ersetzen willstBefehlHinweis
die WireGuard- und Sealing-Schlüssel dieses Gerätsjuist rotateName und Adressen bleiben gleich
den Identitätsschlüssel dieses Gerätsjuist rotate identitydie IPv6-Adresse ändert sich
das Gruppengeheimnis des Netzesjuist rotate group-secretnach einem Leck

Mit juist rotate gibst du einem Gerät, dem du noch vertraust, neue Schlüssel. Liegt auf dem Gerät ein Admin-Schlüssel des Netzes und reicht dem Quorum eine Stimme, gilt die Änderung sofort:

laptop
$ juist rotate
new keys cfe695661243
new keys live
rotated this device's keys

Braucht die Änderung einen weiteren Admin, wartet sie auf dessen Bestätigung, und die neuen Schlüssel bleiben vorgemerkt, bis das Log sie enthält. Mit juist rotate abandon verwirfst du eine Erneuerung, die noch auf Bestätigung wartet.

Verbindungen laufen weiter, während das Gerät auf seine neuen Schlüssel wechselt. Ein Gerät, das ein Relay betreibt, startet seine Tunnel stattdessen neu.

juist rotate identity ändert die IPv6-Adresse des Geräts und beendet damit die Verbindungen über die alte. Dafür muss das Netz auf Schema 19 stehen; darunter bricht der Befehl mit juist: the network predates rotating an identity key ab, bis ein Admin juist log upgrade ausführt (juist aktualisieren).

Ein Gerät von vorn beginnen lassen #

Mit juist reset verlässt ein Gerät das Netz und ist danach wie frisch installiert. Es vergisst das Netz und alles, was es dafür gespeichert hatte: Schlüssel, Log, Peers und Operator. Admin-Schlüssel bleiben erhalten. Im folgenden Beispiel war phone schon aus dem Netz entfernt:

phone
$ juist reset
forget "home" and reset this device, with new keys? [y/N] y
reset; new keys, no network

Liegen Admin-Schlüssel in deinem Keystore, kommt noch die Zeile admin keys kept in ~/.config/juist/admins mit dem vollständigen Pfad hinzu.

Führt das Netz das Gerät noch als Mitglied, braucht juist reset die Option --force. Entferne das Gerät nach Möglichkeit vorher vom Gerät eines Admins aus, damit auch die anderen Geräte ihm nicht mehr vertrauen.

Ist ein Gerät in mehreren Netzen, vergisst es nur das angegebene Netz: juist reset work --force. Dessen juistd wird dabei mit entfernt, außer es ist das erste Netz. Die anderen Netze behalten ihre Schlüssel.

Wenn ein Gerät verloren ist #

1auf dem Gerät eines Admins

Entferne das verlorene Gerät:

juist remove phone

Dabei wird auch das Gruppengeheimnis erneuert. Jedes Gerät baut seinen Tunnel zu phone ab, sobald es davon erfährt; ein abgeschnittenes Gerät tut das binnen 48 Stunden, wenn das Netz Voucher hat.

2auf dem Gerät eines Admins

Lag auf dem verlorenen Gerät ein Admin-Schlüssel, entzieh diesem Schlüssel auch seine Stimme. In der Spalte ON von juist admins siehst du, welcher Schlüssel dort lag:

juist admins remove nid:…

juist lehnt das ab, wenn die übrigen Schlüssel das Quorum nicht erreichen.

Ein Ersatzgerät tritt wie jedes neue Gerät mit einer neuen Einladung bei (Einladungen). Taucht das alte Gerät wieder auf, meldet sein juist status den Zustand removed. Lade es dann neu ein, oder führe dort juist reset aus.

Admin-Schlüssel sichern #

Ein Admin-Schlüssel liegt nur im Schlüsselspeicher des Rechners, auf dem er entstanden ist. Für eine Kopie im Passwortmanager gibst du ihn als eine Zeile aus und leitest sie dorthin. juist admins listet die Schlüssel auf diesem Rechner unter KEY HERE:

3auf dem Rechner eines Admins
juist admins export alice@home | pass insert -m juist/alice

Zurück bekommst du ihn auf jedem Rechner, indem du die Zeile wieder hineinleitest:

laptop
$ pass show juist/alice | juist admins import alice@home
imported admin key "alice@home"
it casts 1 vote in "home"

Die Zeile läuft immer durch eine Pipe, nie über die Kommandozeile. Ihre Prüfsumme lehnt eine abgeschnittene Zeile ab. Sie deckt auch den quantensicheren Signaturschlüssel ab, der sich aus ihr ableitet. Ein Import ersetzt nie einen vorhandenen Schlüssel. Wurde der Schlüssel seit der Sicherung aus dem Netz entfernt, warnt der Import mit "home" gives it no vote.

Die Break-glass-Zeile, die juist create angezeigt hat, bewahrst du ebenso auf, aber getrennt von den Admin-Schlüsseln (Das Netz beenden).

Die eigenen Schlüssel eines Geräts lassen sich nicht exportieren: Eine Kopie auf einem anderen Rechner wäre ein zweites Gerät unter dem Namen des ersten. Entferne ein verlorenes Gerät stattdessen und lade ein neues ein.

Gut zu wissen #

  • Erneuern, Zurücksetzen und Entfernen dürfen nur root und der Operator des Geräts. Zum Bestätigen braucht es einen Admin-Schlüssel.
  • juist reset warnt, wenn das Gerät das einzige im Netz ist, denn dann verschwindet das Netz mit ihm.
  • juist log zeigt jede Erneuerung und wer sie bestätigt hat.
Gefahr

Der Verlust eines Quorums von Admin-Schlüsseln ist endgültig. Bleiben weniger Admin-Schlüssel übrig, als eine Änderung braucht, kann nie wieder ein Gerät hinzukommen oder entfernt werden. Das Break-glass-Geheimnis, das juist create anzeigt, beendet das Netz nur (Das Netz beenden). Sichere jeden Admin-Schlüssel, setze mehr Admins ein, als das Quorum braucht, jeden mit eigenen Geräten, und halte bei juist admins require einen Schlüssel mehr bereit, als verlangt wird.

Warum juist das in Kauf nimmt, steht unter Trade-offs.

Fehlersuche #

Was du siehstWas du tun kannst
juist: still a member of "home"Entferne das Gerät zuerst mit juist remove phone auf dem Gerät eines Admins, oder häng --force an.
juist status: removedDieses Gerät gehört nicht mehr zum Netz. Tritt mit einer neuen Einladung wieder bei, oder führe juist reset aus.
hint: the new keys stay staged until the log names them or: juist rotate abandonWarte auf die Bestätigung, oder verwirf die Erneuerung mit juist rotate abandon.
juist: no admin key of this network in …Führe den Befehl dort aus, wo der Schlüssel eines Admins liegt.