Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

« Previous Version 7 Next »

Esse documento é uma versão pública do documento de arquitetura da informação da Privacy Tools e tem como objetivo apresentar nosso plano de escalabilidade da plataforma de privacidade.

Arquitetura base

A aplicação foi concebida no modelo MVC com modelo stateless, sendo as camadas de backend e frontend desacopladas e um facade com controle de cache para a pool de conexões. As linguagens de programa base são:

  • Java 11 - Kotlin

  • React.JS - Javascript -Angular

  • Swift -IOS

  • Java/Android

Segurança e Escalabilidade

Os recursos de escalabilidade da Privacy Tools na modalidade SAAS contam com uma estrutura de balanceamento com “round-and-robin” através de Nginx e mecanismo de auto-scaling com instâncias Docker em máquinas virtuais Ubuntu. A arquitetura simplificada abaixo se aplica a cada ambiente (teste, desenvolvimento, demo e produção).

Por se tratar de um documento público alguns elementos da arquitetura foram suprimidos como componentes de orquestração, portas específicas e VPN.

Como funciona o balanceamento e as decisões de carga

A Privacy Tools não utiliza cluster mas sim uma arquitetura dinâmica de balanceamento de carga onde todas as instância atuam para atender a demanda. Quando a demanda aumenta aloca-se mais instância para atender as requisições (horários de pico) e quando reduz existe um número menor de máquinas virtuais.

A base de cálculo é a carga de requisições e a utilização de recursos computacionais (load usage, cpu, memory and storage). A balanceadora baseada em Nginx foi configurada para trocar de instância em caso de “connect timeout” superior a 2seg. Caso ocorram sucessivas trocas o administrador é alertado para investigar possível inconsistência de balanceamento.

Comunicação TLS

A versão do Java (Java Runtime Environment) utilizado pela Privacy Tools é a 11 ou 12 em um dos componentes. Essa versão já utiliza TLS 1.3 por padrão na maior parte das comunicações entre servidores e bancos de dados. Para comunicação com HTTPS de alguns sites e para executar testes de compatibilidade com Selenium a plataforma executa em modo de compatibilidade com TLS 1.2.

Criptografia. Os dados pessoais são criptografados durante a transmissão através do protocolo TLS V1.2/1.3. Todos os canais de comunicação da aplicação trafegam dados pessoais de maneira criptografada. O armazenamento dos dados pessoais em banco de dados oferece recursos de pseudo-anonimização para exclusão completa de dados pessoais e inviabiliza que mesmo equipes internas da Privacy Tools consiga obter dados pessoais acessando diretamente o repositório de dados. As chaves de criptografia não são menores do que 20 dígitos e contém caracteres especiais, números e letras maiúsculas e minúsculas e utilizam AES (Advanced Encryption Standard) com blocos de 128 bits.

Autenticação

Os recursos de autenticação da plataforma podem ser habilitados conforme característica de cada projeto, sendo os mais comuns:

  • Usuário e senha com duplo fator de autenticação

  • AD - Azure e outros

  • OpenID Connect

  • SAML2.0

Auditoria

As auditorias de segurança do cliente devem corresponder a todos os sistemas e locais onde são armazenados dados exclusivos do cliente. Em ambiente compartilhados SAAS onde dados do cliente podem estar eventualmente compartilhando a mesma infraestrutura lógica e física com outros clientes da Privacy Tools então o acesso deverá ser moderado e com filtros preparados pela Privacy Tools de modo a garantir a confidencialidade, segurança e integridade dos demais clientes da Privacy Tools.

Todo acesso com a finalidade de auditoria será concedido permissão de “apenas leitura” e poderá ser um acesso permanente ou temporário a depender do recurso sendo solicitado.

Os testes de penetração podem ser realizados em ambiente de produção, contudo, testes de carga só podem ser executados de forma independente pelo cliente caso a aplicação esteja em uma infraestrutura exclusiva e mantida pelo cliente, não se aplicando ao formato SAAS onde a Privacy Tools é responsável pelo custo de sustentação da infraestrutura junto aos provedores de Cloud.

As demais auditorias, inclusive de segurança, intrusão e integridade o cliente tem total liberdade para executar e conta com apoio irrestrito do time técnico da Privacy Tools.

Restrições de arquitetura

De modo geral não há restrições para instalação da plataforma Privacy Tools. Existem algumas configurações recomendadas como o mínimo necessário para cada instância, tais como:

  • Linux/Ubuntu 64 bits

  • Pelo menos 8Gb de RAM

  • Pelo menos 4vcpu em homologação e 8 vcpu em produção

  • Cache de 5Gb para Nginx - A variar conforme a carga

  • Quantidade de nós/vms correspondente à previsão de carga

  • No labels