não consegue fazer com que o tomcat ofereça TLS_ECDHE_ECDSA_… cifras

1

meu tomcat (7.0.52) Connector é configurado com uma lista de cifras como     ciphers="TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,     TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,     TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,     TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA "

todos esses são suportados pelo openjdk1.7 instalado no servidor (verificado).

o keystore é inicializado com keytool, usando

    keytool -genkey -alias Tomcat -keyalg RSA -sigalg SHA256withRSA -keysize 2048 ... 

Na saída de depuração do handshake ssl, vejo que o cliente oferece essas cifras, mas o servidor escolhe apenas TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, que não é o mais strong:

ClientHello, TLSv1.2Jul 04, 2014 2:38:31 PM org.apache.coyote.AbstractProtocol start
Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,...
Extension elliptic_curves, curve names: {secp256r1, secp384r1, secp521r1}
Extension ec_point_formats, formats: [uncompressed]
Unsupported extension type_35, data:
Unsupported extension type_13172, data:
Extension signature_algorithms, signature_algorithms: SHA256withRSA, SHA384withRSA, SHA1withRSA, SHA256withECDSA, SHA384withECDSA, SHA1withECDSA, Unknown (hash:0x4, signature:0x2), SHA1withDSA
***
Jul 04, 2014 2:38:31 PM org.apache.catalina.startup.Catalina start
%% Initialized:  [Session-1, SSL_NULL_WITH_NULL_NULL]
matching alias: tomcat
% Negotiating:  [Session-1, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA]

Se eu remover TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA da lista de códigos do tomcat, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA será usado. Se eu remover os dois TLS_ECDHE_RSA_WITH_AES_xxx, obtenho uma falha de handshake (sem cifras em comum).

Não consigo descobrir o que está faltando ou é ruim na configuração.

Qualquer entrada muito apreciada ...

    
por tonioc 04.07.2014 / 17:24

1 resposta

2

Suas cifras devem ser listadas em ordem de preferência.

Mas você listou TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA antes de TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA .

Tente reverter o pedido deles na lista.

Você também pode desejar reordenar toda a lista para que todas as cifras de 256 bits apareçam antes de todas as cifras de 128 bits.

Você também precisa ter SSLHonorCipherOrder="true" definido em <Connector> .

    
por 04.07.2014 / 22:34