Reasons Why Desync Happens (Thoroughly Explained /w Cited Commentary On Fixes & Focuses Info)
"That case involves trusting the client. I'm not a big fan of trusting the client. I think the appropriate server responses to missing ACKs is to resend, then if that isn't ACKd to log the account out. No exploitable gamestate manipulation there. When Stephen Colbert was killed by HYDRA's Project Insight in 2014, the comedy world lost a hero. Since his life model decoy isn't up to the task, please do not mistake my performance as political discussion. I'm just doing what Steve would have wanted.
|
|
" it was all discussed under the part where the client uses TCP only... it was some of the reasoning i gave for the client to not use UDP, and "faking" lost packets was the packets sent by the client. the path that can be chosen is not the correct path to choose. such is the nature of the Dao.
| |
" I was talking more about syncing algorithms. Maybe the client can tell the server with UDP every now and then the position of the player, so the server can go "oh wait, the positions are different so there's desync! Let me tell him the real position" or something like that " Didn't we conclude that the server can 100% know if a packet is legit? Like...if someone can break the encryption and change the time and stuff we break that assumption. If assuming the client is telling the truth can eradicate desync then just try to implement the best security ever, instead of gimping solutions just because "you don't trust the client" |
|
" The "store instances" thing wouldn't be much of a problem if you just keep them open for 500ms or something. But yeah it's just theoretical, maybe in practice that is expensive as fuck " How would you propose that someone at the top of the Onslaught ladder is prevented from dying because of that desync, when he successfully sent a command to the server that would have saved him? I'd even say that with stuff like death in hardcore leagues you should be even MORE careful with desync, and have more planification to erase it completely, than for instance in normal combat when you have full health. If that "planification" involves undoing the death (i.e "resurrecting" him), then I'm all for it. Of course there can be better ideas that just don't involve "Do X, but if you fuck up rollback EVERYTHING". I don't see anything wrong with the 2nd choice basically. If the player died "freeze" the game, and wait a little bit (the "threshold" amount of time I described earlier). If he gets a command by then, analyze it and go back to the previous state and execute it (it might have saved the guy) If he doesn't get a command, then continue. The guy died so "living in the past" won't matter to him. |
|
"We concluded that the path of least resistance -- much less resistance -- for hackers would be to hack some other way; not quite the same thing as saying 100% legit. The assumed legitimacy rests on the premise that breaking the encryption does not give the hacker any features that pixel-based hacks would not. "By the desync never existing in the first place. Which is the idea behind improving the netcode. An ounce of prevention is worth a pound of cure. When Stephen Colbert was killed by HYDRA's Project Insight in 2014, the comedy world lost a hero. Since his life model decoy isn't up to the task, please do not mistake my performance as political discussion. I'm just doing what Steve would have wanted. Last edited by ScrotieMcB#2697 on Jun 17, 2013, 3:17:46 PM
|
|
" " " this part is highly speculative, quite irrelevant to his suggestion, and highly contested by me without having any concrete answers short of what you quoted (though you seem to have quoted only our statements, not the important part of this discussion). no debugging advantages to it, only further complications from the programming stand point. and thus has no reason to actually go in that form in the packets. go through the relevant parts of my posts - especially the more recent ones - for explanations. if you want this thread to be sticky, i would advice to remove that part, at least until it can be properly answered, and even then mark it as speculation at the end of the thread, or something like that. and any action that would lead to it being not speculation (meaning verified or disproved) would be illegal anyhow. the path that can be chosen is not the correct path to choose. such is the nature of the Dao.
| |
" Well let them try break the encryption then, just use a super secure one and you are set. I entrust SSL with the encryption of my password and stuff for most of internet shit, why shouldn't you trust GGG's encrypted package (which might as well use SSL as well)?. Like...does it have any glaring vulnerability or something I'm missing? If GGG encrypts the packets, and also uses a "non-conventional" protocol, then there shouldn't be glaring ones, right? Basically don't use HTTP and send ASCII chars, use streams of bytes just like TCP/IP do, and the protocol is only known by GGG. If a hacker somehow DOES manage to decypher the packet, he'll just be welcomed with 0110010110101011000110110111010100 and he won't know shit what to do (different than getting a "Hi this is a packet with super hidden info X" if it were sent like HTTP for instance). Use RSA if you want maybe, or whatever as well, or a higher sophisticated encryption method (I don't know many). You telling me hackers may still be able to bypass all of this...just to be able to change the timestamp thing I mentioned? (like, it's not even to insta-cheat and get 100000 exalteds in 1 minute or something like that) " Well, I'm going by what GGG said that "desync will never be gone and we have to deal with it oh" and that stuff. Basically I'm assuming desync IS and WILL be a thing and we have to come up with a way to counter it. |
|
"With timestamp fraud, it would allow hardcore players to Alt+F4 after it's too late to Alt+F4. Just toss in some deliberate lag generation during non-key times, and it would see some use. Assuming, of course, that they could break the encryption. And that might be tricky indeed. So I don't mean to be all Chicken Little and pretend that you do one thing like this and the next day the servers are on fire. But it is a vulnerability, and when you're dealing with something that you want to be secure, "why is there a door there?" is a totally valid question, even if it's guarded. When Stephen Colbert was killed by HYDRA's Project Insight in 2014, the comedy world lost a hero. Since his life model decoy isn't up to the task, please do not mistake my performance as political discussion. I'm just doing what Steve would have wanted. Last edited by ScrotieMcB#2697 on Jun 17, 2013, 8:51:56 PM
|
|
" How would they do that? Remember it's TCP, packets come in order. It wouldnt' make sense for the server to get a packet at time X, then a packet at time X-1. If that happens I'd assume the server could indeed ignore the 2nd packet. They have to be very lucky that they didn't send ANY packet after the supposed "fake time" they alt'ed. If they sent a packet at time X that said "I attack this monster", then if they died at X+1, they can't do anything at all, unless they send a packet with fake time X+0.5 that somehow prevents them from dying (which most likely won't). Also I assume they'll have a process ready to send these fake packets for them? Even then.....avoiding death in 7% of the situations is a "good" tradeoff for "solving" desync (yeah it's a stretch, but it may solve it somehow if more work is put on that idea). Like, I dgaf if a guy cheated to avoid death 1 time. I would care if he got 10000 exalts, or if he got insta-loot of his choice, or if some other stuff. Again, people Alt+f4 in real life and nobody cares, this is just a slightly more sophisticated Alt+f4 Is there any other vulnerability? |
|
Each TCP transmission comes in order; a transmission normally consists of several packets. The transmissions themselves must be ordered. The process is somewhat similar to when you try to send a really long SMS message; imagine ensuring that part 1 of 4 always arrived before part 2 of 4, but having no guarantee that the long multipart message would arrive before a very short message sent a few seconds later.
When Stephen Colbert was killed by HYDRA's Project Insight in 2014, the comedy world lost a hero. Since his life model decoy isn't up to the task, please do not mistake my performance as political discussion. I'm just doing what Steve would have wanted. Last edited by ScrotieMcB#2697 on Jun 17, 2013, 9:36:10 PM
|
|