Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 09-02-2007, 05:03 AM
froglok23's Avatar
froglok23
Hill Giant
 
Join Date: May 2005
Location: Australia
Posts: 113
Default Request for Comments: SSL between Login Server, World and Zone

Hi all,

I had this idea and would like to request comments on it.

Firstly, Is this possible? Will this effect communication between the Client and the server? If someone how knows this could give some feedback on this subject it would help a lot.

Why would this be worthy of implementation? Well same reason SSL has been implemented in other software packages? Increased security and such.

I could list an extensive list of Reasons, but in short, the general consensus is the SSL = GOOD. I’m all open for well thought out comments and feedback.

Push comes to shove, I’m more than happy to offer my services in helping get this into the code base.

More information about TLS and SSL can be found at http://en.wikipedia.org/wiki/Secure_Sockets_Layer

Also, What do people think of making this a configurable option, either to have it enabled or disabled depending on how you feel?

- froglok
Reply With Quote
  #2  
Old 09-02-2007, 01:43 PM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Again, another not-so well thought out response from me, but here's my feedback. Anytime you add encryption to a datastream you are definitely going to slow it down (encryption, right?) While I am all for tightening security holes in the current emu, I am not sure SSL is the solution. Maybe to prevent packet gobblers.

Tell me this, would a server admin need to register their server with a CA, apply for an SSL cert that expires, then apply it to their server - then, all clients expecting to connect have to install the cert as well?

We're using a cert @ enbemulator now, and it has been a super gigantic nightmare for most "common" players to get it set up. Just some thoughts.
Reply With Quote
  #3  
Old 09-02-2007, 07:56 PM
froglok23's Avatar
froglok23
Hill Giant
 
Join Date: May 2005
Location: Australia
Posts: 113
Default

Quote:
Tell me this, would a server admin need to register their server with a CA, apply for an SSL cert that expires, then apply it to their server
To answer this, it’s going to be a multi-part response

Quote:
would a server admin need to register their server with a CA, apply for an SSL cert that expires, then apply it to their server
First impression, "Yes". But with a "but". I’d be willing to Host a Certificate Authority people could submit their server cert requests to an issue them free of charge for a period of say, 10 years or something like that.

We could have it as ca.eqemulator.net or something simular

Quote:
then, all clients expecting to connect have to install the cert as well?
I do not believe so, as this would not affect the client to my understanding, its intended use would just be for World<->Zone communication and possibly Login Server<->World. This will need clarification from someone who more experienced in the communication between EQClient and EQEmu.

Granted, adding an extra process to the DataStream will slow it down, but if implemented correctly, it’s not even noticeable, think of https. (From my experiences).

This wouldn’t solve our security flaws, but it would be a good step in the right direction.

Also, we could make this a configurable option to have or not have, do depending on how the server admin feels at the time, they have the option to enable or disable SSL/TLS communications between EQEmu components.

- froglok
Reply With Quote
  #4  
Old 09-03-2007, 12:37 AM
TheLieka
Developer
 
Join Date: Oct 2004
Location: THE ATL (wut wut)
Posts: 325
Default

Quote:
Originally Posted by froglok23 View Post
To answer this, it’s going to be a multi-part response



First impression, "Yes". But with a "but". I’d be willing to Host a Certificate Authority people could submit their server cert requests to an issue them free of charge for a period of say, 10 years or something like that.

We could have it as ca.eqemulator.net or something simular



I do not believe so, as this would not affect the client to my understanding, its intended use would just be for World<->Zone communication and possibly Login Server<->World. This will need clarification from someone who more experienced in the communication between EQClient and EQEmu.

Granted, adding an extra process to the DataStream will slow it down, but if implemented correctly, it’s not even noticeable, think of https. (From my experiences).

This wouldn’t solve our security flaws, but it would be a good step in the right direction.

Also, we could make this a configurable option to have or not have, do depending on how the server admin feels at the time, they have the option to enable or disable SSL/TLS communications between EQEmu components.

- froglok

SSL can be used for a ton of stuff, but in order to implement this, you'd have to be able to talk to someone with access to the login server source. I don't think the odds of that happening are very high.

Dax
__________________
Daxum



Former ServerOp - Vallon Zek / Tallon Zek Emu Server - Legit / Guild PvP - (2007 - 2011 RIP)
Reply With Quote
  #5  
Old 09-04-2007, 09:58 AM
Theeper
Discordant
 
Join Date: May 2004
Posts: 290
Default

Or, rewrite the LS :p~

