Reverse-Connector-Listener mit Shared-Key-Upgrade auf Port 9335 implementieren #5

Closed
opened 2026-07-17 09:05:49 +02:00 by frank · 2 comments
Owner

Teil von #1. Blockiert durch die Protokollspezifikation.

Ziel

Der MCP-Server akzeptiert auf Port 9335 authentisierte HTTP/1.1-Upgrade-Verbindungen privater Proxies.

Scope

  • Separater net/http-Listener, Default 0.0.0.0:9335.
  • Nur die definierte Connector-Route und HTTP/1.1 Upgrade akzeptieren.
  • Shared Key in einem Authorization-Schema oder eindeutig benannten Header übertragen; nicht in URL oder Query.
  • Vergleich mit crypto/subtle in konstanter Zeit.
  • Fehlende oder falsche Authentisierung vor dem Upgrade ablehnen.
  • Erfolgreich mit 101 Switching Protocols und exakt ausgehandeltem Upgrade-Token wechseln.
  • Handshake-Timeout, Headergrößenlimit und maximale gleichzeitige Handshakes konfigurieren.
  • Shared Key aus Secret-Datei oder Environment laden; niemals loggen.
  • Optional mehrere Keys mit stabiler key_id unterstützen, um Rotation ohne Downtime vorzubereiten.
  • Rate-Limit beziehungsweise Backoff für fehlgeschlagene Authentisierungen.
  • TLS-Konfiguration ermöglichen und Klartextbetrieb außerhalb Loopback deutlich warnen.

Akzeptanzkriterien

  • Default-Port ist 9335.
  • Nur HTTP/1.1 mit korrektem Connection-/Upgrade-Header und gültigem Shared Key erhält 101.
  • Fehlerfälle liefern 400, 401, 405 oder 426 ohne Secret-Leak.
  • Unit-/Integrationstests prüfen gültigen Handshake, falschen Key, falsche Version, HTTP/2-Versuch, Timeout und Rotation.
  • Authentisierungsfehler werden sicher und rate-limited geloggt.

Referenzen

Teil von #1. Blockiert durch die Protokollspezifikation. ## Ziel Der MCP-Server akzeptiert auf Port 9335 authentisierte HTTP/1.1-Upgrade-Verbindungen privater Proxies. ## Scope - Separater net/http-Listener, Default 0.0.0.0:9335. - Nur die definierte Connector-Route und HTTP/1.1 Upgrade akzeptieren. - Shared Key in einem Authorization-Schema oder eindeutig benannten Header übertragen; nicht in URL oder Query. - Vergleich mit crypto/subtle in konstanter Zeit. - Fehlende oder falsche Authentisierung vor dem Upgrade ablehnen. - Erfolgreich mit 101 Switching Protocols und exakt ausgehandeltem Upgrade-Token wechseln. - Handshake-Timeout, Headergrößenlimit und maximale gleichzeitige Handshakes konfigurieren. - Shared Key aus Secret-Datei oder Environment laden; niemals loggen. - Optional mehrere Keys mit stabiler key_id unterstützen, um Rotation ohne Downtime vorzubereiten. - Rate-Limit beziehungsweise Backoff für fehlgeschlagene Authentisierungen. - TLS-Konfiguration ermöglichen und Klartextbetrieb außerhalb Loopback deutlich warnen. ## Akzeptanzkriterien - Default-Port ist 9335. - Nur HTTP/1.1 mit korrektem Connection-/Upgrade-Header und gültigem Shared Key erhält 101. - Fehlerfälle liefern 400, 401, 405 oder 426 ohne Secret-Leak. - Unit-/Integrationstests prüfen gültigen Handshake, falschen Key, falsche Version, HTTP/2-Versuch, Timeout und Rotation. - Authentisierungsfehler werden sicher und rate-limited geloggt. ## Referenzen - RFC 9110 Upgrade: https://www.rfc-editor.org/rfc/rfc9110.html#name-upgrade - Go crypto/subtle: https://pkg.go.dev/crypto/subtle - Go net/http: https://pkg.go.dev/net/http
Author
Owner

🤖 forge agent started

  • Agent: codex
  • Model: gpt-5.6-sol
  • Mode: pr
  • Trigger: assignee=agent|+5 mapped

Reverse-Connector-Listener mit Shared-Key-Upgrade auf Port 9335 implementieren — Teil von #1. Blockiert durch die Protokollspezifikation.

🤖 **forge agent started** - Agent: `codex` - Model: `gpt-5.6-sol` - Mode: `pr` - Trigger: `assignee=agent|+5 mapped` Reverse-Connector-Listener mit Shared-Key-Upgrade auf Port 9335 implementieren — Teil von #1. Blockiert durch die Protokollspezifikation.
Author
Owner

forge agent failed

agent branch has no commits ahead of main (empty PR); dirty work must be committed before finish
❌ **forge agent failed** ``` agent branch has no commits ahead of main (empty PR); dirty work must be committed before finish ```
frank closed this issue 2026-07-17 11:58:08 +02:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
ai-tools/private-proxy-mcp#5
No description provided.