Product
Descontinuação das versões 1.0 e 1.1 do TLS
Desde o início da Mailgun, fazemos questão de garantir que nossos remetentes enviem seus e-mails com a maior segurança possível. Quando nós anunciamos o suporte ao TLS em 2014, fizemos isso pensando no cliente, e continuamos fazendo isso agora, à medida que descontinuamos as versões 1.0 e 1.1 do TLS em favor da versão 1.2, que é mais segura.
Dito isso, é importante observar que em 8 de março de 2021, a Mailgun não permitirá mais conexões TLS usando as versões desatualizadas 1.0 e 1.1.
Por que descontinuar as versões 1.0 e 1.1 do TLS?
As versões mais antigas do TLS estão repletas de vulnerabilidades de segurança. Como tal, esses protocolos são atualizados ao longo do tempo para corrigir essas vulnerabilidades e manter a segurança dos usuários. O TLS 1.0 foi lançado em 1999 e apresentou muitos problemas com heartbleed, POODLE, CRIME, etc. Dito isso, já faz muito tempo que as empresas deveriam deixar de oferecer suporte às versões 1.0 e 1.1.
Quando se trata de descontinuar o TLS, muitas outras empresas de tecnologia também optaram por aposentar esses protocolos antigos. Em março de 2020, os quatro principais provedores de navegadores de internet encerraram o suporte às versões 1.0 e 1.1 do TLS — o que foi um grande avanço na direção certa para uma melhor segurança. Embora a Mailgun não seja a primeira nem a última empresa a anunciar a descontinuação do suporte às versões 1.0 e 1.1 do TLS, agora é o momento perfeito para verificar e garantir que seu ambiente é compatível com a versão 1.2, para que você não sofra nenhum tempo de inatividade.
Se você já está utilizando o TLS 1.2, ótimo! Fazer esse tipo de atualização de manutenção é imperativo, então se antecipar economiza o seu tempo no futuro. Se você não tem certeza se o seu ambiente é compatível com o TLS 1.2, agora é um excelente momento para verificar.
É um processo simples, mas nos adiantamos e listamos abaixo como você pode verificar a sua versão do TLS com a Mailgun.
Como verificar se o seu ambiente é compatível com o TLS 1.2
As etapas para verificar o suporte ao TLS 1.2 do seu ambiente são bastante simples. Listamos abaixo os detalhes de como verificar nos sistemas Linux e Windows. Se ele for compatível com a versão 1.2, não há mais etapas a seguir, pois usaremos essa versão por padrão. Caso o seu ambiente não seja compatível com o TLS 1.2, você terá um trabalho extra pela frente.
Linux
Se você estiver executando o seu aplicativo de envio em um servidor Linux, poderá usar o utilitário nmap para verificar com quais versões do TLS a sua stack é compatível. Na sua máquina local, execute o seguinte comando, substituindo o “api.mailgun.net” pelo seu próprio domínio:
nmap --script ssl-enum-ciphers -p 443 api.mailgun.net
Aqui está um exemplo de saída para o api.mailgun.net:
Starting Nmap 7.70 ( https://nmap.org ) at 2020-09-11 13:39 CDT
Nmap scan report for api.mailgun.net (3.220.71.10)
Host is up (0.047s latency).
Other addresses for api.mailgun.net (not scanned): 34.198.11.146 3.93.126.5 52.87.122.201 52.7.64.51 3.226.21.161 52.7.38.97 34.199.221.7
rDNS record for 3.220.71.10: ec2-3-220-71-10.compute-1.amazonaws.com
PORT STATE SERVICE
443/tcp open https
| ssl-enum-ciphers:
| TLSv1.0:
| ciphers:
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| compressors:
| NULL
| cipher preference: server
| TLSv1.1:
| ciphers:
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| compressors:
| NULL
| cipher preference: server
| TLSv1.2:
| ciphers:
| TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
| TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
| TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
| TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| compressors:
| NULL
| cipher preference: server
|_ least strength: A
Como você pode ver na saída acima, o api.mailgun.net é compatível com o TLSv1.2, então está tudo pronto. Desde que você obtenha uma saída semelhante mostrando o TLSv1.2, você também estará pronto!
Se você não vir a saída acima, comece atualizando o Apache/Nginx e o OpenSSL e/ou atualizando os seus arquivos de configuração nginx.conf ou Apache para ativar o TLSv1.2.
Windows
Para os usuários do .NET, antes de mais nada, você precisará garantir que seu servidor é compatível com o TLS 1.2. Se você estiver executando o Server 2008 ou 2012, o suporte ao TLS 1.2 não estava disponível por padrão, então você precisará garantir que tem as respectivas atualizações instaladas para que haja o suporte ao TLS 1.2. Se você estiver executando o Server 2012 R2 ou 2016, o TLS 1.2 já deve estar instalado e ser o padrão.
Em seguida, recomendamos fortemente que você atualize todos os seus aplicativos para usar o framework .NET 4.6 ou superior, pois eles são compatíveis com o TLS 1.2 e são configurados por padrão. Caso contrário, você pode usar as seguintes soluções alternativas para as versões mais antigas do .NET:
- .NET 4.5. O TLS 1.2 é compatível, mas não é um protocolo padrão. O uso do código a seguir fará do TLS 1.2 o padrão. Você precisará executar este código antes de estabelecer uma conexão com qualquer recurso seguro:
System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
2. .NET 4.0. O TLS 1.2 não é compatível, mas se você tiver o .NET 4.5 (ou superior) instalado no mesmo sistema, ainda poderá optar por usar o TLS 1.2. Como o SecurityProtocolType no .NET 4.0 não tem uma entrada para o TLS1.2, você terá que usar uma representação numérica desse valor de enum:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
Ou use o seguinte ajuste de registro.
3. .NET 3.5 ou inferior. Certifique-se de ter as seguintes atualizações, bem como as chaves de registro.
Endpoint de teste da Mailgun
Além disso, recentemente adicionamos um endpoint de API de teste que só aceitará solicitações usando a versão 1.2 do TLS (https://api-test.mailgun.net/v3) para permitir que nossos clientes testem sua configuração. Se você fez atualizações e deseja confirmar que está se conectando com sucesso usando o protocolo correto, fazer uma chamada de API para este endpoint confirmará a sua atualização. Caso contrário, as chamadas para esse endpoint falharão se um protocolo mais antigo ainda estiver sendo usado pelo seu aplicativo.
Atenção: este endpoint está configurado apenas para fins de teste, não terá suporte a cargas normais totais de envio e não é específico de uma região. Depois de concluir os testes, você precisará atualizar a sua configuração para o endpoint anterior que você estava utilizando.
À medida que fazemos essas alterações e migrações para versões mais recentes no futuro, lembre-se de que sempre pensamos em você. Com publicações no blog e lembretes por e-mail, nosso objetivo é garantir que nenhum cliente seja pego de surpresa.