Come configurare tomcat 7 SSL per utilizzare AES-NI?

3

Il mio server ha AES-NI e vorrei che Tomcat 7 usasse questo, ma non sono sicuro di come farlo accadere o da dove iniziare a guardare. Conosco abbastanza bene l'amministrazione di tomcat e capisco i vari connettori che Tomcat mette a disposizione. Tomcat è in esecuzione su CentOS 6.3 e Oracle Java 7 update 15.

Ecco alcune delle mie domande.

  1. Quali suite di crittografia SSL trarranno beneficio da AES-NI?
  2. Può essere attivato con Oracle Java 7 update 15?
  3. Se si utilizzano i connettori nativi di tomcat basati sull'APR di apache e openssl cosa devo fare per attivarlo?
  4. AES-NI aumenterà significativamente le prestazioni SSL?
posta ams 21.02.2013 - 07:45
fonte

1 risposta

2

Lasciami rispondere alla tua ultima domanda. No, AES-NI non aumenterà in modo significativo le prestazioni SSL. Una CPU che ha le istruzioni AES-NI può crittografare i dati senza utilizzare queste istruzioni ad una velocità di oltre 120 MB / s (probabilmente più di 200 MB / s su un server), ovvero più di 10 (o 20) volte in grado di fornire 100 MB / s ethernet. Corrispondentemente, il meglio che si possa sperare, nel migliore dei casi e con un'implementazione hardware estremamente efficiente di AES, è di risparmiare meno del 10% (o 5%) della CPU. Non è "significativo". Poiché utilizzi Tomcat per elaborare i dati, dubito seriamente che il costo di crittografia di AES sia persino rilevabile sul tuo server. Certo, con AES-NI il processore può crittografare 15 volte più velocemente, ma dal momento che la crittografia utilizza già una quantità complessiva trascurabile di CPU, quale sarebbe il punto?

Un punto dati molto citato è quello che Google ha detto quando hanno cambiato Gmail in SSL del sito : hanno misurato un aumento del carico della CPU di un misero + 1%. Ovviamente, l'impatto può variare a seconda del tipo di sito e della quantità di elaborazione per ogni richiesta, ma possiamo tenerlo a mente: SSL è economico . Rendendolo più economico non offrirà enormi guadagni.

Ora, per le altre tue domande, l'implementazione di AES che utilizza le istruzioni AES-NI dovrebbe essere selezionata automaticamente (senza bisogno di alcuna configurazione da parte tua) se tutte le seguenti sono vere:

  • La CPU supporta le istruzioni AES-NI.
  • L'effettiva implementazione di AES (come utilizzata in SSL) è OpenSSL .
  • Quella versione di OpenSSL è 1.0.1 o successiva.

Quindi, se usi Tomcat dietro mod_ssl (in Apache) e la tua libreria OpenSSL locale è abbastanza recente, allora beneficerai già della bontà AES-NI. Se si esegue l'SSL con Tomcat stesso (facendo così affidamento sulla crittografia interna di Java), è probabile che si finisca con qualche codice Java che non beneficia non di AES-NI - ma ciò meriterebbe un'indagine (vale a dire parametri di riferimento). La mia opinione è che non farà alcuna differenza misurabile comunque, quindi il punto è un po 'discutibile.

    
risposta data 21.02.2013 - 17:41
fonte

Leggi altre domande sui tag