- Well I'm trying to lay the foundations for the computer networks within the game. It's not going to be like "verb-use hacking device...wait 5 seconds...file retrieved!"
I want to make this concept as realistic as possible without straying too far from the norm.
This is a pretty decently sized rant, I'll try to make it bearable. For all you people out there who know about networks and servers, please correct me.
First lets understand the general concepts of a network;
Protocol: - A set of communication rules
- Network Interface Card (NIC):
- Sends and receives signals (messages)
Basic Concept:
Computer A encodes information using a protocol, and sends signals through the NIC.
Computer B receives the signals through their NIC, and using their protocol translates the signals into accessible files.
Spies Concept:
Generally all computers have 2 protocols. One receives information and decodes it from a hub, the other hashes it to be sent back to the network. The main computer puts a hash on the file before sent to the server, and stores the information for later access.
It goes something like this:
record
//we attempt to retrieve a file from the network off the
//main computer, we request the file and the protocol
//creates an appropriate hash, appoints it to the original file,
// and sends it along
protocol_hash = "somesecrethashingpass"
hash = md5(protocol_hash + record_name + data)
//computer b recieves the file and the hash,
//and recalculates to see if its been tampered with,
//now computer a and b have the same protocol language
//which means the protocol_hash password should be the same
if(hash == md5(protocol_hash + record_name + data)
//the file is now stored as a copy in computer b
//whos hash variable is equal to the hash variable
//residing in the main computer
return
//this isn't to say someone could have edited the
//data and then hashed it appropriately, which is complicated
//now the server needs to be able to manipulate it
//accordingly and send it back without error
//this is where hacking comes into play,*
//*Read about this at the end of the article.
newhash = md5(protocol_hash + record_name + data + "edited")
//the file and the new hash are then sent to the main computer's protocol
//now the computer checks if it wasn't hashed appropriately
//see if it wasnt interfered and tampered with along the way to computer A
if(newhash != md5(protocol_hash + record_name + data + "edited")
alert(file tampered with!)
return
//check if the record was hashed accordingly through the correct protocol
if(md5(protocol_hash + record_name + data + "edited")==newhash)
//the hash was created through the appropriate protocol, it is valid
update_file
else if(hash == newhash)
//the file's hash equals the same hash within computer a's record
//nothing was changed
return
else
alert(file tampered with)
*This opens up a number of possibilities for hacking, which mainly require knowledge and skill.
Now when changing a file in a server, the protocol will create a specific hash based on the information. That data is then sent out, and the main computer will do a check. Both computers are running the same protocol language, so if the file editing was done legally, everything should check out.
Thus making it impossible to simply edit basic information on a record and try to send it to be updated, without changing the hash. Only a protocol assigns a specific 'code' if you will, to be then decoded by that same 'code'. If you don't know this code, its damn near impossible for you to make up your own hash matching the record data, let alone attempting to send the information back through the protocol to be updated in the network.
This is where gadgets come into play. The spy will have access to a laptop, which he can upload various programs and run them locally, or on a server/network. Given he has the right tools for the job, he could upload his own protocols, connect to a server and send files straight from his laptop to be updated in the network.
I think that's all I will rant about tonight. I have left out specifics, just to give you a general idea of how things will operate. Hacking part 2 will cover more of the process.
Now remember, I want to keep this as realistic as I can. If I have made a mistake in my interpretations of a network/server and/or what they can do please correct me.