[
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)