I don't think adding SSL to the emu would be practical. The overhead would be astronomical for a game like this. Although if you did, you could use a self signed cert, you don't need to pay for one.

If you're only talking about using it for the LS to communicate with world, what's the point ?
Reply With Quote
  #6  
Old 09-04-2007, 11:26 AM
Darkonig
Hill Giant
 
Join Date: Dec 2006
Posts: 102
Default

The login server uses UDP as the transport protocol. SSL requires you to be using TCP so it cannot be used with the login server.

The login server cannot be changed to use TCP instead without changing the client, which is clearly not an option.

I fail to see any practical reasons for adding something like SSL into the mix. The client already encrypts the login credentials sent to the login server. That is what keeps almost everyone from just writing their own login server for lan use.
Reply With Quote
  #7  
Old 09-04-2007, 02:07 PM
froglok23's Avatar
froglok23
Hill Giant
 
Join Date: May 2005
Location: Australia
Posts: 113
Default

Ok Fair enough abotu the Login Server using UDP and not TCP.

But fo communicaiton between world and zone, certianly SSL coudl be used there.

-froglok
Reply With Quote
  #8  
Old 09-04-2007, 02:10 PM
froglok23's Avatar
froglok23
Hill Giant
 
Join Date: May 2005
Location: Australia
Posts: 113
Default

Quote:
Originally Posted by Theeper View Post
Or, rewrite the LS :p~

I don't think adding SSL to the emu would be practical. The overhead would be astronomical for a game like this. Although if you did, you could use a self signed cert, you don't need to pay for one.

If you're only talking about using it for the LS to communicate with world, what's the point ?

What about communication between world and zone?

To be, having SSL between these communcation channels, if possible would certianly be worth it.

- froglok
Reply With Quote
  #9  
Old 09-04-2007, 03:20 PM
RangerDown
Demi-God
 
Join Date: Mar 2004
Posts: 1,066
Default

If you're going to talk to the client, you're at the mercy of what the client does or does not support. To the best of my knowledge, the client does not support SSL either at the login or in world/zone communication.
__________________
<idleRPG> Rogean ate a plate of discounted, day-old sushi. This terrible calamity has slowed them 0 days, 15:13:51 from level 48.
Reply With Quote
  #10  
Old 09-04-2007, 03:24 PM
froglok23's Avatar
froglok23
Hill Giant
 
Join Date: May 2005
Location: Australia
Posts: 113
Default

Agreed, anywhere client <-> server communication takes place, SSL is not possible at all.

- froglok
Reply With Quote
  #11  
Old 09-04-2007, 08:50 PM
WildcardX
Developer
 
Join Date: Apr 2003
Posts: 589
Default

There is really no reason to implement SSL between world and zone. And generally speaking, implementing SSL on a game server is expensive in terms of performance. I just can't see a legitimate reason to do this.
__________________
Read my developer notes at my blog.

Quote:
If it's not on IRC, it ain't l33t!
Reply With Quote
  #12  
Old 09-05-2007, 01:52 AM
Theeper
Discordant
 
Join Date: May 2004
Posts: 290
Default

I'm not sure there is any reason to encrypt anything. If you can't encrypt all the traffic, why encrypt any ? I assume this is why the LS code isn't public. I may be wrong but I am guessing the LS uses an MD5 hash or something similar to validate users and push them to world. I should sniff that traffic and see, maybe it's plain text.
Reply With Quote
  #13  
Old 09-05-2007, 11:27 PM
Breea
Banned
 
Join Date: Aug 2007
Posts: 28
Default

On a very beefy server 50 users can really get the load and juices flowing. Adding SSL would ultimately raise that load, and slow the connection speed to the server (more lag). I do agree that SSL is great if you want a secure server but the fact is, if you get any heavy traffic SSL is not an option.

So basically SSL=Secure but also is very SLOW and has a big footprint in the servers load.
Reply With Quote
  #14  
Old 09-06-2007, 03:29 AM
oldlurker
Fire Beetle
 
Join Date: Jul 2007
Posts: 27
Default

I too do not see the benefit in SSL. SSL is good if you want to be sure that there is no man in the middle attack and no one can snoop your passwords or other vital data out of the stream.
But as I already mentioned in another thread it would be great if the world server would ignore connections to Port 9000/UDP as long as the LS does not message it is an legit connection attempt. Something similar goes for the zone servers.

Last edited by oldlurker; 09-06-2007 at 11:32 AM..
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 07:00 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3