¿Cómo configurar Tomcat 7 SSL para usar AES-NI?

3

Mi servidor tiene AES-NI y me gustaría que Tomcat 7 hiciera uso de esto, pero no estoy muy seguro de cómo hacerlo o dónde empezar a buscar. Estoy bastante familiarizado con la administración de Tomcat y entiendo los diversos conectores que Tomcat ofrece. Tomcat se está ejecutando en CentOS 6.3 y Oracle Java 7 actualización 15.

Estas son algunas de mis preguntas.

  1. ¿Qué suites de cifrado SSL se beneficiarán de AES-NI?
  2. ¿Se puede activar con la actualización 15 de Oracle Java 7?
  3. Si utilizo los conectores nativos tomcat que se basan en el APR de apache y openssl, ¿qué debo hacer para activarlo?
  4. ¿AES-NI aumentará significativamente el rendimiento de SSL?
pregunta ams 21.02.2013 - 07:45
fuente

1 respuesta

2

Déjame contestar tu última pregunta. No, AES-NI no aumentará significativamente el rendimiento de SSL. Una CPU que tiene las instrucciones de AES-NI puede cifrar los datos sin utilizar estas instrucciones a una velocidad de más de 120 MB / s (probablemente más de 200 MB / s en un servidor), es decir, más de 10 (o 20) veces lo que puede proporcionar 100 MBit / s de ethernet. En consecuencia, lo mejor que puede esperar, en el mejor de los casos y con una implementación de AES de hardware sumamente eficiente, es ahorrar menos del 10% (o 5%) en la CPU. Eso no es "significativo". Dado que utiliza Tomcat para procesar los datos, dudo seriamente que el costo de cifrado de AES sea incluso detectable en su servidor. Claro, con AES-NI el procesador puede cifrar 15 veces más rápido, pero como el cifrado ya utiliza una cantidad total de CPU insignificante, ¿cuál sería el punto?

Un punto de datos muy citado es lo que dijo Google cuando cambiaron Gmail a SSL en todo el sitio : midieron un aumento de carga de CPU en un magro + 1%. Por supuesto, el impacto puede variar según el tipo de sitio y la cantidad de procesamiento para cada solicitud, pero podemos tenerlo en cuenta: SSL es barato . Hacerlo más barato no ofrecerá ganancias tremendas.

Ahora, para sus otras preguntas, la implementación de AES que utiliza las instrucciones AES-NI debe seleccionarse automáticamente (sin necesidad de ninguna configuración de su parte) si se cumplen todas las siguientes condiciones:

  • La CPU admite las instrucciones AES-NI.
  • La implementación real de AES (como se usa en SSL) es OpenSSL .
  • Esa versión de OpenSSL es 1.0.1 o posterior.

Por lo tanto, si usa Tomcat detrás de mod_ssl (en Apache) y su biblioteca local de OpenSSL es lo suficientemente reciente, entonces ya se beneficia de la bondad de AES-NI. Si hace el SSL con el propio Tomcat (confiando así en la criptografía interna de Java), es probable que termine con algún código Java que no se beneficie de AES-NI, pero esto merecería una investigación (es decir, puntos de referencia). Mi opinión es que no hará ninguna diferencia mensurable de ninguna manera, por lo que el punto es un poco discutible.

    
respondido por el Tom Leek 21.02.2013 - 17:41
fuente

Lea otras preguntas en las etiquetas