Pular para conteúdo

Serviços para Gerenciadoras de Consentimento e Ciência (GCC)

A Portaria

A Portaria SENATRAN nº 139, de 2025 regulamenta o acesso aos dados dos sistemas informatizados da Secretaria Nacional de Trânsito (Senatran) por entidades públicas e privadas. O objetivo é garantir que o compartilhamento de informações siga diretrizes de segurança, conformidade legal e governança de dados.

Impacto para as GCC e Consumo das APIs

As Gerenciadoras de Consentimento e Ciência (GCC) terão um papel essencial na intermediação entre os usuários e os sistemas da Senatran, garantindo transparência e conformidade regulatória. Com isso, ao integrar as APIs da Senatran, as GCC poderão:

  • Gerenciar e armazenar consentimentos de usuários para acesso aos seus dados veiculares e de trânsito.
  • Fornecer interfaces seguras para consulta e compartilhamento de dados com terceiros autorizados.
  • Assegurar conformidade com LGPD e outras normativas, evitando acesso indevido ou uso irregular das informações.
  • Automatizar processos de verificação e validação de consentimento, facilitando a experiência do usuário final.

Passos Recomendados para as GCC

  • Analisar a portaria e identificar requisitos específicos aplicáveis à sua operação.
  • Adequar seus processos internos para garantir segurança da informação e conformidade com as regras da Senatran.
  • Integrar as APIs da Senatran de forma segura, utilizando boas práticas de autenticação e auditoria.
  • Capacitar equipes técnicas e jurídicas para manter a operação dentro das diretrizes regulatórias.
  • Acompanhar atualizações e auditorias da Senatran para evitar riscos regulatórios.

Fluxo de consentimento

Fluxo de consentimento

Com a implementação correta dessas diretrizes, as GCC poderão desempenhar um papel estratégico no gerenciamento de consentimentos e compartilhamento seguro de dados dentro do ecossistema da Senatran.

PORTARIA SENATRAN Nº 139, DE 20 DE FEVEREIRO DE 2025

Fluxo de Geração de Hash de Consulta

Este fluxo descreve as etapas para geração e uso do hash de consulta, envolvendo o Usuário, a Gerenciadora de Consentimento e Ciência (GCC), a Plataforma de Gerenciamento de Consentimento e Ciência (PGCC) e os Estruturantes.

Participantes

  • Usuário: Solicitante da consulta.
  • GCC: Gerenciadora de Consentimento e Ciência.
  • PGCC: Plataforma de Gerenciamento de Consentimento e Ciência.
  • Estruturantes: Sistemas responsáveis por fornecer os dados solicitados.

Etapas do Fluxo

1. Solicitação de Geração do Hash de Consulta

  • O Usuário solicita à GCC a geração de um hash de consulta, informando:
    • CPF do titular
    • TemplateID do consentimento
    • CNPJ da GCC
    • CNPJ do usuário
    • CNPJ do anuente

2. Geração do Hash pela GCC

  • A GCC processa os dados recebidos e gera o hash de consulta.

3. Registro do Hash de Consulta na PGCC

  • A GCC envia o hash de consulta para a PGCC, solicitando seu registro.

4. Validação e Salvamento pela PGCC

  • A PGCC valida a chave do hash de consulta.
  • Após validação, a PGCC salva o hash em seu sistema.

5. Confirmação para a GCC

  • A PGCC confirma à GCC que o hash de consulta foi salvo com sucesso.

6. Retorno ao Usuário

  • A GCC retorna ao Usuário o hash da solicitação de consulta.

Diagrama do Fluxo

sequenceDiagram

    autonumber

    user->>gcc: Solicita geração hash de consulta (cpf, templateid, cnpjGCC, cnpjUsuario, cnpjAnuente, HashConsentimento)
    activate gcc
    gcc->>gcc: Gerar Hash
    deactivate gcc

    gcc-->>pgcc: Registrar Hash
    activate pgcc
    pgcc->>pgcc: Validação\ndo metadados Hash
    pgcc->>pgcc: Salva Hash
    pgcc-->>gcc: Hash salvo
    deactivate pgcc

    gcc-->>user: Hash da solicitação

Observações

  • Para a geração do hash de consulta para os casos de uso que exijam consentimento é necessário que exista um consentimento aprovado pelo titular, .
  • O hash de consulta garante a rastreabilidade e a integridade das solicitações de dados.
  • Todo o processo deve seguir as diretrizes de segurança e conformidade estabelecidas pela Senatran.

🧠 Como funciona o modelo de Hash JWT

1️⃣ Concatenação dos Dados

Os mesmos campos usados anteriormente continuam sendo parte do payload, mas agora são incorporados diretamente dentro do JWT (sem concatenação manual).

