Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2021-09-28 00:00:00Z and 2021-09-29 00:00:00Z
Yes. At the filtering level encrypting will make it that much harder to tell a legitimate packet apart. But with all things there would still need to be a handshake. As long as there is a handshake that can be emulated at an upstream level it will make the game more easy to protect. CF for instance emulates a handshake for TLS for customers that don't want CF to see their traffic.
00:21
But encrypting UDP packets at the game level may become messy. Since often encryption changes based on previous bytes sent and also a video game does not care to resend a stale game world state so the encryption could fail.
Kigen
Yes. At the filtering level encrypting will make it that much harder to tell a legitimate packet apart. But with all things there would still need to be a handshake. As long as there is a handshake that can be emulated at an upstream level it will make the game more easy to protect. CF for instance emulates a handshake for TLS for customers that don't want CF to see their traffic.
Encryption of this type does require a handshake process unless they have a pre-shared key.
And yeah, encrypting has no effect on DDoS protection. Encrypting should be for the purposes of privacy or tamper protection to sensitive communications.
I agree, what I am trying to say is that if you introduced game-specific ddos filtering, and the initial handshake packet is being messed with by the encryption, filtering will just become way harder.
00:27
(Talking about the initial challenge packet (10\00\00\01\TKEN))(edited)
00:28
Regardless, as you already said, encrypting will not "protect" you from ddos attacks.
I haven't had a chance to look at packet captures of this game's communication yet. But I am familiar with the concepts from building such filtering for the Source engine.
Do not allow any packets except for A2S_INFO, which you'll respond to from a cache instead.
Listen for SRCDS challenge header, reply with a crafted packet, and validate that.
Now, you start accepting other packets from that source ip & source port. Otherwise, drop.
Bam, there you go. Only thing limiting you now is capacity.
Cheap? Sure.
Quality? If you stay within Cogent yes. If Cogent starts handing off packets to GTT / whatever other isp, you will start seeing packet loss. a lot.
But I just want to solve some waste I've seen with a gaming community I'm apart of and another that we worked with. Renting entire /24 from prager-it for stupid prices to host 5 to 20 servers.
the idea of encryption would be to transport-secure chat messages, passwords and make strong authentication viable
12:39
@Avolicious we've tested it on our weakest servers, they could handle decryption of player traffic just fine. protection of the initial handshake is still a problem though, the article gives out some ideas about that though
The initial handshake being makes it so much easier to filter efficiently at the lowest layer and even offload to other devices (e.g. a hardware firewall)
If you use them inside DDNet services, it is fine in general, but sharing it with 3rd party, you have to ask the users ( esp. in europe ) if they agree(edited)
Or the auth server just specifies a valid token to the client, then client can use that to log in. Can use some crypto so the auth server signs it and the game server trusts the auth server's cert
13:43
Yeah, at some point we have to throttle them
deen
Or the auth server just specifies a valid token to the client, then client can use that to log in. Can use some crypto so the auth server signs it and the game server trusts the auth server's cert
I mean the salt would have to be derived from the ip for the checker to be able to know it, it's not any harder to hash ip + salt(ip) when generating the table