Sollte ich sichere WebSockets für ein Spiel verwenden?

8

Ist SSL für ein Webspiel erforderlich? Ich benutze Node.js mit socket.io.

Ohne sie könnte bei Verwendung ungesicherter Netzwerke jemand im LAN Befehle ändern, die an den Server gesendet werden, und einen Player "übernehmen". Dies kann jedoch nur in ungesicherten gemeinsam genutzten Netzwerken geschehen, sodass es nicht schlecht klingt. Oder ist es?

Lassen Sie uns die Authentifizierungsphase für einen Moment ignorieren und davon ausgehen, dass dieser Teil gesichert ist. Gibt es noch andere Gründe, warum ich SSL für die Sockets verwenden sollte?

Ronen Ness
quelle
Dies könnte bessere Antworten auf die Sicherheit SE
Lolums

Antworten:

7

Ja. Das solltest du auf jeden Fall.

Verwenden Sie Let's Encrypt , um ein kostenloses SSL-Zertifikat zu erhalten (oder so viele, wie Sie möchten oder benötigen). SSL ist immer gut zu haben: Ohne SSL werden Man-in-the-Middle-Angriffe von der NSA gestartet, wenn sonst niemand.

Die meisten Multiplayer-Spiele (z. B. Minecraft) verwenden nur Rohpakete. Es gibt wenig Grund, Pakete nach der Authentifizierung zu verschlüsseln, da nur der Netzwerkdienstanbieter (z. B. Verizon / Virgin / TalkTalk) TCP-Pakete fälschen kann.

Wenn Sie Ihr Spiel jedoch auf Ihrer Website hosten, muss das Ganze in SSL sein (es sei denn, Sie möchten eine Anmeldeseite über SSL und eine andere Seite ohne SSL haben, erschaudern).

Vorteile von SSL:

  • Mit Let's Encrypt sind die Zertifikate automatisch und kostenlos
  • Tatsächliche Sicherheit
  • Ein Gefühl der Sicherheit für Benutzer (Browser-Statusleiste zeigt Schlosssymbol)
  • Datenschutz, keine NSA-Spionage
  • +1 PageRank in Suchmaschinen für die Verwendung von SSL
  • Vernachlässigbare Leistungskosten

Nachteile:

  • Wenn Ihr Spiel so hohe Leistungsanforderungen hat, dass WebSocket SSL ein Deal-Breaker ist, ist Ihr Spiel wahrscheinlich zu intensiv für Browser, ob SSL oder nicht.
  • Ich kann an keine anderen denken.
Lolums
quelle
Verwalten des Zertifikats ein wenig Kopfschmerzen (auch mit fantastischen kostenlosen Diensten) und noch eine andere Sache, über die man sich Sorgen machen muss. Der +1 auf der Seite Rang für SSL überzeugte mich jedoch (es war neu für mich, danke!) sowie das kleine grüne Schloss, das für einige wichtig ist. Ich denke immer noch nicht, dass es obligatorisch ist, aber Sie haben mich überzeugt, dass es die Zeit wert ist. Vielen Dank!
Ronen Ness
@Ness np, FYI, LetsEncrypt wird automatisch erneuert, wenn sie nicht mehr in der Beta sind, also ist das auch eine schöne Sache
Lolums
3
Das Verschlüsseln selbst trivialer Dinge macht alles sicherer - ein Angreifer kann nicht unterscheiden, welche Daten wichtig sind und welche nicht. Selbst wenn er in der Lage ist, einige Rechenzentren auf zufällige SSL-Pakete zu werfen und einige davon schließlich zu knacken Je mehr diese Pakete nur unwichtige Web-Spiel-Update-Pakete enthalten, desto weniger werden sie Lust haben, dies fortzusetzen.
Anko
1

Nur zusätzlich zu @Loblums Antwort:

AFAIK socket.io verwendet WebSocket als Standardtransport. Da WebSocket relativ neu ist, sind sich möglicherweise nicht alle Vermittler im Internet dessen bewusst und gehen korrekt damit um. Bei einer verschlüsselten Verbindung steigt die Wahrscheinlichkeit, dass eine WebSocket-Verbindung erfolgreich ist, erheblich, da sie von außen nicht mehr von einer verschlüsselten HTTP-Verbindung zu unterscheiden ist.

gzost
quelle
Interessanter Punkt. Persönlich habe ich noch nie ein Dienst- / Netzwerkgerät gesehen, das WebSockets nicht verarbeiten kann, aber ich kann mir vorstellen, dass dies passieren könnte. danke für die eingabe!
Ronen Ness