4.2 Recommended Cipher Suites (Cipher suite raccomandate)
4.2 Recommended Cipher Suites (Cipher suite raccomandate)
Date le considerazioni precedenti, è RACCOMANDATO implementare e distribuire le seguenti cipher suite:
-
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 -
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 -
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 -
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
Queste cipher suite sono supportate solo in TLS 1.2 perché sono algoritmi di crittografia autenticata (AEAD) [RFC5116].
Tipicamente, per preferire queste suite, l'ordine delle suite deve essere esplicitamente configurato nel software del server. (Vedere [BETTERCRYPTO] per utili linee guida di distribuzione, ma si noti che le sue raccomandazioni differiscono dal documento corrente in alcuni dettagli.) Sarebbe ideale se le implementazioni del software server preferissero queste suite per impostazione predefinita.
Alcuni dispositivi hanno supporto hardware per AES-CCM ma non per AES-GCM, quindi non sono in grado di seguire le raccomandazioni precedenti riguardo alle cipher suite. Ci sono persino dispositivi che non supportano affatto la crittografia a chiave pubblica, ma sono completamente fuori scopo.
4.2.1 Implementation Details (Dettagli di implementazione)
I client DOVREBBERO includere TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 come prima proposta a qualsiasi server, a meno che non abbiano conoscenza pregressa che il server non può rispondere a un messaggio client_hello di TLS 1.2.
I server DEVONO preferire questa cipher suite rispetto a cipher suite più deboli ogni volta che viene proposta, anche se non è la prima proposta.
I client sono naturalmente liberi di offrire cipher suite più forti, ad esempio utilizzando AES-256; quando lo fanno, il server DOVREBBE preferire la cipher suite più forte a meno che non ci siano ragioni convincenti (ad esempio, prestazioni gravemente degradate) per scegliere diversamente.
Questo documento non modifica le cipher suite obbligatorie da implementare prescritte da TLS. Per massimizzare l'interoperabilità, RFC 5246 impone l'implementazione della cipher suite TLS_RSA_WITH_AES_128_CBC_SHA, che è significativamente più debole delle cipher suite raccomandate qui. (La modalità GCM non soffre della stessa debolezza, causata dall'ordine MAC-then-Encrypt in TLS [Krawczyk2001], poiché utilizza una modalità di operazione AEAD.) Gli implementatori dovrebbero considerare il guadagno di interoperabilità rispetto alla perdita di sicurezza quando distribuiscono la cipher suite TLS_RSA_WITH_AES_128_CBC_SHA. Altri protocolli applicativi specificano altre cipher suite come obbligatorie da implementare (MTI).
Si noti che alcuni profili di TLS 1.2 utilizzano cipher suite diverse. Ad esempio, [RFC6460] definisce un profilo che utilizza le cipher suite TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 e TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.
[RFC4492] consente a client e server di negoziare parametri ECDH (curve). Sia i client che i server DOVREBBERO includere l'estensione "Supported Elliptic Curves" [RFC4492]. Per l'interoperabilità, i client e i server DOVREBBERO supportare la curva NIST P-256 (secp256r1) [RFC4492]. Inoltre, i client DOVREBBERO inviare un'estensione ec_point_formats con un singolo elemento, "uncompressed".