Tôi có nên sử dụng WebSockets an toàn cho trò chơi không?


8

SSL có cần thiết cho một trò chơi web không? Tôi đang sử dụng Node.js với socket.io.

Không có nó, khi sử dụng các mạng không bảo mật, ai đó trong mạng LAN có thể thay đổi các lệnh được gửi đến máy chủ và "tiếp quản" một trình phát. Nhưng điều này chỉ có thể xảy ra trên các mạng chia sẻ không bảo mật, vì vậy nó không quá tệ. Hoặc là nó?

Và hãy bỏ qua giai đoạn xác thực trong giây lát và giả sử phần này được bảo mật, có bất kỳ lý do nào khác khiến tôi nên sử dụng SSL trên các ổ cắm không?


Điều này có thể nhận được câu trả lời tốt hơn về bảo mật SE
Lolums

Câu trả lời:


7

Đúng. Bạn chắc chắn nên.

Sử dụng Let Encrypt để nhận chứng chỉ SSL miễn phí (hoặc bao nhiêu tùy ý hoặc cần). SSL luôn luôn tốt để có: không có nó, các cuộc tấn công trung gian sẽ được NSA triển khai, nếu không có ai khác.

Hầu hết các trò chơi nhiều người chơi (ví dụ Minecraft) chỉ sử dụng các gói thô. Có rất ít lý do để mã hóa các gói sau khi được xác thực vì chỉ có nhà cung cấp dịch vụ mạng (ví dụ Verizon / Virgin / TalkTalk) có thể giả mạo các gói TCP.

Tuy nhiên, nếu bạn đang lưu trữ trò chơi của mình trên trang web của mình thì toàn bộ điều phải có trong SSL (trừ khi bạn muốn có một trang đăng nhập qua SSL và một trang khác không có SSL, co rúm).

Ưu điểm của SSL:

  • Với Let Encrypt, chứng chỉ là tự động và miễn phí
  • An ninh thực tế
  • Cảm giác an toàn cho người dùng (thanh trạng thái trình duyệt hiển thị biểu tượng khóa)
  • Quyền riêng tư, không gián điệp NSA
  • +1 PageRank trong các công cụ tìm kiếm để sử dụng SSL
  • Chi phí hiệu suất không đáng kể

Nhược điểm:

  • Nếu trò chơi của bạn có yêu cầu hiệu suất cao đến mức WebSocket SSL là một công cụ giải quyết, thì trò chơi của bạn có thể quá chuyên sâu để trình duyệt bắt đầu, SSL hay không.
  • Tôi không thể nghĩ về bất kỳ người khác.

quản lý chứng chỉ hơi đau đầu (ngay cả với các dịch vụ miễn phí tuyệt vời) và một điều khác phải lo lắng. tuy nhiên, thứ hạng +1 trên trang cho ssl đã thuyết phục tôi (nó mới đối với tôi, cảm ơn!) cũng như cái khóa nhỏ màu xanh lá cây rất quan trọng đối với một số người. Tôi vẫn không nghĩ rằng nó là bắt buộc nhưng bạn đã thuyết phục tôi rằng nó đáng để dành thời gian. Cảm ơn!
Ronen Ness

@Ness np, FYI, LetsEncrypt sẽ tự động gia hạn khi chúng không còn bản beta, vì vậy đó cũng là một điều tuyệt vời
Lolums 6/2/2016

3
Ngoài ra, mã hóa ngay cả những thứ tầm thường làm cho mọi thứ an toàn hơn. Kẻ tấn công không thể phân biệt được dữ liệu nào là quan trọng và không phải là gì, vì vậy ngay cả khi chúng có thể ném một số trung tâm dữ liệu vào một số gói SSL ngẫu nhiên và cuối cùng sẽ phá vỡ một số dữ liệu , càng nhiều gói đó chỉ chứa các gói cập nhật trò chơi web không quan trọng, chúng sẽ càng ít cảm thấy muốn tiếp tục làm điều đó.
Anko

1

Chỉ cần trả lời @Loblums:

AFAIK socket.io sử dụng WebSocket làm phương tiện vận chuyển mặc định. Với WebSocket là tương đối mới, không phải tất cả các trung gian trên internet có thể nhận thức được và xử lý chính xác. Với kết nối được mã hóa, cơ hội kết nối WebSocket thành công tăng lên rất nhiều, kể từ đó từ bên ngoài không thể phân biệt được với kết nối HTTP được mã hóa.


Điểm thú vị. Cá nhân tôi chưa bao giờ thấy bất kỳ dịch vụ / thiết bị mạng nào không thể xử lý WebSockets, nhưng tôi có thể tưởng tượng điều đó có thể xảy ra. Cảm ơn các đầu vào!
Ronen Ness
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.