Ciphers no JBoss AS 6.1

Postado em Updated on

Em criptografia, um cipher (ou cifra) é um algoritmo para realizar a criptografia ou descriptografia. No JBoss podemos definir quais cifras desejamos utilizar, e por segurança podemos excluir as cifras mais fracas, lembrando que o JBoss não implementa SSL, simplesmente usa a implementação de SSL que é fornecida pela JVM ou OpenSSL(quando o conector de APR é utilizado). Se você estiver usando connector HTTP, então o SSL é implementado através do Java Secure Socket Extension (JSSE).  Para listar as cifras diponíveis na JVM, compile e execute a classe abaixo:


import javax.net.ssl.SSLSocketFactory;

public class DummySSLSocketFactory
 {

   public static void main(String[] args)
   {
      SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
      String[] ciphers = factory.getDefaultCipherSuites();
      for (int i = 0; i < ciphers.length; i++)
      {
        System.out.println(ciphers[i]);
      }
    }
 }

 $ javac DummySSLSocketFactory.java
 $ java DummySSLSocketFactory

 SSL_RSA_WITH_RC4_128_MD5
 SSL_RSA_WITH_RC4_128_SHA
 TLS_RSA_WITH_AES_128_CBC_SHA
 TLS_DHE_RSA_WITH_AES_128_CBC_SHA
 TLS_DHE_DSS_WITH_AES_128_CBC_SHA
 SSL_RSA_WITH_3DES_EDE_CBC_SHA
 SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
 SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
 SSL_RSA_WITH_DES_CBC_SHA
 SSL_DHE_RSA_WITH_DES_CBC_SHA
 SSL_DHE_DSS_WITH_DES_CBC_SHA
 SSL_RSA_EXPORT_WITH_RC4_40_MD5
 SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
 SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
 SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
 TLS_EMPTY_RENEGOTIATION_INFO_SCSV

Para determinar quais cifras serão utilizadas, basta especificar essa informação no atributo “ciphers” do connector HTTP no arquivo JBOSS_HOME/server/all/deploy/jbossweb.sar/server.xml.


<Connector protocol="HTTP/1.1" SSLEnabled="true"
 port="8443" address="${jboss.bind.address}"
 scheme="https" secure="true" clientAuth="false"
 keystoreFile="${jboss.server.home.dir}/conf/example.keystore"
 keystorePass="123456"
 ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_DES_CBC_SHA"
 sslProtocol = "TLS" />

Para testar o funcionamento do certificado e verificar as cifras habilitadas pode-se utilizar o openssl via linha de comando, já que o JBoss não ofereçe nenhuma ferramenta para essa finalidade. Veja os passos abaixo.

  keytool -genkey -alias example -keyalg RSA -keystore keystore.jks -keysize 2048

 


<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" scheme="https"
 secure="true" address="${jboss.bind.address}" clientAuth="false"
 ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_DES_CBC_SHA"
 keystoreFile="${jboss.server.home.dir}/conf/keystore.jks"
 keystorePass="123456" sslProtocol="TLS"/>

Para testar execute:

 openssl s_client -connect localhost:8443 -showcerts

Fonte:

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s