Pregunta

Estoy tratando de crear un certificado autofirmado para su uso con Apache Tomcat 6.Cada certificado que puedo hacer siempre los resultados en el navegador de conectar con AES-128.El cliente desea de mí para demostrar que se puede crear una conexión en AES-256.

He tratado de java keytool y openssl.He probado con una variedad de parámetros, pero parece que no puede especificar nada sobre el tamaño de la clave, sólo el tamaño de firma.

¿Cómo puedo obtener el navegador-tomcat conexión para utilizar AES-256 con un certificado autofirmado?

¿Fue útil?

Solución

Okie doke, sólo creo que no me di cuenta de esto.

Como he dicho anteriormente, la clave poco de conocimiento es que el cert no importa, siempre a medida que se genera con un algoritmo que soporta AES de 256 bits de cifrado (por ejemplo, RSA).Sólo para asegurarse de que estamos en la misma página, para mi la prueba, he generado mi certificado autofirmado con la siguiente:

keytool -genkey -alias tomcat -keyalg RSA

Ahora, usted tiene que asegurarse de que su implementación de Java en el servidor soporta AES-256, y esta es la parte difícil.Hice mis pruebas en un OS X (OS 10.5) en la casilla, y cuando me registré para ver la lista de algoritmos de cifrado que es apoyado por defecto, AES-256 NO estaba en la lista, es por eso que con ese cert yo generado anteriormente sólo era la creación de una AES-128 conexión entre el navegador y Tomcat.(Bueno, técnicamente, TLS_RSA_WITH_AES_256_CBC_SHA no estaba en la lista, ese es el sistema de cifrado que desea, de acuerdo a este JDK 5 lista.)

La integridad, aquí está el corto de Java de la aplicación que he creado para revisar mi casilla admiten los sistemas de cifrado:

import java.util.Arrays;
import javax.net.ssl.SSLSocketFactory;

public class CipherSuites {
  public static void main(String[] args) {
    SSLSocketFactory sslsf = (SSLSocketFactory) SSLSocketFactory.getDefault();
    String[] ciphers = sslsf.getDefaultCipherSuites();
    Arrays.sort(ciphers);
    for (String cipher : ciphers) {
      System.out.println(cipher);
    }
  }
}

Resulta que el JDK 5, que es lo que esta OS X cuadro se ha instalado de forma predeterminada, las necesidades de la "Fuerza incontenible de la Jurisdicción de la Política de Archivos" instalado en el fin de decirle a Java que está bien usar la mayor bits niveles de cifrado;usted puede encontrar los archivos aquí (desplácese hacia abajo y busque en la parte superior de las "Otras Descargas" de la sección).No estoy seguro de improviso si JDK 6 necesidades de la misma cosa, pero la misma política de archivos para el JDK 6 están disponibles aquí, así que supongo que sí.Descomprimir el archivo, leer el README para ver cómo instalar los archivos que pertenecen y, a continuación, comprobar su admite cifrado de nuevo...Apuesto a AES-256, ahora está en la lista.

Si es así, usted debe ser de oro;sólo tienes que reiniciar Tomcat, conectarse a su SSL instancia, y apuesto a que ahora vamos a ver a una AES-256 de conexión.

Otros consejos

danivo, siempre y cuando el servidor del cert es capaz de encriptación AES, el nivel de cifrado entre el navegador y el servidor es independiente de la cert sí mismo-que nivel de cifrado es negociado entre el navegador y el servidor.En otras palabras, mi entendimiento es que el cert no especifica el nivel de cifrado, sólo el tipo de de cifrado (por ejemplo, AES).Ver en este enlace (PDF) para la verificación de esto, y de cómo el cert revendedores venta "de 256-bits" apunta a pesar de que el cert no se lo determina de 256 bits de capacidad.

Así que ya está bien con el cert tienes que soporta AES-128, y la clave es averiguar cómo llegar a Tomcat para apoyar AES-256 (ya que la mayoría, si no todos, de los principales navegadores sin duda apoyan).

La fuerza de la conexión SSL es negociado entre el navegador y el servidor (o lo que sea es proporcionar SSL).Podría ser que su navegador pidiendo una más débil cypher.Han visto alguna vez un 256-AES conexión SSL en este navegador?AES-128 es todavía un algoritmo muy seguro, por lo menos tienen algo que quieren proteger de fuera de línea (piensa:supercomputadora de la fuerza bruta de la generación de 2^128 teclas wikipedia ataque, 128-bit debe estar bien.Si realmente necesita tanto de protección, que probablemente debe ser el uso de una mayor estabilidad de la solución para el acceso a datos de un sitio web, un seguro túnel ssh a su servidor que es a prueba de balas (usted puede decirles que ellos pueden tener su AES de 256 bits y 4096 bits RSA demasiado), o una vpn dependiendo de la aplicación.

Creo que lo que se busca es la http://www.sslshopper.com/article-how-to-disable-weak-ciphers-and-ssl-2-in-tomcat.html y http://docs.oracle.com/javase/1.5.0/docs/guide/security/jsse/JSSERefGuide.html#AppA

Dependiendo de si queremos el bien de la seguridad y la compatibilidad o la certificación PCI.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top