A solução Tomcat em https://weakdh.org tem erros de digitação?

1

As cifras não relacionadas ao GCM listadas para a correção do Tomcat no link têm erros de digitação?

Abaixo do título "Apache Tomcat" e abaixo do texto "No arquivo server.xml (para JSSE)", há a seguinte configuração de cifras do Conector.

Minha pergunta pertence às 14 cifras inferiores (as cifras que não têm GCM no nome)

(Novas linhas adicionadas para legibilidade)

<Connector ciphers="[GCM Ciphers],
  TLS_ECDHE_RSA_WITH_AES_128_SHA256,
  TLS_ECDHE_ECDSA_WITH_AES_128_SHA256,
  TLS_ECDHE_RSA_WITH_AES_128_SHA,
  TLS_ECDHE_ECDSA_WITH_AES_128_SHA,
  TLS_ECDHE_RSA_WITH_AES_256_SHA384,
  TLS_ECDHE_ECDSA_WITH_AES_256_SHA384,
  TLS_ECDHE_RSA_WITH_AES_256_SHA,
  TLS_ECDHE_ECDSA_WITH_AES_256_SHA,
  TLS_DHE_RSA_WITH_AES_128_SHA256,
  TLS_DHE_RSA_WITH_AES_128_SHA,
  TLS_DHE_DSS_WITH_AES_128_SHA256,
  TLS_DHE_RSA_WITH_AES_256_SHA256,
  TLS_DHE_DSS_WITH_AES_256_SHA,
  TLS_DHE_RSA_WITH_AES_256_SHA
" />

Devem ser essas cifras de CBC em vez disso?

<Connector ciphers="[GCM Ciphers],
  TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
  TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
  TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
  TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
  TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
  TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
  TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
  TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
  TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
  TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
  TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
  TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
  TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
  TLS_DHE_RSA_WITH_AES_256_CBC_SHA
" />

Parece que eles estão faltando CBC_ nos nomes.

Exemplo:
TLS_DHE_RSA_WITH_AES_256_SHA deve ser TLS_DHE_RSA_WITH_AES_256_ CBC _ SHA. De acordo com o link , este último existe enquanto o primeiro não.

Se você observar outras correções no site weakdh.org , poderá ver outros produtos usando uma convenção de nomenclatura de codificação diferente. Usando a lista de cifras OpenSSL, você pode mapear esses nomes para os nomes usados pelo Tomcat e descobrir que eles mapeiam as cifras CBC.

Eu tentei usar as cifras de weakdh.org publicadas no meu server.xml, mas isso não teve efeito. Parece que o Tomcat ignora as cifras se mesmo uma cifra for digitada incorretamente ou se não for um nome de cifra legítimo, e o Tomcat voltar a usar as cifras padrão da JVM. Depois que eu adicionei CBC_ aos nomes das cifras, o Tomcat começou a usar as cifras listadas no atributo cifras do Conector.

A solução weakdh.org tem erros de digitação ou estou faltando alguma coisa?

    
por JerryM 15.07.2015 / 19:58

1 resposta

0

As cifras de weakdh.org parecem ser inválidas para o seu sistema, então, sim, está voltando aos padrões. Aqueles listados em weakdh.org podem funcionar em algum outro sistema que eles testaram, ou eles podem estar errados completamente, eu não posso ter certeza, mas o que eu sei é que eles não estão na lista aqui , então eles provavelmente não são válidos em qualquer lugar.

Para obter uma lista de conjuntos de criptografia válidos para o seu sistema, no link :

From: Christopher Schultz ([email protected])

All,

To follow-up, the code below can be used to fetch the currently-available ciphers for SSL and will show whether or not they are enabled in your particular JVM. Note that none of this is Tomcat-specific:

import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
import javax.net.ssl.SSLServerSocketFactory;

public class SSLInfo
{
    public static void main(String[] args)
        throws Exception
    {
        SSLServerSocketFactory ssf =
(SSLServerSocketFactory)SSLServerSocketFactory.getDefault();

        String[] defaultCiphers = ssf.getDefaultCipherSuites();
        String[] availableCiphers = ssf.getSupportedCipherSuites();

        TreeMap ciphers = new TreeMap();

        for(int i=0; i<availableCiphers.length; ++i )
            ciphers.put(availableCiphers[i], Boolean.FALSE);

        for(int i=0; i<defaultCiphers.length; ++i )
            ciphers.put(defaultCiphers[i], Boolean.TRUE);

        System.out.println("Default\tCipher");
        for(Iterator i = ciphers.entrySet().iterator(); i.hasNext(); ) {
            Map.Entry cipher=(Map.Entry)i.next();

            if(Boolean.TRUE.equals(cipher.getValue()))
                System.out.print('*');
            else
                System.out.print(' ');

            System.out.print('\t');
            System.out.println(cipher.getKey());
        }
    }
}

Compile o acima e execute java SSLInfo a partir de uma linha de comando para obter uma lista de cadeias de caracteres de codificação válidas para o seu sistema.

    
por 15.07.2015 / 20:23