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.

Guia para TLS Conformidade com as normas

A segurança da camada de transporte (TLS) protocolo é o meio principal de proteger as comunicações de rede pela Internet. Este artigo é um breve guia para ajudá-lo a configurar um servidor seguro para atender às TLS .

Introdução

A Segurança da camada de transporte (TLS) protocolo é o principal meio de proteger as comunicações de rede pela Internet. Ele (e seu predecessor, Secure Sockets Layer ou SSL) têm sido usados ​​por décadas em muitos aplicativos, mas principalmente em navegadores quando eles visitam HTTPS websites. TLS geralmente funciona silenciosamente em segundo plano, mas, ao contrário do que se pensa, TLS não é uma caixa preta que simplesmente funciona. Pelo contrário, a segurança TLS provém da cooperação de vários algoritmos criptográficos. Além disso, TLS, como o SSL antes dele, evolui constantemente com o setor de segurança - novas tecnologias e requisitos de negócios devem ser atendidos, enquanto as ameaças de segurança mais recentes devem ser mitigadas. Algoritmos podem se tornar obsoletos com o tempo, ou práticas podem ser abandonadas, com cada mudança afetando a segurança geral de um TLS instância (como a que está protegendo sua conexão no momento).

Essa volatilidade motivou várias organizações de padrões a publicar documentos de diretrizes, de modo que uma linha de base mínima para TLS segurança poderia ser estabelecida em um mercado, setor ou serviço específico. Infelizmente, existem numerosos padrões, com diferentes setores exigindo conformidade com diferentes documentos aplicáveis, enquanto os próprios padrões tb evoluir ao longo do tempo, acomodando mudanças no setor que foram projetadas para proteger.

Compreensivelmente, navegar por esse mar de padrões para criar um ambiente moderno TLS instância pode ser uma verdadeira dor de cabeça para os administradores. Este artigo é um breve guia para ajudá-lo a configurar um servidor seguro para atender às expectativas TLS padrões em 2021. (Para obter mais ajuda, também fornecemos exemplos de configurações das soluções de servidor da web mais populares no apêndice.)

Os Padrões

Existem várias entidades que mantêm diretrizes para TLS com relação à segurança da rede, como o Departamento de Saúde e Serviços Humanos (HHS) dos Estados Unidos ou o Instituto Nacional de Padrões e Tecnologia (NIST). Por uma questão de brevidade, este artigo estudará apenas os três documentos mais adotados:

  1. A Lei de Portabilidade e Responsabilidade do Seguro de Saúde (HIPAA)
  2. NIST's Diretrizes SP 800-52r2
  3. A Padrão de segurança de dados da indústria de cartões de pagamento (PCI-DSS)

HIPAA

O HIPAA é um regulamento promulgado pelo governo dos EUA em 1996, relativo ao manuseio seguro de Informações de saúde protegidas (PHI). PHI refere-se a qualquer informação digital do paciente, como resultados de testes ou diagnósticos. A HIPAA documento de orientação publicado em 2013 afirma o seguinte:

Os processos de criptografia válidos para dados em movimento são aqueles que cumprem, conforme apropriado, as Publicações Especiais NIST 800-52, Diretrizes para a Seleção e Uso de Segurança da Camada de Transporte (TLS) Implementações; 800-77, Guia para VPNs IPsec; ou 800-113, Guide to SSL VPNs, ou outros que são validados pelo Federal Information Processing Standards (FIPS) 140-2.

Normas NIST

Em 2005, o NIST publicou a Publicação Especial (SP) 800-52, descrevendo os procedimentos operacionais corretos para configurar com segurança um TLS instância para servidores governamentais. SP 800-52 desde então foi substituído pelas versões SP 800-52r1 (2014) e SP 80052r2 (2019). Este artigo segue as diretrizes do SP 800-52r2, que atualmente é estável.

PCI-DSS

O PCI-DSS é um padrão de conformidade mantido pelo Conselho de Segurança de Padrões da Indústria de Cartões de Pagamento (PCI) que estabelece como as informações de pagamento e cartão são tratadas pelos sites de comércio eletrônico. Em relação à configuração adequada do TLS instâncias, o PCI-DSS declara:

“Consulte os padrões da indústria e as melhores práticas para obter informações sobre criptografia forte e protocolos seguros (por exemplo, NIST SP 800-52 e SP 800-57, OWASP, etc.)”

TLS padrões: reunindo tudo isso

Deve-se notar agora que cada padrão afeta sistemas diferentes, com base em sua função e os dados que manipulam. Por exemplo, um servidor de e-mail de hospital pode se enquadrar nas diretrizes da HIPAA porque as mensagens trocadas podem conter informações do paciente, enquanto o sistema CRM do hospital pode se enquadrar no PCI-DSS porque pode conter dados de cartão de crédito e outros dados do cliente. Estar em conformidade com todos os três padrões exigiria o uso de TLS parâmetros presentes em todos os documentos.

