Den Ursprung bewahren, das Vertrauensmodell ändern.

Das ursprüngliche JDoor war ein Schulprojekt von 2022, das Djenis mit einer mitwirkenden Person entwickelte. Es demonstrierte Java-Netzwerkprogrammierung, Bildschirmaufnahme und entfernte Eingaben. Dieser gemeinsame Ursprung bleibt Teil der Projektdokumentation; die spätere Arbeit stellt den Unterrichtsprototyp nicht als Einzelarbeit dar.

Eine Demonstration ist noch kein Support-Produkt. Der alte Entwurf behandelte eine eingehende Verbindung als Steuerkanal, ohne stark authentifizierte Kopplung, Nur-Ansicht-Zustand oder vollständigen Lebenszyklus für hängen gebliebene Tasten, Socketfehler und Herunterfahren. Die Modernisierung begann deshalb damit, die erlaubten Fähigkeiten einzuschränken.

Regeln für autorisierte Unterstützung.

Das neu aufgebaute Produkt folgt vier nicht verhandelbaren Vorgaben:

  1. Jede Sitzung dient ausschließlich autorisierter, von beiden Personen eingeleiteter Hilfe: Der Host bleibt sichtbar, genehmigt jeden Viewer lokal und stellt niemals unbeaufsichtigten oder versteckten Hintergrundzugriff bereit.
  2. Der Netzwerkpfad kann beobachtet oder verändert werden; deshalb muss der Viewer das exakte kurzlebige Zertifikat authentifizieren und das außerhalb des Netzes erhaltene, kurz gültige Einmal-Token vorlegen.
  3. Bildansicht und Fernsteuerung sind getrennte Berechtigungen; die Steuerung beginnt deaktiviert, der Host kann sie sofort entziehen und Widerruf oder Trennung geben verfolgte Tasten und Maustasten frei.
  4. Protokolleingaben sind nicht vertrauenswürdig: Nachrichten, Bilder, Timeouts, Worker und Cleanup benötigen ausdrückliche Grenzen, Richtungsregeln und deterministisches Schließen.

Fernunterstützung statt Fernadministration.

Die zentrale Entscheidung bestand nicht darin, den alten Steuerpfad zu verstecken oder auszubauen. Er wurde durch eine Produktgrenze ersetzt, die Zustimmung sichtbar macht und Persistenz, Shell-Ausführung sowie unbeaufsichtigten Zugriff aus dem Entwurf entfernt.

Für die Modernisierung trennte Djenis TLS-Identität und Pairing, gerahmtes Protokoll, Sitzungszustand, Aufnahme, Eingaberichtlinie, Audit-Ereignisse und Swing-Oberfläche. Authentifizierung, Genehmigung, Ansicht und Steuerung sind damit getrennte Zustände statt Nebenwirkungen eines geöffneten Sockets.

Eine Sitzung rund um ausdrückliche Zustimmung.

Die Host-Oberfläche erzeugt eine kurzlebige Identität und einen Einmal-Link. Der Viewer pinnt dieses Zertifikat, übermittelt das Token und wartet auf die lokale Genehmigung. Erst danach trägt der begrenzte Kanal Bildschirmframes; Maus- und Tastaturnachrichten werden nur angewendet, solange die aktive Host-Sitzung eine ausdrückliche Steuerfreigabe besitzt.

Eine Sitzung rund um ausdrückliche Zustimmung. Frames erreichen einen genehmigten Viewer; Eingaben fließen nur während der sichtbaren Steuerfreigabe des Hosts zurück.SYSTEMANSICHT / JDOORHOST-UIZUSTIMMUNGSSITZUNGGEPINNTES TLSBEGRENZTER WIREVIEWER-UIVERSIONIERTER AUSLIEFERUNGSPFAD
Frames erreichen einen genehmigten Viewer; Eingaben fließen nur während der sichtbaren Steuerfreigabe des Hosts zurück.

Warum diese Technologien.

