Fundo de estrelas

Conceber um Sistema Seguro: Princípios e Soluções de Identidade

Conceber um sistema seguro não se resume a firewalls — trata-se de arquitetura.

Esta análise detalha os 12 princípios de segurança inegociáveis (da Encriptação e Segurança de API à Recuperação de Desastres) e explica as diferenças práticas entre as principais ferramentas de gestão de identidade.

17

Fev

Judinilson Monchacha

Diretor de Tecnologia

Judinilson Monchacha

Diretor de Tecnologia

Judinilson Monchacha

Diretor de Tecnologia

Conceber sistemas seguros é inegociável para proteger informação sensível, manter a confiança dos utilizadores e garantir a estabilidade da sua infraestrutura. A segurança deve ser implementada por defeito, não como uma reflexão posterior.

1. Princípios-Chave da Conceção de Sistemas Seguros

Uma estratégia de segurança robusta abrange toda a arquitetura e a cultura organizacional. Eis os principais pontos de conceção que programadores, arquitetos e responsáveis de produto devem priorizar:

  • Autenticação & Autorização: Verificar a identidade do utilizador (Autenticação) e confirmar a que recursos está autorizado a aceder (Autorização).

  • Encriptação: Proteger os dados tanto em trânsito (por exemplo, com TLS/SSL) como em repouso (por exemplo, encriptando campos da base de dados).

  • Gestão de Vulnerabilidades: Identificar proativamente e corrigir fragilidades de segurança no código e nas dependências.

  • Auditoria & Conformidade: Registar todas as ações relevantes e garantir que o sistema cumpre normas regulamentares (por exemplo, RGPD, HIPAA).

  • Segurança de Rede: Implementar firewalls, deteção de intrusões e segmentação da rede para isolar serviços.

  • Segurança de Terminais: Proteger endpoints (dispositivos dos utilizadores) contra malware e acessos não autorizados.

  • Respostas de Emergência: Definir processos claros para lidar com e mitigar rapidamente incidentes de segurança.

  • Segurança de Contentores: Analisar imagens de contentores para detetar vulnerabilidades e aplicar o princípio do menor privilégio na execução dos contentores.

  • Segurança de API: Implementar limitação de taxa, validação de entradas e verificações de autorização adequadas para todos os endpoints de API.

  • Gestão de Fornecedores Terceiros: Avaliar serviços externos para garantir que cumprem os seus padrões de segurança.

  • Recuperação de Desastre (DR): Planear a cópia de segurança dos dados e o restauro do sistema em caso de falha catastrófica.

2. Soluções de Gestão de Identidade e Acesso

Quando um utilizador inicia sessão num website, a sua identidade e direitos de acesso devem ser geridos de forma consistente. Eis como várias soluções padrão o fazem:

Sessões e Cookies

Uma Sessão é uma abordagem no lado do servidor para gerir identidade.

  • Como Funciona: O servidor armazena os dados de identidade e o estado do utilizador. Emite ao browser um ID de Sessão único, normalmente contido num Cookie HTTP. O browser envia este pequeno cookie em cada pedido subsequente, permitindo ao servidor consultar o estado armazenado.

  • Compromisso: É Stateful (o servidor tem de manter o estado), o que simplifica a lógica no lado do servidor, mas torna o escalonamento horizontal mais difícil. Os Cookies têm limitações quando usados em diferentes dispositivos e domínios.


Tokens e JWT (JSON Web Tokens)

Um Token é um método generalizado em que a informação de identidade é codificada e enviada diretamente para o browser ou cliente. O servidor não precisa de armazenar a sessão.

  • Como Funciona:

    • Token: O cliente recebe uma cadeia opaca que representa a sua identidade. O cliente envia este token para autenticação em pedidos futuros. Estes tokens precisam de ser protegidos (encriptados/desencriptados).

    • JWT (JSON Web Token): Isto normaliza o formato do token. O token é um pequeno objeto JSON assinado digitalmente pelo servidor. Contém três partes: Header, Payload (claims como ID do utilizador, expiração) e Signature.

  • Compromisso: Os tokens são Stateless (o servidor apenas verifica a assinatura do token), o que é excelente para escalonamento horizontal e microserviços. No entanto, os JWT não podem ser revogados instantaneamente e devem ser protegidos, pois contêm dados do utilizador.


SSO (Single Sign-On)

SSO é uma solução empresarial focada na experiência do utilizador e na eficiência.

  • Como Funciona: Utiliza um Fornecedor de Identidade (IdP) central e de confiança. Depois de um utilizador iniciar sessão no IdP, esse único login concede acesso a vários serviços ou aplicações independentes, sem voltar a introduzir credenciais.

  • Caso de Utilização: Ideal para aplicações internas empresariais e grandes plataformas SaaS que detêm vários serviços relacionados. Protocolos comuns incluem SAML e OpenID Connect (que assenta no OAuth 2.0).


OAuth 2.0

OAuth 2.0 é um framework de Autorização, não um protocolo de autenticação (embora seja frequentemente usado como tal através do OpenID Connect).

  • Como Funciona: Permite que uma aplicação de terceiros (o Cliente) obtenha acesso limitado aos recursos de um utilizador (por exemplo, as suas fotos no Google) sem nunca fornecer ao cliente a palavra-passe do utilizador. O utilizador concede permissão através de um fluxo seguro de redirecionamento, e o Cliente recebe um Access Token com âmbitos específicos.

  • Caso de Utilização: "Iniciar sessão com Google" ou permitir que um serviço de impressão aceda aos seus ficheiros do Dropbox. Delega permissões de forma segura.


Login por Código QR

Este é um método inovador de autenticação sem palavra-passe.

  • Como Funciona: A aplicação apresenta um Código QR que codifica um token único, aleatório e sensível ao tempo. Um dispositivo móvel, que já está autenticado, lê o código, enviando o token de volta ao servidor. O servidor faz a correspondência do token com a sessão de browser em espera e inicia a sessão do utilizador.

  • Caso de Utilização: Login móvel simples e seguro que evita a necessidade de escrever palavras-passe num computador.

Entre em contacto para iniciar o seu projeto