Cosa fa una sessione SSL a scegliere una cifra su un'altra?

1

Sono curioso di sapere quale sia la causa della sessione SSL per scegliere un codice su un altro. Sono un novizio totale con questo, quindi la maggior parte delle risposte là fuori sono già al di sopra della mia testa.

Esempio: devo connettermi a due server diversi: A e B. Entrambi sembrano avere certificati con lo stesso Algoritmo della firma - SHA256 con RSA ed entrambi sono di proprietà della stessa azienda.

Entrambi restituiscono lo stesso elenco di cifrari disponibili nelle suite di crittografia:

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

Tuttavia, la connessione al server A seleziona la prima opzione: SSL_RSA_WITH_RC4_128_MD5.

Mentre la connessione al server B seleziona il quarto: TLS_DHE_RSA_WITH_AES_128_CBC_SHA.

La mia domanda è che cosa causa la connessione al server B per selezionare la quarta opzione che include DHE? È qualcosa di diverso sui certificati, o c'è qualcos'altro che lo riguarda?

    
posta Ian 03.11.2017 - 13:08
fonte

2 risposte

3

Nel primo passo il server allinea i codici offerti dal client con le cifre configurate per il codice per ottenere un insieme di codici comuni. Da questo set il server seleziona quindi un singolo codice. Esistono varie strategie possibili per questa selezione, ma in genere si riducono a una selezione sull'ordine di cifratura fornito dal client o sull'ordine configurato nel server.

Quello che vedi qui è probabilmente un valore diverso dell'opzione SSLHonorCipherOrder in Apache (e opzioni simili in altri server). Con SSLHonorCipherOrder on sceglierà la cifra in base alla preferenza del server e quindi sceglierà dalla cima dell'elenco dei server, cioè SSL_RSA_WITH_RC4_128_MD5 in questo caso. Con SSLHonorCipherOrder on sceglierà invece la cifra in base alla preferenza dei clienti e sceglierà il migliore cifrario TLS_DHE_RSA_WITH_AES_128_CBC_SHA .

Both appear to have certificates with the same signature Algorithm - SHA256 with RSA and both are owned by the same company.

Il certificato non ha molta rilevanza per la scelta del codice. È possibile utilizzare solo cifrari con autenticazione RSA con certificati RSA e cifrari con autenticazione ECDSA con certificati ECDSA ma, a parte ciò, non esiste alcuna dipendenza.

    
risposta data 03.11.2017 - 14:08
fonte
2

Questo dipende dal server. Per Apache (mod_ssl) e NGinx puoi sovrascrivere le preferenze di ordine predefinite e le suite accettabili.

Ad esempio: link

I valori predefiniti variano tra le versioni in base a ciò che gli sviluppatori considerano sicuri / efficienti.

* Per espandere ci sono due metriche principali sulla scelta del codice da utilizzare. Sicurezza e prestazioni. Su un server con risorse limitate che fornisce servizi a basso rischio, è possibile scegliere di preferire un cifrario meno sicuro ma meno impegnativo per la CPU, anche se su hardware moderno il calo di prestazioni è quasi trascurabile.

    
risposta data 03.11.2017 - 13:54
fonte

Leggi altre domande sui tag