WebSockets - Sicherheit

Das Protokoll sollte aus Sicherheitsgründen entworfen werden. WebSocket ist ein brandneues Protokoll, das nicht von allen Webbrowsern korrekt implementiert wird. Zum Beispiel erlauben einige von ihnen immer noch die Mischung von HTTP und WS, obwohl die Spezifikation das Gegenteil impliziert. In diesem Kapitel werden einige häufige Sicherheitsangriffe erläutert, die einem Benutzer bekannt sein sollten.

Denial of Service

DoS-Angriffe (Denial of Service) versuchen, eine Maschine oder Netzwerkressource für die Benutzer, die sie anfordern, nicht verfügbar zu machen. Angenommen, jemand stellt unendlich viele Anfragen an einen Webserver ohne oder mit winzigen Zeitintervallen. Der Server kann nicht jede Verbindung verarbeiten und reagiert entweder nicht mehr oder zu langsam. Dies kann als Denial-of-Service-Angriff bezeichnet werden.

Denial of Service ist sehr frustrierend für die Endbenutzer, die nicht einmal eine Webseite laden konnten.

DoS-Angriffe können sogar auf Peer-to-Peer-Kommunikation angewendet werden, wodurch die Clients eines P2P-Netzwerks gezwungen werden, gleichzeitig eine Verbindung zum Webserver des Opfers herzustellen.

Der Mann in der Mitte

Lassen Sie uns dies anhand eines Beispiels verstehen.

Angenommen, eine Person A plaudert mit seinem Freund Büber einen IM-Client. Eine dritte Person möchte die Nachrichten anzeigen, die Sie austauschen. Er stellt also eine unabhängige Verbindung zu beiden Personen her. Er sendet auch Nachrichten an die PersonA und sein Freund Bals unsichtbares Zwischenprodukt Ihrer Kommunikation. Dies ist als Man-in-the-Middle-Angriff bekannt.

Der Man-in-the-Middle-Angriff ist für unverschlüsselte Verbindungen einfacher, da der Eindringling die Pakete direkt lesen kann. Wenn die Verbindung verschlüsselt ist, müssen die Informationen vom Angreifer entschlüsselt werden, was möglicherweise viel zu schwierig ist.

Aus technischer Sicht fängt der Angreifer einen Nachrichtenaustausch mit öffentlichem Schlüssel ab und sendet die Nachricht, während er den angeforderten Schlüssel durch seinen eigenen ersetzt. Eine solide Strategie, um die Arbeit des Angreifers zu erschweren, ist natürlich die Verwendung von SSH mit WebSockets.

Bevorzugen Sie beim Austausch kritischer Daten vor allem die sichere WSS-Verbindung anstelle des unverschlüsselten WS.

XSS

Cross-Site Scripting (XSS) ist eine Sicherheitsanfälligkeit, mit der Angreifer clientseitige Skripts in Webseiten oder Anwendungen einfügen können. Ein Angreifer kann HTML- oder Javascript-Code über Ihre Anwendungs-Hubs senden und diesen Code auf den Computern der Clients ausführen lassen.

WebSocket Native Defense-Mechanismen

Standardmäßig ist das WebSocket-Protokoll so konzipiert, dass es sicher ist. In der realen Welt kann der Benutzer auf verschiedene Probleme stoßen, die aufgrund einer schlechten Browserimplementierung auftreten können. Mit der Zeit beheben Browser-Anbieter Probleme sofort.

Eine zusätzliche Sicherheitsebene wird hinzugefügt, wenn eine sichere WebSocket-Verbindung über SSH (oder TLS) verwendet wird.

In der WebSocket-Welt geht es hauptsächlich um die Leistung einer sicheren Verbindung. Obwohl noch eine zusätzliche TLS-Schicht vorhanden ist, enthält das Protokoll selbst Optimierungen für diese Art der Verwendung. Darüber hinaus arbeitet WSS über Proxys reibungsloser.

Client-zu-Server-Maskierung

Jede zwischen einem WebSocket-Server und einem WebSocket-Client übertragene Nachricht enthält einen bestimmten Schlüssel mit dem Namen Maskierungsschlüssel, mit dem alle WebSocket-kompatiblen Vermittler die Nachricht entlarven und untersuchen können. Wenn der Vermittler nicht WebSocket-kompatibel ist, kann die Nachricht nicht beeinflusst werden. Der Browser, der das WebSocket-Protokoll implementiert, übernimmt die Maskierung.

Sicherheitstoolbox

Schließlich können nützliche Tools vorgestellt werden, um den Informationsfluss zwischen Ihren WebSocket-Clients und dem Server zu untersuchen, die ausgetauschten Daten zu analysieren und mögliche Risiken zu identifizieren.

Browser-Entwicklertools

Chrome, Firefox und Opera sind großartige Browser in Bezug auf Entwicklerunterstützung. Ihre integrierten Tools helfen uns dabei, nahezu jeden Aspekt clientseitiger Interaktionen und Ressourcen zu bestimmen. Es spielt aus Sicherheitsgründen eine große Rolle.