Jede Entscheidung begrenzt JDoor auf die vorübergehende, sichtbare Unterstützung seines Vertrauensmodells.

T01 Die Entscheidung

Java und Swing für die Desktop-Anwendung.

Warum
Sie bewahren die Codebasis und nutzen AWT unter Java 21 direkt für Aufnahme, Eingabe und native Oberflächen.
Was ich ausgeschlossen habe
Eine Web- oder Electron-Neuentwicklung beseitigte die nötigen Desktop-Rechte nicht und vergrößerte die Laufzeitoberfläche.
Der Preis dafür
Wir nehmen Java-Auslieferung, betriebssystemspezifische Berechtigungen und eine weniger webtypische Oberfläche in Kauf.
T02 Die Entscheidung

Direkte Verbindung im vertrauenswürdigen LAN.

Warum
Sie passt zu einer Sitzung zwischen einem anwesenden Host und genau einem Helfer ohne zentrale Infrastruktur.
Was ich ausgeschlossen habe
Relay und Konten ermöglichten Internetzugriff und NAT-Traversal, führten aber zentrale Geheimnisse, Missbrauchsrisiken, Identitäten und Dienstbetrieb ein.
Der Preis dafür
Wir nehmen in Kauf, dass beide Geräte ein vertrauenswürdiges Netz oder einen vorbereiteten privaten Pfad teilen müssen.
T03 Die Entscheidung

Kurzlebiges TLS mit Pin und Einmal-Token.

Warum
Die Einladung authentifiziert genau den Endpunkt dieser Sitzung, ohne dauerhafte Identität oder Kontodatenbank anzulegen.
Was ich ausgeschlossen habe
Dauerhafte Passwörter und Identitäten verlangten Speicherung, Wiederherstellung, Rotation und Widerruf außerhalb des Projektumfangs.
Der Preis dafür
Wir nehmen die Übertragung des Links außerhalb der Sitzung, den Codevergleich und eine neue TLS-Identität bei jedem Host-Start in Kauf.
T04 Die Entscheidung

Ein enges, begrenztes Binärprotokoll.

Warum
Es überträgt nur Frames, Heartbeats, Berechtigungszustand und autorisierte Eingaben mit prüfbaren Typen und Größen.
Was ich ausgeschlossen habe
Ein universeller Stack wie RDP oder VNC böte Interoperabilität, müsste aber weitergehende Funktionen wie Zwischenablage, Dateiübertragung und unbeaufsichtigten Zugriff begrenzen oder deaktivieren, um diesem Vertrauensmodell zu entsprechen.
Der Preis dafür
Wir nehmen weniger Funktionen, keine universelle Kompatibilität und die eigene Pflege von Codec und Tests in Kauf.

Entscheidungen, die das Produkt verändert haben.

Jede Entscheidung entfernt ein implizites Privileg des ursprünglichen Prototyps.

D01

Eine sichtbare Person genehmigen

Vor dem Beitritt wartet der Viewer, während der Host den angegebenen Namen, die Adresse und den Prüfcode sieht und lokal entscheidet, ob er diese Person zulässt.

Der ZielkonfliktDer Host muss anwesend sein und den Anfragenden erkennen; der Beitritt kann weder automatisch noch unsichtbar werden.

D02

Ansicht und Steuerung getrennt freigeben

Die Genehmigung öffnet nur einen Nur-Ansicht-Stream. Maus- und Tastatursteuerung verlangt eine spätere, ausdrückliche und widerrufbare Freigabe des Hosts für die aktuelle Sitzung.

Der ZielkonfliktDer Helfer erhält nicht sofort Steuerung und der Host muss sie bewusst erteilen; das hält das sichtbare Mindestprivileg aufrecht.

D03

Eingabezustand deterministisch bereinigen

Widerruf, Fokusverlust, Trennung und Herunterfahren geben alle verfolgten entfernten Tasten und Maustasten frei, damit kein unvollständiger Zustand die Sitzung überdauert.

