Clone URL (Committers only):
https://cms.apache.org/redirect?new=anonymous;action=diff;uri=http://openejb.apache.org/ejb-over-ssl.mdtext



Index: trunk/content/ejb-over-ssl.mdtext
===================================================================
--- trunk/content/ejb-over-ssl.mdtext   (revision 1358477)
+++ trunk/content/ejb-over-ssl.mdtext   (working copy)
@@ -57,5 +57,28 @@
 
     MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");
 
-## Changing the Chipher Suite
+## Changing the Cipher Suite
+[This is a pending feature](https://issues.apache.org/jira/browse/OPENEJB-1856)
+By default, the ejbds protocol connects with SSL_DH_anon_WITH_RC4_128_MD5. 
That means your connection is encrypted and the integrity of the transmission 
is verified. However, this only protects your from eavesdroppers, it offers 
absolutely zero protection from Man in the Middle attacks. This sort of attack 
could be pulled off without your knowledge and the attacker has the ability to 
intercept, monitor, and even modify your messages. If the attacker could 
control a router on your connection path, this attack could be trivially pulled 
off with nothing more but the OpenEJB server and client.
 
+To secure your connections against this sort of attack, your client can 
cryptographically prove it's talking to the correct server before sending any 
data. To do this, simply select one or more secure cipher suites that your J2SE 
provider supports from [this 
listing](http://docs.oracle.com/cd/E19728-01/820-2550/cipher_suites.html).
+
+You must now instruct the client and server to use that suite.
+
+On the server:
+
+    server      = org.apache.openejb.server.ejbd.EjbServer
+    bind        = 127.0.0.1
+    port        = 4203
+    disabled    = false
+    threads     = 200
+    backlog     = 200
+    secure      = true
+    enabledCipherSuites = 
TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA
+    discovery   = ejb:ejbds://{bind}:{port}
+
+On the client, you must supply a property:
+
+    
-Dopenejb.client.enabledCipherSuites=TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA
+
+The final piece is to make sure your server has available a private 
certificate that the the client can trust. This can be certificate from an 
authority or a self signed certificate. The javax.net.ssl.trustStore and 
javax.net.ssl.keyStore JVM properties [are used to set this 
up.](http://fusesource.com/docs/broker/5.3/security/SSL-SysProps.html)
\ No newline at end of file

Reply via email to