Felizmente, é evidente que todos os padrões seguem as diretrizes do NIST para a seleção de TLS parâmetros. Isso significa que, no momento em que este artigo foi escrito, estar em conformidade com o SP 800-52r2 também deve tornar um servidor compatível com o HIPAA e o PCI-DSS. (Ok, isso não é exatamente verdade, mas as coisas ficarão mais claras na próxima seção.)

configurável TLS parâmetros

O nível de segurança que TLS fornece é mais afetado pelo versão do protocolo (ie 1.0, 1.1, etc.) e os valores permitidos conjuntos de cifras. Cifras são algoritmos que executam criptografia e descriptografia. No entanto, um conjunto de cifras é um conjunto de algoritmos, incluindo uma cifra, um algoritmo de troca de chaves e um algoritmo de hash, que são usados ​​juntos para estabelecer uma segurança TLS conexão. A maioria TLS clientes e servidores suportam várias alternativas, portanto, eles precisam negociar ao estabelecer uma conexão segura para selecionar um TLS versão e cifra.

TLS versão do protocolo

Concernente TLS suporte de versão, o NIST SP 800-52r2 declara o seguinte:

Servidores que oferecem suporte a aplicativos exclusivos do governo deve ser configurado para usar TLS 1.2 e mais perguntas ser configurado para usar TLS 1.3 também. Esses servidores não deveria ser configurado para usar TLS 1.1 e não deve usar TLS 1.0, SSL 3.0 ou SSL 2.0.

...

Servidores que oferecem suporte a aplicativos voltados para o cidadão ou empresas (ou seja, o cliente pode não fazer parte de um sistema de TI do governo) deve ser configurado para negociar TLS 1.2 e mais perguntas ser configurado para negociar TLS 1.3. O uso de TLS as versões 1.1 e 1.0 geralmente não são recomendadas, mas essas versões podem ser configuradas quando necessário para permitir a interação com cidadãos e empresas ... Esses servidores não deve permitir o uso de SSL 2.0 ou SSL 3.0.

agências deve ajuda TLS 1.3 até 1º de janeiro de 2024. Após esta data, os servidores deve ajuda TLS 1.3 para aplicativos somente para governo e para cidadãos ou empresas. Em geral, servidores que suportam TLS 1.3 mais perguntas ser configurado para usar TLS 1.2 também. Contudo, TLS 1.2 pode ser desativado em servidores que suportam TLS 1.3 se tiver sido determinado que TLS 1.2 não é necessário para interoperabilidade.

Enquanto TLS 1.0 é proibido e TLS 1.1 foi descontinuado para sites governamentais, as diretrizes do NIST declaram que, para compatibilidade com serviços de terceiros, servidores controlados pelo governo pode executar TLS 1.0 e 1.1 quando necessário. Sob PCI-DSS 3.2.1 (a versão atual), servidores compatíveis deve deixar o suporte por TLS 1.0 e “migrar para um mínimo de TLS 1.1, de preferência TLS 1.2. ” HIPAA tecnicamente permite o uso de todas as versões de TLS. Assim, o mínimo comumente suportado TLS a versão é 1.1; no entanto, PCI-DSS e NIST sugerem fortemente o uso do mais seguro TLS 1.2 (e, como visto acima, o NIST recomenda a adoção de TLS 1.3 e planos para exigir suporte até 2024).

Cipher Suites

TLS 1.2 e anterior

SP 800-52r2 especifica uma variedade de conjuntos de criptografia aceitáveis ​​para TLS 1.2 e anteriores. O padrão não requer suporte para nenhum pacote de criptografia específico, mas oferece orientação sobre como escolher os mais fortes:

  1. Prefira chaves efêmeras em vez de chaves estáticas (ou seja, prefira DHE em vez de DH e prefira ECDHE em vez de ECDH). Chaves efêmeras fornecem sigilo de encaminhamento perfeito.
  2. Prefira os modos GCM ou CCM ao invés do modo CBC. O uso de um modo de criptografia autenticado evita vários ataques (consulte a Seção 3.3.2 [do SP 800-52r2] para obter mais informações). Observe que eles não estão disponíveis em versões anteriores a TLS 1.2.
  3. Prefira CCM a CCM_8. O último contém uma marca de autenticação mais curta, que fornece uma força de autenticação mais baixa.

