Geir Magnusson Jr. wrote:

I was talking to Alan and mentioned this. He had another suggestion - lets just (for now) get the ASN1 code from BC and package it ourselves. Coupled with the suggestion about removing the IDEA algorithm as a possibility, we remove the dep on BC in OpenEJB.

I took a crack at stripping down the BC package to just the ASN1 code. There are two classes that pull in digest code, which pulls in much of the crypto engine. Thankfully, Geronimo does not depend on those two classes, and there are no direct references to those classes in the rest of the ASN1 code, so they can be deleted. Once that is done, it is a pretty manageable dependency chain, and the code builds just fine. The resulting package has support for many more datatypes than Geronimo requires, but I'm not sure a full pruning effort would be justified.


Then, we don't ship BC w/ geronimo, but let the console detect if BC is present and then show a message and warning where appropriate where to get the jar and how to install if not.

I suggest we also take the step of removing the IDEA algorithms from the SSL cipher suite list, otherwise the exposure scenario I outlined still exists. The download of the bouncycastle code changes the behavior of the SSL support without the Geronimo users having any control over the matter. Removing those algorithms from the list removes that exposure.


Then Geronimo is clean, the functionality is optional, and users have no risk of encountering a problem, unless they can't read.

geir

On Sep 1, 2005, at 1:36 PM, Rick McGuire wrote:

I found an interesting example of the inadverent problems that can be caused by Geronimo's current usage of bouncycastle. The openejb SunOrb codes specifies a list of supported cipher suites to be used with SSL connections in the class SSLCipherSuiteDatabase. The supported list includes the IDEA algorithms. The Sun default JCE implemenation does not include IDEA, so this will not be used unless additional JCE provides are installed which include IDEA support. So far, so good. The IDEA code, even though listed as an option, will not get used without explicit knowledge of the Gernonmo administrator.

However, the current console code uses the bouncycastle code to implement its keystore. This usage is in a manner that requires the BC provider code to be installed programmatically, which the console code does. Unfortunately, once this is done, the IDEA algorithms are now available for use for SSL connections as well. This server is now potentially a royalty collection target by the IDEA patent holders, since they can demonstrate usage by having a client connect with this server using the IDEA ciphers. We might even want to consider allowing these algorithms to be controlled by the server config rather than just hard coding them in the class.

One way to fix this is just remove the IDEA algorithms from the SSLCipherSuiteDatabase, so these will not be used for SSL connections. Another potential solution (yet to be verified) is to use the BC APIs that allow the default JCE provider to be used for encryption services rather than defaulting to the BC provider.

Rick




Reply via email to