Arquitetura Imutável: Verificação Prática com Código e Autenticação

Arquitetura Imutável: Verificação Prática com Código e Autenticação

Este artigo explora a implementação de autenticação em uma arquitetura imutável, utilizando certificados digitais para garantir a segurança e integridade dos dados. O autor detalha o processo de criação e uso de certificados, destacando os desafios e soluções encontradas, além de discutir as vantagens e limitações dessa abordagem.

MundiX News·10 de maio de 2026·7 min de leitura·👁 16 views

Arquitetura Imutável: Verificação Prática com Código e Autenticação

Este artigo é a segunda parte de uma série que explora a construção de aplicações utilizando os princípios da arquitetura imutável, conforme descritos no livro "A Arte da Arquitetura Imutável: Teoria e Prática da Gestão de Dados em Sistemas Distribuídos".

Nesta seção, o foco é a implementação da autenticação de clientes/serviços externos usando certificados e os conceitos de "arquitetura imutável". A autenticação, neste contexto, visa garantir que apenas sistemas autorizados possam acessar o serviço, rejeitando solicitações de fontes não confiáveis.

Por que Certificados?

A escolha de certificados para a autenticação está alinhada com a filosofia da imutabilidade. Uma vez criado, um certificado não deve ser alterado. Os certificados permitem a criação de assinaturas digitais em documentos, que podem ser armazenadas com "registros imutáveis" e verificadas posteriormente para garantir a integridade dos dados. Um certificado, uma vez emitido, não é modificado, o que está em conformidade com os princípios do livro.

A tecnologia de certificados é amplamente utilizada há décadas, bem documentada e amplamente suportada. As implementações de bibliotecas estão disponíveis para quase todas as linguagens de programação e se integram bem entre diferentes linguagens.

Arquitetura de Autenticação

Criação de Certificados

O livro sugere que a criação de certificados é simples, e a experiência prática confirma isso, embora com algumas nuances. A criação de um certificado no Windows usando o Putty foi direta. No entanto, o Putty gera certificados em um formato não suportado por Java e Python. Felizmente, foi possível exportar os certificados do Putty no formato OpenSSH. A biblioteca cryptography do Python funcionou sem problemas com certificados OpenSSH.

Java, por outro lado, não conseguiu trabalhar com certificados OpenSSH, ou pelo menos não foi possível configurar. Java pode trabalhar com certificados X.509. No entanto, foi fácil converter certificados OpenSSH para um formato suportado pelo Java. Os passos para essa conversão estão descritos em [este arquivo](link para o arquivo).

O resultado é uma chave privada para assinar documentos e uma chave pública para verificar documentos.

Serviço de Envio de Solicitações

As solicitações para o serviço de processamento são criadas em uma aplicação separada, escrita em Python. O serviço primeiro envia sua chave pública para o servidor de processamento de dados. Isso é descrito na próxima seção.

Ao enviar solicitações, cada solicitação é assinada com a chave privada, e a assinatura digital é inserida no cabeçalho. A chave pública também é inserida no cabeçalho para verificação da assinatura. Este é o ponto central desta etapa. É essencialmente a autenticação. Ou seja, nos apresentamos ao sistema externo usando uma chave pública, que só podemos gerar com base em nossa chave privada. Portanto, o sistema de processamento de solicitações deve conhecer nossa chave pública ANTES de enviarmos mensagens. Nesta solução técnica, isso é resolvido enviando a chave pública através de um serviço REST. Em soluções de produção, diferentes métodos são possíveis. No entanto, a principal vantagem aqui é que essa chave pública pode ser transmitida por qualquer canal de comunicação. É uma chave pública. É impossível falsificá-la sem a chave privada. Não há necessidade de "transmissões secretas" da primeira senha.

Serviço de Processamento de Documentos

Para autenticar mensagens, o serviço de verificação deve ter a chave pública. Nesta solução, isso é feito através de um serviço REST.