Der ZielkonfliktDer Lebenszyklus muss mehrere Cleanup-Pfade behandeln und jeden Ausgang testen, verhindert dafür aber blockierte oder nach Berechtigungsverlust weiter aktive Eingaben.

Vom Schulcode zum prüfbaren Release.

Das Java-21-Projekt nutzt Maven Wrapper, JUnit-Integrationstests, JaCoCo und Spotless. Die Shaded-Anwendung wird über ihre CLI geprüft; daneben dokumentiert das Repository Architektur, Datenschutz, Bedrohungsannahmen, Sicherheitsmeldungen und Beitragserwartungen.

CI prüft Linux- und Windows-Pfade, CodeQL führt geplante statische Analysen aus und Release-Jobs erzeugen jpackage-App-Images für Windows, macOS und Linux mit Prüfsummen, CycloneDX-Inventar und Provenienz-Attestierungen. Das Projekt erklärt ausdrücklich, dass Community-Pakete noch nicht plattformsigniert sind.

Was JDoor Assist heute ist.

JDoor Assist ist eine funktionsfähige Desktop-Anwendung mit Launcher-, Host- und Viewer-Abläufen, ablaufendem Einmal-Link, Zertifikat-Pinning, lokaler Genehmigung, Nur-Ansicht-Streaming, ausdrücklicher Steuerfreigabe, Eingabe-Cleanup, Lebenszyklus-Audit und sichtbaren Trennfunktionen.

Der Prototyp von 2022 bleibt als gemeinsam mit einer mitwirkenden Person geschaffenes Werk ausgewiesen. Die spätere Modernisierung von Sicherheit, Produkt, UX, Tests und Release ist Djenis’ Beitrag; ihr Ergebnis bleibt bewusst auf sichtbare Hilfe zwischen autorisierten Personen in einem vertrauenswürdigen lokalen Netz begrenzt.

Evidenzprotokoll.

Das v1.0.0-Repository macht diese Kontrollen und Grenzen prüfbar:

Sitzungssicherheit
Der Host erzeugt ein kurzlebiges P-256-Zertifikat, teilt dessen exakten SHA-256-Pin zusammen mit einem zufälligen einmaligen 128-Bit-Token und verlangt eine sichtbare lokale Freigabe, bevor ein Viewer die Sitzung betritt.
Protokollgrenze
Ein versioniertes Binärprotokoll prüft Richtung, Typ, Abmessungen, UTF-8 und Nutzlastgröße. Es wird jeweils nur ein Viewer zugelassen, Frames sind begrenzt und entfernte Eingaben werden ignoriert, bis der Host die Steuerung freigibt.
Prüfgate
Das Maven-Wrapper-Gate führt die JUnit-Suite, JaCoCo-Schwellen und Spotless-Prüfungen aus und baut danach ein ausführbares Shaded JAR sowie eine CycloneDX-SBOM. Die Integration deckt ungültige Token, Nur-Ansicht-Start, Streaming, Berechtigungswechsel und Eingabefreigabe ab.
Grenze
JDoor Assist arbeitet direkt im LAN mit dem primären Bildschirm. Es bietet weder Relay noch Konten, NAT-Traversal, Dateiübertragung oder unbeaufsichtigten Zugriff; die dokumentierten Community-App-Images sind derzeit nicht signiert.

Geprüfter Commit-Stand v1.0.0 Geprüft am

Was dieser Fall belegt

Diese Fallstudie beschreibt den geprüften v1.0.0-Quellstand und das dokumentierte direkte LAN-Verhalten. JDoor Assist ist ausschließlich für autorisierte, sichtbare Unterstützung bestimmt; es ist weder Internet-Relay noch Werkzeug für unbeaufsichtigte Administration oder eine unabhängige Sicherheitszertifizierung. NAT-Traversal, Mehrbildschirmaufnahme, Plattformsignierung und Schutz nach Kompromittierung eines Endpunkts werden nicht versprochen.

Funktionierendes Projekt ansehen