[IDEA] Bukkit & Minecraft Authentication to identify Clients

Discussion in 'Bukkit Discussion' started by SupaYoshi, Apr 11, 2012.

Thread Status:
Not open for further replies.
  1. Offline


    Hello everyone, a good day to you all. I am here to write an interesting topic on Minecraft and Bukkit and make a serious discussion about a way to Authenticate the Minecraft client to the server to bring a stop to client modifications on servers which do not allow to use these known as xray, pvp hacks, health hacks, etc. etc.

    One of the main reasons for this topic is also to come up with ideas on how to improve or anything to improve it against these issues. ;) Not to stop it directly or should do this.. should do that.
    I know as I am writing this that this is a very difficult topic to talk about as I realise that hacks can never be stopped completely, but can always be prevented. There are many reasons I am writing this post and people wanting me to write this post.

    In the past people have tried to force client checks by plugins, and stop hacks. This is been done by having plugins as cfbanner, nocheat, (nocheatplus perhaps now), and orebfuscator)

    HOWEVER these are plugins that make the game a better place, but for different reasons this is not exactly what you want in the end. Why? Because every plugin like these are resource taking on a server, especially orebfuscator at a certain amount. This has nothing to do with orebfuscator but with the technique and ways that orebfuscator or any other anti-xray plugin would work.

    Because the plugins are resource intensive, we need bigger hardware to run the servers on. We all do, if you want to run Orebfuscator and a lot of other plugins you will need a robust system to give the maximum experience to the players. However, the question is: is this really what you want?
    For me the answers is NO in the end you would want a hack / modification check that would check if Minecraft was modified. I know this was impossible when Bukkit and Minecraft were 2 standalone places where you could go. And that bukkit had nothing to do with Minecraft.

    Another thing is that more intensive resources means warmer servers, means more expensive power consuming servers, and a bad planet. So hacked-clients are warming up the planket ^^ But this is another thing! That could be stopped if there was authentication like online mode or something a like this.

    But since Minecraft and the Bukkit team are now working together, why should there not be the idea that we could kick or force people to use the standard vanilla minecraft client. Yes I know this is a very hard thing to accomplish and that I am asking something maybe near impossible in the end but in my honest opinion there should be some effort from Minecraft and Bukkit atleast to stop the actual setting to use mods, as there is for allow fly=false, use-exact-login-location, pvp=true etc. etc.

    My question is not why does Spout have authentication and Bukkit not, my question is why do we not atleast try at login to stop these client modifications. And again I will recall that there is noway of doing this 100% completely. But I am just trying to say that we should consider and think about ways to accomplish something doing this eventually. PVP servers and other servers that are survival are having a hard time with users that are cheating using these hacked-clients. There is no way to stop them all, but at least I think Bukkit and Minecraft should give us the option to sort of disable / stop them a little more. :)

    At this moment a hacked-client is not being stopped by neither Bukkit or Minecraft. Except for the Online Mode part ;) Which I am not talking about here.

    First I was not going to post it until an user of me wrote down some ideas so I need to post this now, and I think it is needed. Some Ideas of him:

    - Allow Client MODS = False in the bukkit.yml or serverpropeties.
    - Use an Encryption method between the clients and the server to ensure outside packets, external hack programs are hindered. ( at least until someone who knows what there doing cracks the encryption)
    - Use a detector method:
    Many hack clients make use of certain keystroeks, fly hacks, auto miner spee dhacks wall climber etc. use buttons ' / ! \ > or things like these to activate hacks or whatever

    There is nothing Impossible:​
  2. Offline


    You can't trust the client. Ever.
    You can't verify the client nor ensure its integrity.

    Deeper understanding will teach you any developer time on this is time wasted.

    Any time Mojang spends on this will be time taken away from more important things.
    It only takes 1 person to invest significant time to break the new security in order to allow all players to bypass said security.
    This means any time Mojang spends on this, only results in 1 person in the entire community having to spent some time in cracking it.
  3. Offline


    I am not saying we should trust the client, I am saying that making it harder for clients to appear would be a good thing, as maybe adding checks instead of having none. I know that you could see this as wasted time, but I do not agree on that being wasted time. I think that any effort to stop this is a good one, however people need to think out of the box, and come up with something that really works. Maybe RSA keys, checks that only Minecraft and Bukkit know to communicate the right values to tell the server the client version.
  4. Offline


    So let's say they spent several weeks on implementing some security feature.
    Maybe MC will be cheat free for 2 weeks, after that it's back to business as usual, is that really worth it?
    That's several weeks of Mojang developer time we'll never get back. Time that could have been spent on improving and fixing the game instead.

    Again I'll point out the ratio of 1 Mojang developer spending time results in only 1 player of millions of players having to spent some time to bypass it.
    Once a single player bypasses the security, it'll become common knowledge and widely available for anyone that cares to use it.
    Making it "hard" only results in it being "hard" for a single initial player that will bypass it.

    Server side security and trusting the client less is sensible and preferred.
    Verifying client integrity is a waste of time.
  5. Offline


    Well maybe leave the Mojang developers out of this for a moment and the consuming of time. :)
    There has to be a way that could do this ;) I mean... look maybe Windows 7 is not able to tell the difference in some cases from pirate to legal, but as a serial code to any online game, or the minecraft online mode is there has to be a proper way to do it! :)... ;)
  6. Offline


    I'd really love to tell you it would work and I know you put effort into the main post.
    But unfortunately, it simply doesn't work this way.

    And I'm saying this as a professional game developer on a large MMO.
    You secure a game by not trusting the client, not by trying to verify the integrity of the client.
  7. Offline


    "You secure a game by not trusting the client, not by trying to verify the integrity of the client. - Vhab 2012."

    Then this is okay, just then maybe Aunthencication on this topic is wrong, maybe it should be called different. Give me second.. I think the discussion should be different. Not to stop hacked-clients on login maybe. But maybe Minecraft should stop the clients by using different ways of sending chunk info to clients perhaps. ( for orebfuscator as example) Anything, please let me not do all the thinking work ;) I am just a mere user of all this, I know some but you people have the knowledge.

    There must be some people thinking : This could be done different or better.
  8. Offline


    Won't work. Anything that requires the client telling you anything about itself can be spoofed. As for changing the way Minecraft sends data, why not just use the orebfuscator plugin if you're going to do that?
  9. Offline


    EvilSeph said on his reddit AMA today that one of his priorities as a new Mojang employee is to dumb down the client and move important game decisions to the server. This is exactly the sort of thing you are looking for. Hacked clients are useless if the client doesn't get to make any decisions. Top men are working on this as we speak. Top men!
  10. Offline


    That's completely missing the point of what OP wants, however. Moving the decisions to the server means that the servers even need to be more powerful because operation that were previously performed on the client are now being down on the server.
  11. Offline


    Well, you cannot have a client that is both responsible for making game decisions and also secure. The more responsibility the client has, the more surface area there is for exploits. It is also impossible to create a secure client. If a hacker has physical access to their computer, they can eventually defeat any security put in place. These are facts of the universe - like gravity.
Thread Status:
Not open for further replies.

Share This Page