Jump to content




Strengthening Password Server Security

lua networking wireless

  • You cannot reply to this topic
8 replies to this topic

#1 Himself12794

  • Members
  • 56 posts

Posted 18 February 2014 - 09:25 PM

I'm making a computercraft network, inspired by Nitrogen Fingers, and Have just finished out ironing some bugs in my password authentication system, and would like to know if there are things I could do make things more secure, mostly by making authentication based on things a console user cannot change. I know a user could go through and change config and functions, and I want to make so that there is nothing they can do cause information to be sent to a unsecure source, or wrongly extract information.

I have several different computers, there's router files, a master server computer, sub-servers, and the client computer. What I'm most interested in is the password sub server and the client.

Here's the relevant client code:
Spoiler

Here is the password server code:
Spoiler

If necessary, the router code is here, and the master server code is here.

#2 Bomb Bloke

    Hobbyist Coder

  • Moderators
  • 7,099 posts
  • LocationTasmania (AU)

Posted 18 February 2014 - 10:16 PM

View PostHimself12794, on 18 February 2014 - 09:25 PM, said:

I know a user could go through and change config and functions, and I want to make so that there is nothing they can do cause information to be sent to a unsecure source, or wrongly extract information.
Well, if you're using wireless, then anyone in range of the signal can tap into your communications. If wired, then anyone with access to your networking cable run can do the same.

#3 Himself12794

  • Members
  • 56 posts

Posted 18 February 2014 - 10:23 PM

View PostBomb Bloke, on 18 February 2014 - 10:16 PM, said:

View PostHimself12794, on 18 February 2014 - 09:25 PM, said:

I know a user could go through and change config and functions, and I want to make so that there is nothing they can do cause information to be sent to a unsecure source, or wrongly extract information.
Well, if you're using wireless, then anyone in range of the signal can tap into your communications. If wired, then anyone with access to your networking cable run can do the same.
Well the way I set it up, when a router/client/server is first activated, it request the id of a parent router. In the case of a sub-server, it will only receive and send from that id. In the case of a router or master server, it only will do anything with a message that has correct values, so as to prevent crashes due to people randomly sending out messages. They also store a list of ids with registered computers.
I could have the client require to know the parent id as well, but I'm trying to make it so I can just spread the routers out throughout the world, and have some just pop in and attempt to connect, provided they have the correct OS.

The only broadcast I have is for a computer asking to join the newtwork, then everything else is based on stored ids after initial registration. I made the master server be able to act as a router as well, but I'm debating keeping this function.

#4 CometWolf

  • Members
  • 1,283 posts

Posted 19 February 2014 - 12:11 AM

That won't be secure at all. Rednet is just a simplified api for the modem api, which allowes you to chose what channel to send and receive on. The very same channels which rednet use for it's id system.

#5 Himself12794

  • Members
  • 56 posts

Posted 19 February 2014 - 12:17 AM

View PostCometWolf, on 19 February 2014 - 12:11 AM, said:

That won't be secure at all. Rednet is just a simplified api for the modem api, which allows you to chose what channel to send and receive on. The very same channels which rednet use for it's id system.
I did not know that. However the only thing really that I have authentication for is whether or not you can delete a file. I will also assume that the only way to securely send information, then, will be by the use of rednet cables? In my case, the only compromised information would be what the client sends to the server in requesting to log in. Perhaps there is an encryption algorithm I could use?

Edited by Himself12794, 19 February 2014 - 12:19 AM.


#6 Bomb Bloke

    Hobbyist Coder

  • Moderators
  • 7,099 posts
  • LocationTasmania (AU)

Posted 19 February 2014 - 01:15 AM

Rednet cables or ComputerCraft's network cables, whatever, so long as no one can tap into them.

If people can tap into them, then (properly implemented) encryption would secure things, yes - assuming they can't get direct access the server machine, in which case all bets are off unless you rig up some rather complicated security directly on that unit (along the lines of "needs a password just to boot because everything on the system is encrypted"-type-security).

The best starting point is to figure out how many people are likely to want to break into your system, and where their knowledge levels are. You merely need to aim for a level of security that, for them, would be more trouble then it's worth to break through.

#7 surferpup

  • Members
  • 286 posts
  • LocationUnited States

Posted 19 February 2014 - 01:17 AM

I think it has been fairly well established that there is no such thing as security in ComputerCraft. Every system proposed thus far as workable in ComputerCraft presently can be defeated. Certainly some are more difficult to defeat than others, but all are vulnerable.

Edit: NINJA'd by Bomb Bloke (That dude types so dang fast!!!)

Edited by surferpup, 19 February 2014 - 01:18 AM.


#8 Himself12794

  • Members
  • 56 posts

Posted 19 February 2014 - 01:22 AM

View PostBomb Bloke, on 19 February 2014 - 01:15 AM, said:

Rednet cables or ComputerCraft's network cables, whatever, so long as no one can tap into them.

If people can tap into them, then (properly implemented) encryption would secure things, yes - assuming they can't get direct access the server machine, in which case all bets are off unless you rig up some rather complicated security directly on that unit (along the lines of "needs a password just to boot because everything on the system is encrypted"-type-security).

The best starting point is to figure out how many people are likely to want to break into your system, and where their knowledge levels are. You merely need to aim for a level of security that, for them, would be more trouble then it's worth to break through.

That's what I'm banking on. Right now this is mostly to just to see if I can actually finish this project, and then it's mostly for convenience. Really the only reason the passwords are there right now are to give some semblance of a network, and prevent someone from deleting a file he did not upload. Later I will add instant messaging and email, and that will require a bit more of security savy. I was actually just about to put what I've done so far in the OS section to see if I could get anyone to test it for me and give feedback.

#9 Bomb Bloke

    Hobbyist Coder

  • Moderators
  • 7,099 posts
  • LocationTasmania (AU)

Posted 19 February 2014 - 06:58 AM

View Postsurferpup, on 19 February 2014 - 01:17 AM, said:

I think it has been fairly well established that there is no such thing as security in ComputerCraft. Every system proposed thus far as workable in ComputerCraft presently can be defeated. Certainly some are more difficult to defeat than others, but all are vulnerable.
Weeellll, that's only true to the point that it's true in the real world. The main differences have less to do with ComputerCraft and more to do with MineCraft.

If the "attack" involves "walking into your base and pickaxing the computer", then odds are the same tactic would be just as effective in real life. People are just more likely to walk into other people's houses with pickaxes in MineCraft then they are in reality (let alone with the intention of hitting things with them!). Likewise for "delete everything on the drive" attacks - on your average consumer computer, even firmware passwords are only a stalling tactic against those. Gimme five minutes and a screwdriver and your data is gone.

In terms of "software" security, however, it's perfectly possible to lock a ComputerCraft computer down to the point where hackers can't even determine what it's supposed to do (let alone extract any personal data from it). For eg, rig up a system that has one plain-text script on it which asks for an encryption key before decrypting everything else as needed (executable files, data files, whatever). Store everything decrypted in RAM only, write nothing back to the drive without re-applying encryption. Done.

Bear in mind that decent encryption methods aren't feasible to break regardless as to whether their source code is available; it all comes down to correct implementation.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users