>SPA packets generated by fwknop leverage HMAC for authenticated encryption
>The code required by the fwknopd daemon to verify an HMAC is much more simplistic than the code required to decrypt an SPA packet, so an SPA packet without a proper HMAC isn't even sent through the decryption routines.
Bringt im Vergleich zu "Port verrammeln" die Gefahr einer Work-Amplification-Attacke. HMAC-SHA256 macht 2x SHA-256-Summe, und zwar jeweils mit 64 Runden.
Der Attackeur kann so das Zielsystem dazu bringen, 24/7 nur SHA-256-Berechnungen anzustellen.
Man _muss_ das mit ASN-basierter IP-Bannerei kombinieren. Grüße gehen raus an AWS, Alibaba Cloud, Azure und andere ASNs für Angriffe mit "hoher krimineller Energie".
Ein Heimrouter, auf dem das laufen würde, ist von der Leistung her nicht so weit von einem 1-Kern-Billo-VPS entfernt.
Wenn ein Attackeur das Zielsystem bereits jetzt dazu bringen kann, dass 24/7 nur Private/Public-Keys geprüft werden, ist HMAC natürlich schneller.
t. schrieb vor Monaten an einem nginx-Modul, das Proof-of-Work implementiert, und das auf einem 1-Kern-Billo-VPS gegen tausend AI-Scraper bestand haben soll. Hat sogar AES-NI-Instruktionen für die SHA-256-Summe benutzt. Natürlich eingeschlafen.
>That is, a firewall running on a host has a default-drop policy against all incoming SSH connections so that SSHD cannot be scanned, but a SPA daemon reconfigures the firewall to temporarily grant access to a passively authenticated SPA client
>The SSH daemon along with iptables and fwknopd are deployed on the [server] system, and the SSH and fwknop clients are deployed on the [client] system.
>One of the [...] features offered by the fwknopd daemon is the ability to interact with the NAT facilities offered by the local firewall.
Funktioniert nicht in dem häufigen Anwendungsfall, dass der Rechner, zu den man hinverbinden will, beim Benutzer zu Hause steht, weil der 0815-User da seinen normalen, verdongelten Heimrouter mit NAT dazwischen stehen hat. Hole-Punching ist stattdessen angesagt.
fwknopd setzt außerdem anscheinend iptables voraus, das ist auch aktuell mit eBPF auf dem Weg in die ewige Kotgrube.
t. schreibt vor Monaten an einem SSH-Patch, das Hole-Punching mit benutzerdefinierten TURN/STUN-Servierer implementiert (der SSH-Servierer muss sowieso die ganze Zeit laufen, warum also dann nicht den gleichen Prozess nutzen, um die Verbindung zum TURN-Servierer durch Senden von Paketen alle paar Minuten aufrecht zu erhalten?). Natürlich eingeschlafen.