en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

Guida alla TLS Conformità alle norme

Il Transport Layer Security (TLS) è il mezzo principale per proteggere le comunicazioni di rete su Internet. Questo articolo è una breve guida per aiutarti a configurare un server sicuro per soddisfare la corrente TLS standard.

Introduzione

The Sicurezza del livello di trasporto (TLS) il protocollo è il mezzo principale per proteggere le comunicazioni di rete su Internet. (E il suo predecessore, Secure Sockets Layer o SSL) sono stati utilizzati per decenni in molte applicazioni, ma soprattutto nei browser quando visitano HTTPS siti web. TLS di solito funziona tranquillamente in background, ma contrariamente a quanto si potrebbe pensare, TLS non è una scatola nera che funziona. Piuttosto, la sicurezza TLS fornisce nasce dalla cooperazione di vari algoritmi crittografici. Inoltre, TLS, come SSL prima di esso, si evolve costantemente con il settore della sicurezza: la nuova tecnologia e i requisiti aziendali devono essere soddisfatti, mentre le ultime minacce alla sicurezza devono essere mitigate. Gli algoritmi possono diventare obsoleti nel tempo o le pratiche possono essere abbandonate, con ogni modifica che influisce sulla sicurezza complessiva di un file TLS istanza (come quella che protegge la tua connessione in questo momento).

Questa volatilità ha motivato varie organizzazioni di standard a pubblicare documenti orientativi, in modo da costituire una base minima per TLS la sicurezza potrebbe essere stabilita in un particolare mercato, settore o servizio. Sfortunatamente, esistono numerosi standard di questo tipo, con settori diversi che richiedono la conformità con documenti diversi e applicabili, mentre gli standard stessi anche evolversi nel tempo, adattandosi ai cambiamenti nel settore per cui sono stati progettati per proteggere.

Comprensibilmente, navigare attraverso questo mare di standard per creare un moderno TLS l'istanza può essere un vero rompicapo per gli amministratori. Questo articolo è una breve guida per aiutarti a configurare un server sicuro per soddisfare le aspettative TLS standard nel 2021. (Per ulteriore assistenza, abbiamo anche fornito configurazioni di esempio delle soluzioni di server web più popolari in appendice.)

Gli standard

Esistono diverse entità che mantengono le linee guida per TLS per quanto riguarda la sicurezza della rete, come il Department of Health and Human Services (HHS) degli Stati Uniti o il National Institute of Standards and Technology (NIST). Per brevità, questo articolo studierà solo i tre documenti più adottati:

  1. The Legge sulla portabilità e responsabilità delle assicurazioni sanitarie (HIPAA)
  2. NIST di Linee guida SP 800-52r2
  3. The Standard di sicurezza dei dati del settore delle carte di pagamento (PCI-DSS)

HIPAA

HIPAA è un regolamento emanato dal governo degli Stati Uniti nel 1996, relativo alla gestione sicura di Informazioni sanitarie protette (PHI). PHI si riferisce a qualsiasi informazione digitale sul paziente, come risultati di test o diagnosi. A HIPAA documento di orientamento pubblicato nel 2013 afferma quanto segue:

I processi di crittografia validi per i dati in movimento sono quelli conformi, a seconda dei casi, alle pubblicazioni speciali del NIST 800-52, Linee guida per la selezione e l'uso di Transport Layer Security (TLS) Implementazioni; 800-77, Guida alle VPN IPsec; o 800-113, Guide to SSL VPNs, o altri certificati FIPS (Federal Information Processing Standards) 140-2.

Standard NIST

Nel 2005, NIST ha pubblicato la Pubblicazione speciale (SP) 800-52, descrivendo le procedure operative corrette per configurare in modo sicuro a TLS esempio per i server governativi. Da allora SP 800-52 è stato sostituito dalle versioni SP 800-52r1 (2014) e SP 80052r2 (2019). Questo articolo segue le linee guida di SP 800-52r2, che è attualmente stabile.

PCI-DSS