Além disso, embora estes sejam os permitido conjuntos de cifras, se o seu TLS Como o servidor não lida com grande variedade de plataformas e clientes diferentes, é recomendável que apenas um pequeno subconjunto desses algoritmos seja usado. Permitir que mais conjuntos de cifras só possam ampliar a superfície de ataque para o servidor se (ou quando) for descoberta uma nova vulnerabilidade de protocolo.

Cipher Suites para certificados ECDSA
TLS 1.2:
IANAValorOpenSSL
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 ou 1.0:
IANAValorOpenSSL
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA0xC0, 0x09ECDHE-ECDSA-AES128-SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA0xC0, 0x0AECDHE-ECDSA-AES256-SHA
Cipher Suites para certificados RSA
TLS 1.2:
IANAValorOpenSSL
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 ou 1.0:
IANAValorOpenSSL
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 para certificados ECDSA
TLS 1.2:
IANAValorOpenSSL
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 ou 1.0:
IANAValorOpenSSL
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 para Certificados DH
Assinado DSA, TLS 1.2:
IANAValorOpenSSL
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
Assinado DSA, TLS 1.2, 1.1 ou 1.0:
IANAValorOpenSSL
TLS_DH_DSS_WITH_AES_128_CBC_SHA0x00, 0x30DH-DSS-AES128-SHA
TLS_DH_DSS_WITH_AES_256_CBC_SHA0x00, 0x36DH-DSS-AES256-SHA
RSA assinado, TLS 1.2:
IANAValorOpenSSL
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
RSA assinado, TLS 1.2, 1.1 ou 1.0:
IANAValorOpenSSL
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 para certificados ECDH
Assinado por ECDSA, TLS 1.2:
IANAValorOpenSSL
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
Assinado por ECDSA, TLS 1.2, 1.1 ou 1.0:
IANAValorOpenSSL
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA0xC0, 0x04ECDH-ECDSA-AES128-SHA
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA0xC0, 0x05ECDH-ECDSA-AES256-SHA
RSA assinado, TLS 1.2:
IANAValorOpenSSL
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
RSA assinado, TLS 1.2, 1.1 ou 1.0:
IANAValorOpenSSL
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 tem uma lista muito mais curta de conjuntos de criptografia:

  • 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)

Conclusão

Esperamos que este breve guia o ajude a entender mais sobre TLSe ajudá-lo a configurar TLS em seu próprio servidor. Com relação aos padrões e recomendações que discutimos, a seção a seguir contém um exemplo de configuração que você deve ser capaz de aplicar às soluções de servidor da web mais populares. Se você tiver alguma dúvida sobre como manter sua conformidade online, sinta-se à vontade para nos contatar por e-mail Support@SSL.com ou clicando no botão de chat ao vivo na parte inferior da tela.

Apêndice: Exemplo TLS configurações

Coletando as regras estabelecidas nos três documentos de especificação, um servidor seguro moderno deve implementar TLS 1.2 e / ou TLS 1.3, com uma lista curta, mas diversificada de conjuntos de criptografia selecionados. Como referência rápida, exemplos de configurações para os servidores web mais populares do mercado são mostrados abaixo. Estas são configurações "intermediárias" (de uso geral) geradas com o Mozilla Gerador de configuração SSL:

apachenginxlighttpdHAPROxyAWS ELB

Servidor 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- ECDHE20-CHA1305- ECDHE20 POLY1305: ECDHE-RSA-CHACHA128-POLY256: DHE-RSA-AES256-GCM-SHA384: DHE-RSA-AESXNUMX-GCM-SHAXNUMX SSLHonorCipherOrder desligado SSLSessionTickets desligado

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 = ("Protocolo" => "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 "ordem ssl.honor-cipher =" desativar

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 não-tlsv11 não-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 não-tlsv11 não-tls-ingressos

AWS ELB

... Políticas: - PolicyName: Mozilla-intermediário-v5-0 PolicyType: SSLNegotiationPolicyType Atributos: - Nome: Protocolo-TLSv1.2 Value: true - Name: Server-Defined-Cipher-Order Value: false - Name: ECDHE-ECDSA-AES128-GCM-SHA256 Value: true - Name: ECDHE-RSA-AES128-GCM-SHA256 Value: true - Nome: ECDHE-ECDSA-AES256-GCM-SHA384 Valor: verdadeiro - Nome: ECDHE-RSA-AES256-GCM-SHA384 Valor: verdadeiro - Nome: DHE-RSA-AES128-GCM-SHA256 Valor: verdadeiro - Nome: DHE-RSA -AES256-GCM-SHA384 Valor: verdadeiro

Partilhar no Twitter
Twitter
Partilhar no Facebook
Facebook
Partilhar no LinkedIn
LinkedIn
Share on reddit
Reddit
Compartilhar no email
E-mail