Arquitetura e Componentes (Security Servers)
Visão Geral da Arquitetura
O X-Road opera como uma camada de comunicação segura (middleware) sobre a Internet pública.
Componentes Principais
Os componentes fundamentais da arquitetura X-Road (e sua implementação X-Valid) são:
- Security Servers (Servidores de Segurança - SS): Pontos de acesso para a troca de dados peer-to-peer.
- Central Services / Registry (Registro): Servidor central responsável pelo cadastro e gerenciamento de membros.
- Trust Services (Serviços de Confiança) / Verifier (Verificador) / Timestamping Authority (Autoridade de Carimbo de Tempo): Componentes que garantem a autenticidade e o não repúdio.
- Directory (Diretório): Componente de transparência pública que lista o catálogo de serviços.
- Link (Adaptador): (Específico do X-Valid) Componente que permite criar serviços/APIs de forma Low-Code a partir de bancos de dados.
- Configuration Proxy: Componente de arquitetura do X-Road relacionado à distribuição de configurações.
Security Servers (SS)
Função e Importância
Os Security Servers são os pontos de acesso centrais pelos quais os membros de um ecossistema trocam dados. Eles são sistemas especializados projetados para garantir:
- Integridade, confidencialidade e disponibilidade dos dados e recursos.
- Troca de mensagens com sigilo, autenticação e não repúdio.
- Gerenciamento de Subsistemas e Serviços: Cada organização gerencia seus subsistemas e serviços através do seu SS.
Exemplo de Configuração: Cada organização deve configurar um SS em sua infraestrutura. Por exemplo, no X-Valid, o DETRAN-SS e o PEFOCE-SS são Servidores de Segurança que gerenciam a troca de dados entre o DETRAN e a PEFOCE.
Arquitetura de um Security Server
O Security Server atua como um proxy ou middleware de comunicação:
- Estabelecer conexões seguras: O SS de origem cria um canal seguro com o SS de destino (o canal é suportado pela Internet pública).
- Gerenciamento de certificados: O SS gerencia Certificados de Autenticação (para verificar a identidade do servidor e estabelecer a conexão segura) e Certificados de Assinatura (para garantir a integridade e autenticidade dos dados). Os membros recebem certificados emitidos por uma Autoridade Certificadora (CA) confiável.
- Interface de Gestão de API: O X-Road fornece uma interface gráfica em cada SS para a gestão de APIs (criação, permissão de acesso, ativação de serviços).
- Processamento de mensagens: O SS encaminha a requisição do subsistema consumidor para o SS do provedor. A invocação de serviço é registrada no SS para auditoria.
Fluxo de Comunicação
A troca de dados é direta (peer-to-peer) entre o produtor e o consumidor.
Passo a Passo
Requisição do cliente (Consumidor): O subsistema do cliente (Ex: Sistema CNH do DETRAN) inicia a comunicação enviando a requisição para o Security Server de origem (SS do Consumidor).
- A requisição deve ser autenticada usando Certificado para fechar o canal TLS mútuo.
- O Header da requisição deve conter os identificadores obrigatórios:
UXP-Client(identificando o Consumidor, ex:HML-GOV-CE/GOV/DETRAN/CNH) eUXP-Service(identificando o Provedor, o serviço e a versão, ex:HML-GOV-CE/GOV/PEFOCE/IDENTIDADE-CIVIL/dados-cidadao/v1).
Processamento no Security Server de origem (Consumidor): O SS do Consumidor assina a requisição e cria um registro para auditoria. Ele então cria um canal seguro com o SS do Provedor.
Transmissão segura: A mensagem assinada é enviada pelo canal seguro entre os SSs pela Internet pública.
Processamento no Security Server de destino (Provedor): O SS do Provedor valida a assinatura da requisição e verifica a permissão de acesso ao serviço. Em seguida, roteia a requisição para o servidor dentro de sua rede interna que implementa o serviço (este servidor interno não precisa estar exposto à Internet pública).
Resposta ao cliente: O SS do Provedor recebe a resposta do serviço interno, assina essa resposta e registra a auditoria. A resposta segue o caminho inverso para o SS do Consumidor, utilizando o mesmo canal seguro.
- Registro Central: Toda requisição entre Security Servers gera um registro no Verifier e no Directory.
Componentes Adicionais
Central Server (Registry)
O X-Road Central Services é estabelecido por um órgão governamental para hospedar serviços gerais de cadastro e autenticação. No X-Valid, o componente chave para essa função é o Registry (Registro).
- Gerenciamento central da infraestrutura: O Central Server/Registry controla o cadastro de qualquer novo membro ou subsistema.
- Registro de membros: O processo de entrada em um ecossistema X-Road envolve a verificação da identidade da organização e do ponto de acesso técnico por meio de certificados. O Registry mantém as identidades centralizadas.
- Gerenciamento de Solicitação: O Registro exibe as Solicitações de Gerenciamento (aprovação ou rejeição do cadastro de clientes/subsistemas, que devem ser cadastrados tanto no SS quanto no Registry).
- Distribuição de configurações: O Central Server gerencia o Global Configuration Distribution.
Trust Services (Serviços de Confiança) / Verifier (Verificador)
Os Serviços de Confiança fornecem a base para a validade jurídica das transações:
- Serviços de Confiança: Incluem a Autoridade Certificadora (CA) e o serviço de marcação de tempo (time-stamping).
- Timestamping Authority: O Security Server usa o serviço de time-stamping para marcar todas as requisições e respostas. O propósito da marcação é verificar a existência de itens de dados em determinado ponto do tempo. A geração e o armazenamento desses registros impactam o desempenho, mas são essenciais para a segurança.
- Verifier (Verificador): É o componente de auditoria jurídica no X-Valid. Valida as transações por meio dos certificados digitais ICP-Brasil e do carimbo de tempo. Os registros gerados podem ser usados em procedimentos legais como evidência. O Verifier também exibe a Resposta do OCSP, indicando o status de validade dos certificados.
Componente Adicional Específico do X-Valid: Link (Adaptador)
O Link é um componente que:
- Permite criar serviços/APIs consultando ou alterando dados diretamente no banco de dados da organização.
- Utiliza scripts SQL para gerar APIs de forma Low-Code.
- Suporta métodos GET (consulta), POST (inserção), PUT (atualização) e DELETE (exclusão) de dados.