DefGuard / DefGuard/client

Implement wireguard keys based polling auth

Offen
#299 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Rust
Sterne
369
Forks
39
Ø Merge
13 Std. 24 Min.
Gemergte PRs (30 T.)
33

Beschreibung

Initial implementation of configuration polling uses auth tokens. Since client application does not implement regular user authentication frontend, there is no reasonable way to implement token expiration and updates. Because of this, those tokens are issued indefinitely which is not ideal. The tokens would also have to be reissued if they ever get lost.

To mitigate those issues it should be possible to implement an authentication mechanism based on wireguard keys. Basic idea, to be researched and implemented if no significant flaws are found:

* client stores wg private key
* core stores corresponding wg public key
* client uses private key to sign a (timestamp, nonce) tuple
* client includes signed tuple in polling request
* core uses public key to verify the signature
* core verifies timestamp is within acceptable range (5 minutes?)
* core stores the nonce to db as "consumed"
* core removes from db nonces older than acceptable range

Potential solution: https://signal.org/docs/specifications/xeddsa/

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Es werden keine Dateien, Tests oder Einstiegspunkte genannt. Untersuche den vorgeschlagenen XEdDSA-Ansatz und bewerte die Speicherung des Client-Schlüssels, die Polling-Anfrage mit signiertem Zeitstempel und Nonce, die Verifizierung des öffentlichen Schlüssels, das Zeitstempelfenster und die Bereinigung verbrauchter Nonces. Als erledigt gilt, dass ein tragfähiges, auf WireGuard-Schlüsseln basierendes Authentifizierungsdesign für das Polling ohne wesentliche Fehler implementiert ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
authentication, networking, security
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.