From c1e6ec73b5dae97541081926e228168c1b299fc4 Mon Sep 17 00:00:00 2001 From: Kay Date: Sun, 13 Sep 2026 00:47:11 +0200 Subject: [PATCH] =?UTF-8?q?Chatlog:=20M7=20SSH-Hostkey-TOFU-Session=20erg?= =?UTF-8?q?=C3=A4nzt=20(Session-Ende)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kompletter Verlauf von Werksreset-Meldung über SSH-Hostkey-TOFU-Bau (API-Verifikation im swift-nio-ssh-Quellcode, Fingerprint-Kreuzcheck per ssh-keygen, Test-Isolationsbug gefunden+gefixt) bis zum fehlenden Trennen-Button und der finalen Live-Bestätigung. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01HReLXMbmPvtQ23p1iWiJNW --- CHATLOG.md | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/CHATLOG.md b/CHATLOG.md index 2afb7fa..34b4303 100644 --- a/CHATLOG.md +++ b/CHATLOG.md @@ -193,8 +193,41 @@ Fix → erneuter Test: - "speichere alles weg, damit wir eventuell später weiter machen können" → `HANDOFF.md` und dieses Chatlog auf den aktuellen Stand gebracht. +## Fortsetzung: M7-Härtung (SSH-Hostkey-TOFU) + +- Neuer Tag. Nutzer: "die Ferwall regeln hab ich aufgeräumt (Werksreset + durchgeführt). lass uns mit dem Härten weitermachen." → M7 gestartet + mit dem größten offenen Punkt: SSH-Hostkey-TOFU (`SSHTransport` nutzte + bisher `.acceptAnything()`). +- API vor der Umsetzung im swift-nio-ssh-Quellcode verifiziert statt + geraten (`NIOSSHPublicKey.write(to:)` für die Wire-Format-Bytes, + `NIOSSHClientServerAuthenticationDelegate`-Protokoll, + `EventLoopPromise` aus `NIOCore`). `SSHHostKeyFingerprint` + + `SSHHostKeyTrustStore` gebaut, `SSHTransport` conformt jetzt selbst + zum Delegate-Protokoll (wie `RestTransport` zu `URLSessionDelegate`), + `ConnectionService` bekam einen zweiten Bestätigungs-Flow analog zum + REST-Zertifikat. +- Für den Unit-Test wurden zwei echte Wegwerf-SSH-Schlüssel per + `ssh-keygen` erzeugt und der Fingerabdruck gegen `ssh-keygen -lf` + kreuzgeprüft (`SHA256:Hllxv6LLoHl2XTIXGGjUYJHbPFoH2F7iMrR74C5J95g`) — + stimmte exakt überein. Ein Test-Isolationsbug (geteilte echte + `UserDefaults` zwischen zwei Tests ohne `tearDown`) wurde dabei + gefunden und gefixt. Alle 26 Tests grün, `xcodebuild test` lief diesmal + ohne den bekannten Gatekeeper-Hänger durch. +- Nutzer testete live, meldete danach: "der 'Trennen-Button' fehlt noch" + — `ConnectionService.disconnect()` gab es schon (bisher nur intern + nach Werksreset genutzt), aber keinen UI-Zugang im Verbinden-Tab. + Button ergänzt. +- Nutzer bestätigte danach: "funktioniert sauber" — SSH-Hostkey-TOFU + live verifiziert (Dialog bei erster Verbindung, kein Dialog nach + Trennen+Neuverbinden). +- "erstmal alles speichern, dann schluß für heute" → `HANDOFF.md` und + dieses Chatlog aktualisiert, Session beendet. + ## Stand am Ende dieser Session -Siehe `HANDOFF.md` für den vollständigen technischen Stand, offene -Punkte (Firewall-Regel-Nachtest, WLAN-Hardware-Test, M7-Härtung) und -bekannte Einschränkungen. +Siehe `HANDOFF.md` für den vollständigen technischen Stand. SSH-Hostkey- +TOFU (M7) ist fertig und live bestätigt. Offene Punkte: Firewall-Regeln +mit korrektem WAN-Port nach dem Werksreset noch nicht erneut kontrolliert, +WLAN-`.set`-Pfad weiterhin ohne Testgerät mit echtem WLAN-Chip, Rest von +M7 (Fehlerzustände/Politur, REST-Schreibtest mit aktivem `www-ssl`).