Campos típicos do payload: - cpfTitular - templateId - isConsentimento - cnpjUsuário - cnpjAnuente - cnpjGcc - numeroHashConsentimento - dataCriacao - dataExpiracao

Exemplo de payload JSON:

{
  "cpfTitular": "70100944035",
  "templateId": "136987",
  "isConsentimento": true,
  "cnpjUsuário": "05884765000164",
  "cnpjAnuente": "03452307000111",
  "cnpjGcc": "03452307000111",
  "dataCriacao": "2025-10-21T10:45:00",
  "dataExpiracao": "2025-12-31T23:59:59"
}


2️⃣ Assinatura Digital com JWT (RS256)

A GCC assina o payload com sua chave privada RSA, gerando um JWT assinado no formato:

header.payload.signature
{
  "alg": "RS256",
  "typ": "JWT"
}

Exemplo de JWT final

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...

3️⃣ Envio para a PGCC

O JWT é enviado para o endpoint:

POST /api/v1/hash

A PGCC executa as seguintes etapas: 1. Extrai o CNPJ do remetente do cabeçalho x-cnpj-consulta. 2. Busca a chave pública associada a esse CNPJ. 3. Valida a assinatura RSA (garantindo autenticidade). 4. Decodifica o payload e o armazena para processamento e auditoria.

Se a assinatura for inválida → HTTP 401 Unauthorized.
Se válida → HTTP 202 Accepted ("Hash validado e aceito para processamento").


4️⃣ Processamento Assíncrono

Após validação, o hash é enfileirado para processamento posterior.
Essa etapa pode envolver workers, batch jobs ou job schedulers para armazenar e auditar os dados.


🧾 Observações Importantes

  • Para consultas que exijam consentimento, deve existir um consentimento ativo pelo titular.
  • Todo o processo segue as diretrizes de segurança e conformidade da Senatran.
  • A GCC é responsável por gerar e assinar o JWT, enquanto a PGCC apenas valida e processa.

🔄 Diagrama de Sequência – Fluxo de Criação e Validação do JWT (GCC → PGCC)

sequenceDiagram
    title Fluxo de criação e validação do JWT (GCC → PGCC)
    participant GCC
    participant JwtBuilder
    participant ChavePrivada
    participant API_PGCC
    participant JwtValidator
    participant RepositorioChavesPublicas
    participant FilaProcessamento
    participant HashService
    participant HashInfoDTO

    GCC->>JwtBuilder: Monta header (alg=RS256, typ=JWT)
    GCC->>JwtBuilder: Adiciona payload (idTemplate, cnpjs, etc)
    JwtBuilder->>ChavePrivada: Solicita assinatura digital
    ChavePrivada-->>JwtBuilder: Retorna assinatura RSA-SHA256
    JwtBuilder-->>GCC: Retorna JWT (header.payload.signature)

    GCC->>API_PGCC: Envia JWT via requisição HTTP POST

    API_PGCC->>JwtValidator: Recebe JWT e inicia validação
    JwtValidator->>RepositorioChavesPublicas: Busca chave pública do remetente (por CNPJ)
    RepositorioChavesPublicas-->>JwtValidator: Retorna chave pública

    JwtValidator->>JwtValidator: Verifica assinatura (RSA)
    alt Assinatura inválida
        JwtValidator-->>API_PGCC: Retorna erro de autenticação
        API_PGCC-->>GCC: HTTP 401 Unauthorized\n(assinatura inválida)
    else Assinatura válida
        JwtValidator-->>API_PGCC: Retorna payload validado
        API_PGCC->>FilaProcessamento: Enfileira requisição\npara processamento posterior
        API_PGCC-->>GCC: HTTP 202 Accepted\n("Hash validado e aceito para processamento")
    end

    Note right of FilaProcessamento: Processamento assíncrono posterior\n(Worker, Batch ou Job Scheduler)

    FilaProcessamento->>HashService: Inicia processamento do hash validado
    HashService->>HashInfoDTO: Cria DTO com os campos do payload
    HashInfoDTO-->>HashService: Retorna objeto DTO

    HashService->>API_PGCC: Atualiza status do processamento\n(SUCCESS ou FAILURE)
    API_PGCC->>GCC: Opcional: envia callback HTTP 200\ncom DTO processado

📅 Versão e Manutenção

  • Versão: 2.0 (JWT assinado via RS256)
  • Data: 21/10/2025
  • Responsável: SERPRO – Projeto PGCC
  • Descrição: Substituição do cálculo SHA-256 por modelo JWT com assinatura RSA.

📚 Guias e Roteiros para GCCs

Credenciamento

Demonstração de Interoperabilidade