[ 
https://issues.apache.org/jira/browse/JCLOUDS-753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14179962#comment-14179962
 ] 

Adrian Cole edited comment on JCLOUDS-753 at 10/22/14 2:55 PM:
---------------------------------------------------------------

Downgraded the issue as described to minor. 
http://markmail.org/thread/mtzwkcg3uxcgcvqk

In summary, jclouds does not interfere with the default ssl context used by 
*any* http driver, except apachehc. In that case, it uses TLS. There are 
providers in labs, fcgp and also azurecompute who do muck with it, but nothing 
out of labs.

POODLE is a very hard to pull off MITM attack (especially considering this is 
java code). 

The issue as described initially is discussing the "untrusted" ssl context 
which is only used when "jclouds.trust-all-certs" is set. Trusting all certs is 
a much easier MITM attack.

I'm not saying to not switch the string, but certainly this is not a critical 
issue, as the SSLContext used when "jclouds.trust-all-certs" is not set would 
only be if someone added a guice module to do that.

{code}
   @Inject(optional = true)
   protected Supplier<SSLContext> sslContextSupplier;
{code}
https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java#L80

ApacheHC is generally poorly written. I can understand how people can be 
confused by it. When "untrusted" isn't in place, here's how it sets up an ssl 
context.
{code}
      SSLContext context = SSLContext.getInstance("TLS");
{code}
https://github.com/jclouds/jclouds/blob/master/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/config/ApacheHCHttpCommandExecutorServiceModule.java#L116

Side-notes when raising "critical" security issues, include code links. Doing a 
search on SSLContext and pasting something out of context can confuse people 
and spread FUD. Some of us have access to security experts and can actually 
help vet problems or suggest work arounds to things. I don't know if we have a 
typical practice, as for example we didn't discuss larger problems such as 
SHELLSHOCK. In other words [~diwaker] don't take this personally. Your intent 
was good and I understand you meant well.




was (Author: adriancole):
Downgraded the issue as described to minor. 
http://markmail.org/thread/mtzwkcg3uxcgcvqk

In summary, jclouds does not interfere with the default ssl context used by 
*any* http driver, except apachehc. In that case, it uses TLS. There are 
providers in labs, fcgp and also azurecompute who do muck with it, but nothing 
out of labs.

POODLE is a very hard to pull off MITM attack (especially considering this is 
java code). 

The issue as described initially is discussing the "untrusted" ssl context 
which is only used when "jclouds.trust-all-certs" is set. Trusting all certs is 
a much easier MITM attack.

I'm not saying to not switch the string, but certainly this is not a critical 
issue, as the SSLContext used when "jclouds.trust-all-certs" is not set would 
only be if someone added a guice module to do that.

{code}
   @Inject(optional = true)
   protected Supplier<SSLContext> sslContextSupplier;
{code}
https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java#L80

ApacheHC is generally poorly written. I can understand how people can be 
confused by it. When "untrusted" isn't in place, here's how it sets up an ssl 
context.
{code}
      SSLContext context = SSLContext.getInstance("TLS");
{code}
https://github.com/jclouds/jclouds/blob/master/drivers/apachehc/src/main/java/org/jclouds/http/apachehc/config/ApacheHCHttpCommandExecutorServiceModule.java#L116

Side-notes when raising "critical" security issues, include code links. Doing a 
search on SSLContext and pasting something out of context can confuse people 
and spread FUD. Some of us have access to security experts and can actually 
help vet problems or suggest work arounds to things. I don't know if we have a 
typical practice, as for example we didn't discuss larger problems such as 
POODLE. In other words [~diwaker] don't take this personally. Your intent was 
good and I understand you meant well.



> Investigate HttpCommandExecutorService(s) with regards to POODLE
> ----------------------------------------------------------------
>
>                 Key: JCLOUDS-753
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-753
>             Project: jclouds
>          Issue Type: Bug
>          Components: jclouds-core, jclouds-drivers
>    Affects Versions: 1.7.3, 1.8.0
>            Reporter: Diwaker Gupta
>            Priority: Minor
>         Attachments: disable-sslv3.patch
>
>
> SSLModule configures the SSLContext when using "untrusted" configuration:
> {noformat}
>             sc = SSLContext.getInstance("SSL");
>             sc.init(null, new TrustManager[] { trustAllCerts }, new 
> SecureRandom());
> {noformat}
> This makes the client end of the SSL connection vulnerable to POODLE 
> (http://googleonlinesecurity.blogspot.com/2014/10/this-poodle-bites-exploiting-ssl-30.html)
> jclouds should consider enforcing TLS on all client connections, even on ones 
> already susceptible to MITM attacks.
> We should also investigate other uses of SSLContext in jclouds.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to