PCI-DSS è uno standard di conformità gestito dal PCI (Payment Card Industry) Standards Security Council (SSC) che stabilisce come i dati di pagamento e delle carte vengono gestiti dai siti Web di e-commerce. Per quanto riguarda la corretta configurazione di TLS istanze, afferma PCI-DSS:

"Fare riferimento agli standard e alle best practice del settore per informazioni sulla crittografia avanzata e sui protocolli sicuri (ad es. NIST SP 800-52 e SP 800-57, OWASP, ecc.)"

TLS standard: mettere insieme tutti questi

Va notato ormai che ogni standard influenza diversi sistemi, in base alla loro funzione e ai dati che trattano. Ad esempio, un server di posta elettronica dell'ospedale può rientrare nelle linee guida HIPAA perché i messaggi scambiati potrebbero contenere informazioni sul paziente, mentre il sistema CRM dell'ospedale potrebbe rientrare in PCI-DSS perché può contenere carta di credito e altri dati del cliente. La conformità a tutti e tre gli standard richiederebbe l'utilizzo di common TLS parametri presenti in tutti i documenti.

Fortunatamente, è evidente che tutti gli standard seguono le linee guida del NIST per la selezione di TLS parametri. Ciò significa che, al momento della stesura di questo documento, la conformità a SP 800-52r2 dovrebbe rendere un server conforme anche a HIPAA e PCI-DSS. (Va bene, non lo è di preciso vero, ma le cose diventeranno più chiare nella prossima sezione.)

configurabile TLS parametri

Il livello di sicurezza che TLS fornisce è più colpito dal versione del protocollo (ovvero 1.0, 1.1, ecc.) e quelli consentiti suite di crittografia. I cifrari sono algoritmi che eseguono la crittografia e la decrittografia. Tuttavia, a suite di crittografia è un insieme di algoritmi, tra cui un codice, un algoritmo di scambio di chiavi e un algoritmo di hashing, che vengono utilizzati insieme per stabilire un metodo sicuro TLS connessione. Maggior parte TLS i client e i server supportano più alternative, quindi devono negoziare quando stabiliscono una connessione sicura per selezionare un comune TLS versione e suite di crittografia.

TLS versione del protocollo

Circa TLS supporto versione, NIST SP 800-52r2 afferma quanto segue:

Server che supportano applicazioni riservate al governo deve essere configurato per l'uso TLS 1.2 e dovrebbero essere configurato per l'uso TLS 1.3 pure. Questi server non dovrebbe essere configurato per l'uso TLS 1.1 e non lo faranno uso TLS 1.0, SSL 3.0 o SSL 2.0.

...

Server che supportano applicazioni rivolte a cittadini o aziende (ad esempio, il client potrebbe non far parte di un sistema IT governativo) deve essere configurato per negoziare TLS 1.2 e dovrebbero essere configurato per negoziare TLS 1.3. L'impiego di TLS le versioni 1.1 e 1.0 sono generalmente sconsigliate, ma queste versioni possono essere configurate quando necessario per consentire l'interazione con cittadini e aziende ... Questi server non lo faranno consentire l'uso di SSL 2.0 o SSL 3.0.

agenzie deve l' assistenza di TLS 1.3 entro il 1 gennaio 2024. Dopo questa data, i server deve l' assistenza di TLS 1.3 per applicazioni riservate sia al governo che ai cittadini o alle imprese. In generale, i server che supportano TLS 1.3 dovrebbero essere configurato per l'uso TLS 1.2 pure. Tuttavia, TLS 1.2 può essere disabilitato sui server che supportano TLS 1.3 se è stato determinato che TLS 1.2 non è necessario per l'interoperabilità.