Cada solicitação recebida, além do corpo da solicitação, possui dois cabeçalhos:

  • Certificado público para verificação da assinatura
  • Assinatura eletrônica para verificação

E chegamos novamente ao ponto principal. Verificamos o usuário por sua chave pública. Ou seja, devemos ter a chave pública ANTES de começar a verificar a assinatura com essa chave pública, que o usuário nos enviará novamente.

Se a chave pública recebida já estiver no banco de dados, a solicitação é verificada/aprovada/processada.

Surge imediatamente a questão de como lidar com a situação em que queremos negar o acesso a um usuário. Não podemos excluir o registro com sua chave pública. Estamos trabalhando em uma arquitetura "imutável" sem atualizações e exclusões. Para resolver esse problema, uma segunda entidade, "certificados revogados", foi criada.

Cada chave pública recebida é verificada tanto em relação às chaves públicas permitidas quanto aos certificados revogados. Ou seja, para desativar um usuário, você precisa adicionar o certificado à lista de certificados revogados. Graças à pesquisa por campos indexados, todas as solicitações são executadas rapidamente.

Conclusão

Os certificados permitiram resolver o problema de forma simples e confiável? Em geral, sim. Nesta etapa, foi possível criar certificados no Putty sem grandes problemas. Assinar um documento com Python. Verificar a assinatura em Java. A solução foi simples, rápida e com grande potencial de expansão.

Mesmo na implementação atual, esta solução está pronta para uso em redes corporativas. Ao acessar esta solução de redes externas, haverá um problema, descrito no parágrafo seguinte.

Esta solução específica tem uma limitação na resistência a ataques DDoS. Para verificar o remetente, é necessário ler a mensagem completa dele. Ou seja, muitos remetentes "falsos" podem sobrecarregar o sistema. Neste caso específico, esta é uma suposição aceita. Ao implantar soluções de produção semelhantes, existem muitas maneiras de resolver esse problema. A discussão dessas soluções está além do escopo deste ciclo.

O resultado desta etapa mostrou que a autenticação via certificados pode ser conectada sem criar uma infraestrutura complexa de gerenciamento de certificados, simplesmente criando-os manualmente.

Um problema foi a duplicação do tamanho das mensagens, pois o certificado, que o servidor JÁ possui, é constantemente duplicado nelas. Mas esta é uma "desvantagem" da arquitetura imutável. No entanto, a chave pública em si tem 451 bytes.

Os Certificados se Encaixam na Arquitetura Imutável?

Com certeza! 100%!

🛡️⚡

Pare de pesquisar. Comece a hackear.

O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.

Testar grátis por 7 dias →

Sem cartão para começar · Planos a partir de R$49/mês

📤 Compartilhar & Baixar

🧰 Ferramentas recomendadas

Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Com centenas de ferramentas pré-instaladas, a distribuição Kali Linux facilita o trabalho de os profissionais de segurança começarem a fazer testes de segurança rapidamente. No entanto, com mais de 600 ferramentas em seu arsenal, o Kali Linux também pode ser desafiador. A nova edição deste prático livro abrange as atualizações nas ferramentas e inclui uma melhor abordagem da análise forense e da engenharia reversa. Ric Messier, autor, não fica apenas no teste de segurança, mas também faz uma abordagem sobre a execução de análise forense, incluindo a análise em disco e na memória, assim como alguma análise básica de malware. • Explore as diversas ferramentas disponíveis no Kali Linux • Entenda o valor do teste de segurança e examine os tipos de teste disponíveis • Aprenda os aspectos básicos do pentest em todo o ciclo de vida do ataque • Instale o Kali Linux em vários sistemas, tanto físicos quanto virtuais • Descubra como usar diferentes ferramentas destinadas à segurança • Estruture um teste de segurança baseado nas ferramentas do Kali Linux • Estenda as ferramentas do Kali para criar técnicas de ataque avançadas • Use o Kali Linux para ajudar a criar relatórios quando o teste terminar “A abordagem concisa, clara e baseada na experiência adotada por Ric Messier para a introdução do Kali Linux e dos testes de cibersegurança é incomparável. Este livro é uma leitura excelente e acessível para iniciantes e um recurso valioso para qualquer pessoa.” —Alexander Arlt, Consultor sênior de segurança, Google

