You’'re absolutely correct. However, any site you go that uses a load balancer or proxy is doing just this. They may encrypt between the load balancer and http server, but I doubt it unless it truly is sensitive information.
IPSec ESP (Encapsulated Security Payload) is another option, but requires the client to have turned on and enabled (and java needs to support it). So that’‘s not an option. It’‘s very cool, because it doesn’‘t encrypt the packet’'s routing information.
Here are some options that might be desirable. Let consider this diagram in our discussion.
C <- internet -> R <- DMZ -> CM <- private network ->S[/code]
where C[/b] is the client, R[/b] is a router, CM[/b] is the connection manager and S[/b] is the server. Also assume that encrypted packets from the client to CM and the Jive server is not hang on the internet.
Option 1. Decrypt at CM (we’'ll do this anyway so we know what to do with the packet) and re-encrypt with pre-establish SSL communication.
Option 2. Decrypt at CM (we have to) and communicate over regular socket using AES and a high performing encryption mode (CBC or a Strem Cipher like RC4) to encrypt the payload (here’'s an argument for the tag). This uses a shared key to encrypt and decrypt the payload.
Option 3. Decrypt at CM (…) and communicate over regular socket with no encryption.
I’'m pretty sure that these are rated in performance, 1 being the slowest and 3 being the fastest.
Now if your private network is secured from outsiders and you trust your insiders, then option 3 is sufficient. If you don’‘t trust ALL your insiders than 2 is an option, if you don’‘t trust anyone…well you got bigger problems :). Actually option 1 and 2 are very similar and 2 is more like IPSec’'s ESP (except uses shared secrets instead of PKI).
For the sake of time and to meet the bigger challenge of 100k connection/concurrent users, I’'d opt for option 3 to begin with. This is common, but your concerns are definitely not unheard.
Noah
Message was edited by:
noahcampbell - fixed my security statements thanks to http://en.wikipedia.org/wiki/Stream_cipher