Mentre TLS 1.0 è vietato e TLS 1.1 è deprecato per i siti governativi, le linee guida NIST affermano che per compatibilità con servizi di terze parti, server controllati dal governo può realizzare TLS 1.0 e 1.1 quando necessario. Sotto PCI-DSS 3.2.1 (la versione corrente), server conformi deve abbandonare il supporto per TLS 1.0 e "migrano a un minimo di TLS 1.1, preferibilmente TLS 1.2. " HIPAA tecnicamente consente l'uso di tutte le versioni di TLS. Quindi il minimo comunemente supportato TLS la versione è 1.1; tuttavia, PCI-DSS e NIST suggeriscono caldamente l'uso del più sicuro TLS 1.2 (e, come visto sopra, il NIST raccomanda l'adozione di TLS 1.3 e prevede di richiedere supporto entro il 2024).

Suite di cifratura

TLS 1.2 e precedenti

SP 800-52r2 specifica una varietà di suite di crittografia accettabili per TLS 1.2 e precedenti. Lo standard non richiede il supporto per nessuna suite di cifratura particolare, ma offre indicazioni sulla scelta di quelle più forti:

  1. Preferisci chiavi temporanee rispetto a chiavi statiche (ad esempio, preferisci DHE a DH e preferisci ECDHE a ECDH). Le chiavi effimere garantiscono una perfetta segretezza in avanti.
  2. Preferisci le modalità GCM o CCM rispetto alla modalità CBC. L'uso di una modalità di crittografia autenticata previene diversi attacchi (vedere la Sezione 3.3.2 [di SP 800-52r2] per maggiori informazioni). Notare che questi non sono disponibili nelle versioni precedenti a TLS 1.2
  3. Preferisci CCM a CCM_8. Quest'ultimo contiene un tag di autenticazione più breve, che fornisce un livello di autenticazione inferiore.

Inoltre, sebbene questi siano i file consentito suite di crittografia, se il tuo TLS il server non gestisce un'ampia varietà di piattaforme e client diversi, si consiglia di utilizzare solo un piccolo sottoinsieme di questi algoritmi. Consentire più suite di crittografia può solo ampliare la superficie di attacco al server se (o quando) viene rilevata una nuova vulnerabilità del protocollo.

Cipher Suites per i certificati ECDSA
TLS 1.2:
IANAValoreOpenSSL
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA2560xC0, 0x2BECDHE-ECDSA-AES128-GCM-SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA3840xC0, 0x2CECDHE-ECDSA-AES256-GCM-SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CCM0xC0, 0xACECDHE-ECDSA-AES128-CCM
TLS_ECDHE_ECDSA_WITH_AES_256_CCM0xC0, 0xAD ECDHE-ECDSA-AES256-CCM
TLS_ECDHE_ECDSA_WITH_AES_128_CCM_80xC0, 0xAEECDHE-ECDSA-AES128-CCM8
TLS_ECDHE_ECDSA_WITH_AES_256_CCM_80xC0, 0xAFECDHE-ECDSA-AES256-CCM8
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA2560xC0, 0x23ECDHE-ECDSA-AES128-SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA3840xC0, 0x24ECDHE-ECDSA-AES256-SHA384
TLS 1.2, 1.1 o 1.0:
IANAValoreOpenSSL
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA0xC0, 0x09ECDHE-ECDSA-AES128-SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA0xC0, 0x0AECDHE-ECDSA-AES256-SHA
Suite di cifratura per certificati RSA
TLS 1.2:
IANAValoreOpenSSL
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA2560xC0, 0x2FECDHE-RSA-AES128-GCM-SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA3840xC0, 0x30ECDHE-RSA-AES256-GCM-SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA2560x00, 0x9EDHE-RSA-AES128-GCM-SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA3840x00, 0x9FDHE-RSA-AES256-GCM-SHA384
TLS_DHE_RSA_WITH_AES_128_CCM0xC0, 0x9EDHE-RSA-AES128-CCM
TLS_DHE_RSA_WITH_AES_256_CCM0xC0, 0x9FDHE-RSA-AES256-CCM
TLS_DHE_RSA_WITH_AES_128_CCM_80xC0, 0xA2DHE-RSA-AES128-CCM8
TLS_DHE_RSA_WITH_AES_256_CCM_80xC0, 0xA3DHE-RSA-AES256-CCM8
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA2560xC0, 0x27ECDHE-RSA-AES128-SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA3840xC0, 0x28ECDHE-RSA-AES256-SHA384
TLS_DHE_RSA_WITH_AES_128_CBC_SHA2560x00, 0x67DHE-RSA-AES128-SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA2560x00, 0x6BDHE-RSA-AES256-SHA256
TLS 1.2, 1.1 o 1.0:
IANAValoreOpenSSL
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA0xC0, 0x13ECDHE-RSA-AES128-SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA0xC0, 0x14ECDHE-RSA-AES256-SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA0x00, 0x33DHE-RSA-AES128-SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA0x00, 0x39DHE-RSA-AES256-SHA
Cipher Suites per i certificati ECDSA
TLS 1.2:
IANAValoreOpenSSL
TLS_DHE_DSS_WITH_AES_128_GCM_SHA2560x00, 0xA2DHE-DSS-AES128-GCM-SHA256
TLS_DHE_DSS_WITH_AES_256_GCM_SHA3840x00, 0xA3DHE-DSS-AES256-GCM-SHA384
TLS_DHE_DSS_WITH_AES_128_CBC_SHA2560x00, 0x40DHE-DSS-AES128-SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA2560x00, 0x6ADHE-DSS-AES256-SHA256
TLS 1.2, 1.1 o 1.0:
IANAValoreOpenSSL
TLS_DHE_DSS_WITH_AES_128_CBC_SHA0x00, 0x32DHE-DSS-AES128-SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA0x00, 0x38DHE-DSS-AES256-SHA
Cipher Suites per certificati DH
Firmato DSA, TLS 1.2:
IANAValoreOpenSSL
TLS_DH_DSS_WITH_AES_128_GCM_SHA2560x00, 0xA4DH-DSS-AES128-GCM-SHA256
TLS_DH_DSS_WITH_AES_256_GCM_SHA3840x00, 0xA5DH-DSS-AES256-GCM-SHA384
TLS_DH_DSS_WITH_AES_128_CBC_SHA2560x00, 0x3EDH-DSS-AES128-SHA256
TLS_DH_DSS_WITH_AES_256_CBC_SHA2560x00, 0x68DH-DSS-AES256-SHA256
Firmato DSA, TLS 1.2, 1.1 o 1.0:
IANAValoreOpenSSL
TLS_DH_DSS_WITH_AES_128_CBC_SHA0x00, 0x30DH-DSS-AES128-SHA
TLS_DH_DSS_WITH_AES_256_CBC_SHA0x00, 0x36DH-DSS-AES256-SHA
Firmato RSA, TLS 1.2:
IANAValoreOpenSSL
TLS_DH_RSA_WITH_AES_128_GCM_SHA2560x00, 0xA0DH-RSA-AES128-GCM-SHA256
TLS_DH_RSA_WITH_AES_256_GCM_SHA3840x00, 0xA1DH-RSA-AES256-GCM-SHA384
TLS_DH_RSA_WITH_AES_128_CBC_SHA2560x00, 0x3FDH-RSA-AES128-SHA256
TLS_DH_RSA_WITH_AES_256_CBC_SHA2560x00, 0x69DH-RSA-AES256-SHA256
Firmato RSA, TLS 1.2, 1.1 o 1.0:
IANAValoreOpenSSL
TLS_DH_RSA_WITH_AES_128_CBC_SHA0x00, 0x31DH-RSA-AES128-SHA
TLS_DH_RSA_WITH_AES_256_CBC_SHA0x00, 0x37DH-RSA-AES256-SHA
Cipher Suites per certificati ECDH
Firmato ECDSA, TLS 1.2:
IANAValoreOpenSSL
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA2560xC0, 0x2DECDH-ECDSA-AES128-GCM-SHA256
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA3840xC0, 0x2EECDH-ECDSA-AES256-GCM-SHA384
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA2560xC0, 0x25ECDH-ECDSA-AES128-SHA256
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA3840xC0, 0x26ECDH-ECDSA-AES256-SHA384
Firmato ECDSA, TLS 1.2, 1.1 o 1.0:
IANAValoreOpenSSL
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA0xC0, 0x04ECDH-ECDSA-AES128-SHA
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA0xC0, 0x05ECDH-ECDSA-AES256-SHA
Firmato RSA, TLS 1.2:
IANAValoreOpenSSL
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA2560xC0, 0x31ECDH-RSA-AES128-GCM-SHA256
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA3840xC0, 0x32ECDH-RSA-AES256-GCM-SHA384
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA2560xC0, 0x29ECDH-RSA-AES128-SHA256
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA3840xC0, 0x2AECDH-RSA-AES256-SHA384
Firmato RSA, TLS 1.2, 1.1 o 1.0:
IANAValoreOpenSSL
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA0xC0, 0x0EECDH-RSA-AES128-SHA
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA0xC0, 0x0FECDH-RSA-AES256-SHA

TLS 1.3

TLS 1.3 ha un elenco molto più breve di suite di cifratura:

  • TLS_AES_128_GCM_SHA256 (0x13, 0x01)
  • TLS_AES_256_GCM_SHA384 (0x13, 0x02)
  • TLS_AES_128_CCM_SHA256 (0x13, 0x04)
  • TLS_AES_128_CCM_8_SHA256 (0x13, 0x05)

Conclusione

Speriamo che questa breve guida ti aiuti a capire di più TLSe assisterti durante la configurazione TLS sul tuo server. Per quanto riguarda gli standard e le raccomandazioni che abbiamo discusso, la sezione seguente contiene una configurazione di esempio che dovresti essere in grado di applicare alle soluzioni di server web più popolari. In caso di domande su come mantenere la conformità online, non esitare a contattarci inviando un'e-mail Support@SSL.com o facendo clic sul pulsante della chat dal vivo nella parte inferiore di questa schermata.

Appendice: esempio TLS configurazioni

Raccogliendo le regole stabilite nei tre documenti di specifica, un moderno server sicuro dovrebbe implementare TLS 1.2 e / o TLS 1.3, con un elenco breve ma diversificato di suite di cifratura selezionate. Come riferimento rapido, di seguito sono riportate configurazioni di esempio per i server Web più diffusi sul mercato. Queste sono configurazioni "intermedie" (generiche) generate con Mozilla Generatore di configurazione SSL:

ApacheNginxlighttpdHAProxyAWS ELB

Server HTTP Apache

... SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECACH20 POLY1305: ECDHE-RSA-CHACHA20-POLY1305: DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256-GCM-SHA384 SSLHonorCipherOrdina SSLSessionTickets off

Nginx

... ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

lighttpd

... ssl.openssl.ssl-conf-cmd = ("Protocol" => "ALL, -SSLv2, -SSLv3, -TLSv1, -TLSv1.1 ") ssl.cipher-list =" ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-GCM- SHA384: ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305: DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256-GCM-SHA384 "ssl.honor-cipher-order =" disabilita "

HAProxy

...

ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 ssl-default-bind-options prefer-client-ciphers no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets

ssl-default-server-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-server-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 ssl-default-server-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-Biglietti

AWS ELB

... Politiche: - PolicyName: Mozilla-intermedio-v5-0 PolicyType: SSLNegotiationPolicyType Attributi: - Nome: Protocol-TLSv1.2 Valore: true - Nome: Server-Defined-Cipher-Order Valore: false - Nome: ECDHE-ECDSA-AES128-GCM-SHA256 Valore: true - Nome: ECDHE-RSA-AES128-GCM-SHA256 Valore: true - Nome: ECDHE-ECDSA-AES256-GCM-SHA384 Valore: vero - Nome: ECDHE-RSA-AES256-GCM-SHA384 Valore: vero - Nome: DHE-RSA-AES128-GCM-SHA256 Valore: vero - Nome: DHE-RSA -AES256-GCM-SHA384 Valore: true

Condividi su twitter
Twitter
Condividi su Facebook
Facebook
Condividi su linkedin
LinkedIn
Condividi su reddit
Reddit
Condividi via email
E-mail