Ver na Amazon
Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Compatível com portas USB-C e USB-A, ideal para ampliar a conectividade de dispositivos como MacBook Pro e outros com portas USB-C. Inclui um adaptador USB-A extra, proporcionando uma conexão Ethernet estável e veloz de até 1 Gbps, perfeita para filmes, jogos online e videoconferências. Oferece três portas USB 3.0 com velocidades de transferência de até 5 Gbps, permitindo conectar mouse, teclado, discos rígidos e outros periféricos. Fabricado em alumínio durável, garantindo longa vida útil e resistência ao uso diário. Design compacto e leve, ideal para viagens de negócios e uso diário, facilitando o transporte e armazenamento. Funciona com Windows 10/8.1/8, Mac OS e Chrome OS, oferecendo versatilidade incomparável para diversas necessidades de conectividade. Assegura uma conectividade estável e rápida, perfeita para tarefas exigentes como transferência de dados, streaming e mais.

Ver na Amazon
Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs is a crash course on web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure. You'll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you'll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you'll learn to perform common attacks, like those targeting an API's authentication mechanisms and the injection vulnerabilities commonly found in web applications. You'll also learn techniques for bypassing protections against these attacks. In the book's nine guided labs, which target intentionally vulnerable APIs, you'll practice: Enumerating APIs users and endpoints using fuzzing techniques Using Postman to discover an excessive data exposure vulnerability Performing a JSON Web Token attack against an API authentication process Combining multiple API attack techniques to perform a NoSQL injection Attacking a GraphQL API to uncover a broken object level authorization vulnerability

Ver oferta
Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Up-to-date strategies for thwarting the latest, most insidious network attacks This fully updated, industry-standard security resource shows, step by step, how to fortify computer networks by learning and applying effective ethical hacking techniques. Based on curricula developed by the authors at major security conferences and colleges, the book features actionable planning and analysis methods as well as practical steps for identifying and combating both targeted and opportunistic attacks. Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition clearly explains the enemy's devious weapons, skills, and tactics and offers field-tested remedies, case studies, and testing labs. You will get complete coverage of Internet of Things, mobile, and Cloud security along with penetration testing, malware analysis, and reverse engineering techniques. State-of-the-art malware, ransomware, and system exploits are thoroughly explained. Fully revised content includes 7 new chapters covering the latest threats Includes proof-of-concept code stored on the GitHub repository Authors train attendees at major security conferences, including RSA, Black Hat, Defcon, and B-Sides

Ver na Amazon
Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Proteção de privacidade aprimorada: protege o link de transmissão de dados para evitar roubo de informações, fornecendo proteção de segurança robusta que protege a privacidade do usuário durante transferências de arquivos e garante uma conexão segura para interações de dispositivos sem preocupações em vários ambientes Uso a longo prazo: a camada protetora resistente ao desgaste, combinada com um corpo de metal resistente, oferece gerenciamento de calor confiável e qualidade duradoura durante o uso diário Entrega eficiente de energia: a tecnologia de chip inteligente garante a identificação automática dos requisitos de energia, fornecendo carregamento eficiente alinhando-se com vários protocolos de carregamento rápido para maior conveniência Proteção contra sobrecarga: evitando riscos de sobrecarga, este bloqueador de dados USB protege a vida útil da bateria e garante um desempenho estável, mantendo um fluxo estável de energia para melhorar a longevidade do dispositivo de forma eficaz Prático de transportar: com atenção à portabilidade, este bloqueador de dados USB oferece um design compacto que é leve e fácil de transportar, melhorando a conveniência do usuário e operação eficiente

Ver na Amazon

📩 Newsletter MundiX

Receba novidades de cibersegurança + um checklist de pentest grátis. Sem spam.

Ao assinar você concorda em receber e-mails. Cancele quando quiser.