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

Vijay Singh commented on HADOOP-12668:
--------------------------------------

We ran the following command initially to test if RC4-SHA cipher was available 
during SSL handshake negotiation on cloudcat cluster.
{code}
[root@vjs-1 hadoop-hdfs]# openssl s_client -connect vjs-1.gce.amintor.com:20102 
-cipher RC4-SHA
CONNECTED(00000003)
depth=0 O = Hadoop, CN = vjs-1.gce.amintor.com
verify error:num=18:self signed certificate
verify return:1
depth=0 O = Hadoop, CN = vjs-1.gce.amintor.com
verify return:1
---
Certificate chain
 0 s:/O=Hadoop/CN=vjs-1.gce.amintor.com
   i:/O=Hadoop/CN=vjs-1.gce.amintor.com
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDAzCCAeugAwIBAgIEfCfmWjANBgkqhkiG9w0BAQsFADAyMQ8wDQYDVQQKEwZI
YWRvb3AxHzAdBgNVBAMTFnZqcy0xLnZwYy5jbG91ZGVyYS5jb20wHhcNMTYwMTEw
MTEwMDE2WhcNMjEwMTA4MTEwMDE2WjAyMQ8wDQYDVQQKEwZIYWRvb3AxHzAdBgNV
BAMTFnZqcy0xLnZwYy5jbG91ZGVyYS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQC+VTL4nPsdUr6ArEFRoxGlLgdo6/CyaOK5ZDAAymsXlk2hme9w
FZS3HgYcTknKTlbbU3qX6p/xLECPEigozEcls3SD8EjtOXyl9ieAOixB7UpQHFXQ
wLhVlYpNEA46mo3Zh3KUXRjRV4UVPqSz3EZQYzy0YlVfafgbqwOid30N3U+sq6ix
JxoeeIcJpVJHPTPVyHSFVh85U/cUvH6usgVd5V3Y2rRY9zaKkPGsYD5wdr1GPsGM
4PHD1ZCzDS1yzDettI4yF0quAcrifYNVrCB6iCmRRJqKL2Yr1s0J0rLcFXvhK0tl
shthKU7CM1ho+7tpco+JoS58nUTpE6kveXS/AgMBAAGjITAfMB0GA1UdDgQWBBT0
duhrSkY4yuXtv7EWGuKJVONADDANBgkqhkiG9w0BAQsFAAOCAQEAOb23t4qRRrHJ
YSwRbhRZTNd6qkvtiLeNK7jh2otz7CxqlJZ2O6G62hde4MvdIwVjv4zgSVVPEi0X
9VWdu4Sg2LoTF7qUt7RrXnxt0Cxy8Jrpt4ijNFZ7wyldtep8/KNO21kMmLBU/24v
A7w+KELa+Y0cX5lly78MprM5OhRPqAN3MYwXEyz+rA/R/9FoE9sL0CkAYN3sZx0e
xe9qxgpVNyZE1loiwfkBU8O5Dkpg3iwqLLEhYiry6yRYcB7f1yRSRvtYQMlujqli
tUg7XY6WXrK39m1O67cOWEM1mzd18wt76codlpsdtfj970SG5x8znnFhaIuBtfP7
jOjhwjgrBw==
-----END CERTIFICATE-----
subject=/O=Hadoop/CN=vjs-1.gce.amintor.com
issuer=/O=Hadoop/CN=vjs-1.gce.amintor.com
---
No client certificate CA names sent
---
SSL handshake has read 922 bytes and written 413 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : RC4-SHA
    Session-ID: 569600FDDBA888F6F90F5EAC103FDB45E25F338F38C796D9A8C1E1ACF6E48E4D
    Session-ID-ctx: 
    Master-Key: 
3A7A5E1CEDDD7F93D8818F3324CEA91E0265805AE78098D6BA56AF764BA8CD7FD6DEAFC2E44D7AEB81095A46D4ECAF4B
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1452671229
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
{code}
Before deploying the safety valve ssl-server.xml RC4-SHA was available. However 
once the safety valve was deployed as follows, the cipher was not considered 
for negotiation.
{code}
<property>
  <name>ssl.server.exclude.cipher.list</name>
 
<value>SSL_RSA_WITH_RC4_128_SHA,TLS_ECDH_ECDSA_WITH_RC4_128_SHA,TLS_ECDH_RSA_WITH_RC4_128_SHA,TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA</value>
  <description>Optional. The weak security cipher suites that you want excluded
  from SSL communication.</description>
</property>
{code}
The output of earlier command after deploying safety valve and restarting HDFS 
in cloudcat.
{code}
[root@vjs-1 hadoop-hdfs]# openssl s_client -connect vjs-1.gce.amintor.com:20102 
-cipher RC4-SHA
CONNECTED(00000003)
140163289794376:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert 
handshake failure:s23_clnt.c:744:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 99 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
{code}

> Modify HDFS embeded jetty server logic in HttpServer2.java to exclude weak 
> Ciphers through ssl-server.conf
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-12668
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12668
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: security
>    Affects Versions: 2.7.1
>            Reporter: Vijay Singh
>            Assignee: Vijay Singh
>            Priority: Critical
>              Labels: common, ha, hadoop, hdfs, security
>         Attachments: Hadoop-12668.006.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> Currently Embeded jetty Server used across all hadoop services is configured 
> through ssl-server.xml file from their respective configuration section. 
> However, the SSL/TLS protocol being used for this jetty servers can be 
> downgraded to weak cipher suites. This code changes aims to add following 
> functionality:
> 1) Add logic in hadoop common (HttpServer2.java and associated interfaces) to 
> spawn jetty servers with ability to exclude weak cipher suites. I propose we 
> make this though ssl-server.xml and hence each service can choose to disable 
> specific ciphers.
> 2) Modify DFSUtil.java used by HDFS code to supply new parameter 
> ssl.server.exclude.cipher.list for hadoop-common code, so it can exclude the 
> ciphers supplied through this key.



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

Reply via email to