Uma das grandes vantagens do código aberto é a disponibilidade de múltiplas perspectivas. Este artigo explora a importância crítica da escalabilidade de desempenho em bibliotecas SSL/TLS, usando mudanças recentes no ecossistema OpenSSL como estudo de caso. Agradecemos projetos de código aberto e suas contribuições para o mundo
Diretor de Marketing Técnico da HAProxy Technologies.
OpenSSL, a biblioteca SSL mais utilizada em sistemas operacionais, sofreu um grave revés de desempenho com a versão 3.0. Projetada para melhorar a segurança e a modularidade, a nova arquitetura introduziu regressões significativas de desempenho em ambientes multithread.
Especificamente, a taxa de transferência é de cerca de 24 threads, sem aproveitar mais threads.
É importante observar que uma nova versão 3.5 LTS corrige muitos dos problemas de desempenho da versão 3.0. No entanto, embora a versão 3.5 tenha um desempenho muito melhor que a versão 3.0, ainda não é tão rápida quanto a 1.1.1.
A situação se estabilizou à medida que os atuais níveis de desempenho representam uma nova linha de base para o OpenSSL, embora sejam esperados desenvolvimentos contínuos. Vamos dar uma olhada no 3.6 que será lançado em outubro (ainda não o testamos).
Apesar destes desafios de desempenho, o OpenSSL continua a ser a base das comunicações seguras na Internet, e a sua evolução reflete as complexas compensações inerentes aos projetos de código aberto de grande escala.
No entanto, isso é superior ao OpenSSL. A realidade é que os problemas de desempenho relatados no OpenSSL 3.x destacam um risco potencial nas ferramentas que usamos para conectar o mundo digital.
Isto representa um desafio tangível para a indústria, uma vez que esta “ameaça silenciosa à escalabilidade” pode passar despercebida até que os projetos tentem escalar, resultando em estrangulamentos inesperados e aumentos maciços nos custos de infraestrutura.
Compreender este problema (e como resolvê-lo) é essencial para o sucesso de qualquer projeto que necessite de mais do que um nível básico de tráfego.
O papel da camada SSL/TLS
Considere o que é SSL (Secure Sockets Layer) ou, mais precisamente, TLS (Transport Layer Security) hoje. É um protocolo de segurança que estabelece uma conexão criptografada entre um servidor web e um navegador. É a base das comunicações seguras na Internet e um componente crítico da maioria das aplicações da Internet.
Esse link garante que todos os dados transmitidos permaneçam privados e seguros, portanto, um grande problema de desempenho com SSL/TLS pode afetar quase tudo na rede.
Ao selecionar uma biblioteca SSL/TLS, as organizações devem considerar vários aspectos importantes:
Requisitos funcionais: A biblioteca deve implementar adequadamente protocolos criptográficos modernos e seguros.
Requisitos de manutenção: A biblioteca requer um ciclo de suporte previsível, especialmente para versões LTS (Long Term Support), que são essenciais para implantações estáveis de longo prazo.
Contas de desempenho: Além da velocidade bruta, um indicador-chave de desempenho é a capacidade da biblioteca de escalar com poder de processamento adicional. Em sistemas multi-core modernos, espera-se que o desempenho aumente à medida que mais processadores ou núcleos são adicionados.
Problemas de desempenho com bibliotecas SSL/TLS podem forçar as organizações a um dilema: priorizar a segurança adotando a versão mais recente, mas com desempenho prejudicado, ou manter o desempenho com uma versão mais antiga e agora sem suporte, arriscando uma vulnerabilidade crítica de segurança.
Esta situação é ainda mais alarmante porque se trata de um problema sistémico. SSL/TLS não é apenas mais um software; É a espinha dorsal da comunicação segura para a maioria dos sistemas conectados à Internet.
De servidores web a dispositivos IoT, SSL/TLS está em toda parte. Portanto, os problemas de desempenho em qualquer uma destas bibliotecas não são incidentes isolados, mas uma ameaça à estabilidade e segurança da infra-estrutura mais ampla da Internet.
As mudanças no OpenSSL oferecem uma oportunidade única para explorar esta parte da pilha e compreender como as escolhas arquitetônicas geralmente levam a compensações. Ao compreender a situação há 4 anos e como o projeto foi moldado, podemos compreender como nos adaptar às mudanças na paisagem.
Estudo de caso de dimensionamento de desempenho
O lançamento do OpenSSL 3.0, a biblioteca SSL mais utilizada em sistemas operacionais, apresentou um desafio óbvio para a indústria. A versão 3.x foi projetada para ser mais dinâmica e flexível para beneficiar os desenvolvedores e os muitos casos de uso padrão que ela utiliza.
No entanto, este novo design teve um efeito não intencional no desempenho, tornando-o menos adequado para cargas de trabalho críticas para o desempenho. Esse sucesso de desempenho tem sérias consequências no mundo real. Os sistemas que lidavam com milhares de solicitações por segundo estavam enfrentando dificuldades.
Algumas organizações exigem até 42 vezes mais hardware para manter o mesmo nível de serviço. Este foi um grande golpe para quem dependia de ambientes multithread.
Cenários de teste, incluindo handshake TLS completo no modo servidor e redefinições de sessão ponta a ponta, revelaram uma queda significativa de desempenho em comparação com a versão anterior, 1.1.1. O problema subjacente não era apenas a desaceleração, mas também a incapacidade de escalar de forma eficaz
Em alguns casos, a lentidão piora à medida que você adiciona mais poder de processamento. É o oposto do que você esperaria dos sistemas multi-core modernos.
Esse comportamento decorre de alterações fundamentais no design, incluindo pesquisas em tempo de execução, mecanismos de bloqueio excessivamente grandes e dependência excessiva de operações atômicas, que criaram gargalos de desempenho significativos.
Conforme mencionado acima, o OpenSSL respondeu melhorando o desempenho na versão 3.x, com a versão atual 3.5 LTS apresentando uma melhoria significativa.
Não queremos falar sobre problemas do passado. Na verdade, para muitas pessoas, o OpenSSL continua a ser uma excelente escolha que vai ao encontro das suas necessidades, pois o seu design dinâmico oferece vantagens em relação às versões anteriores. Na verdade, acontece frequentemente que a possibilidade de optimização de uma área (neste caso, flexibilidade) pode levar a compensações noutra área.
No entanto, é um estudo de caso importante sobre como é fácil se contentar com componentes amplamente utilizados e padronizados de nossa pilha de tecnologia. É também um lembrete de que um ecossistema mais diversificado é normalmente mais seguro e melhor para todos.
Navegando no ecossistema da biblioteca SSL
Novos desafios de desempenho estão forçando as organizações a enfrentarem uma situação difícil. Uma maneira é aceitar uma penalidade de desempenho, o que pode levar ao provisionamento excessivo de hardware. Para muitos, esta não é uma estratégia viável a longo prazo.
Isto leva a um caminho alternativo: encontrar um substituto. A ideia de alterar as bibliotecas criptográficas subjacentes é assustadora e a verdade é que nenhuma alternativa oferece uma solução totalmente compatível. No entanto, existem alternativas sólidas como wolfSSL e AWS-LC, cada uma com seus pontos fortes.
Essas bibliotecas exigem testes de integração rigorosos, mas geralmente oferecem benefícios atraentes de desempenho. Na verdade, o AWS-LC alcançou desempenho multithread ainda maior do que o OpenSSL 1.1.1, que há muito tempo é o padrão ouro.
O desafio não está na falta de opções viáveis, mas no esforço necessário para passar de um padrão profundamente enraizado. No entanto, estas situações podem levar a um melhor desempenho, a um ecossistema mais diversificado e à consciência de opções alternativas que podem ser mais adequadas para cenários específicos.
O caminho a seguir: Foco nas necessidades futuras
O desempenho de uma biblioteca SSL/TLS é um fator crítico que pode passar despercebido até que um projeto tente escalar, levando a gargalos inesperados e maior sobrecarga de infraestrutura. À medida que a indústria enfrenta esse desafio, os projetos devem permanecer proativos em relação às implicações de desempenho da biblioteca SSL escolhida.
O caminho mais promissor a seguir é uma consideração mais ampla das ferramentas disponíveis. As organizações são incentivadas a identificar alternativas que não sejam substitutos para todos os casos de uso, mas que sejam opções viáveis para cenários específicos sensíveis ao desempenho.
Você deve aprender sobre alternativas para ajudá-lo a decidir quando substituir o OpenSSL. Podemos mitigar esses riscos monitorando ativamente o desempenho, considerando bibliotecas alternativas e interagindo com a comunidade de código aberto.
Acima de tudo, devemos lembrar-nos que não estamos satisfeitos com a nossa pilha tecnológica. As mudanças podem trazer benefícios ou problemas, mas muitas vezes também são oportunidades.
Para uma análise abrangente de desempenho do OpenSSL 3.x, incluindo benchmarks detalhados, resultados de criação de perfil e uma comparação de bibliotecas alternativas, consulte a postagem detalhada do blog “Estado das pilhas SSL”. Observe que isso vem de um ano de testes internos e tem cobertura limitada dos lançamentos mais recentes.
Apresentamos o melhor computador empresarial.
Este artigo foi produzido como parte do canal Expert Insights da TechRadarPro, onde apresentamos as melhores e mais brilhantes mentes da indústria de tecnologia atualmente. As opiniões expressas aqui são de responsabilidade do autor e não necessariamente da TechRadarPro ou Future plc. Caso tenha interesse em participar, mais informações aqui:








