Omini Sign — Segurança
Práticas e mecanismos de segurança implementados no Omini Sign para proteger documentos, tokens e dados dos signatários.
⚠️ Este documento é institucional e precisa de revisão jurídica antes de entrar em produção. Última atualização: Junho de 2026.
O Omini Sign aplica os mesmos princípios de segurança da plataforma Omini Flow, com controles adicionais específicos para o processo de assinatura eletrônica.
1. Tokens de assinatura
Cada signatário recebe um link de assinatura único baseado em um token criptográfico seguro:
- O token plain é gerado com randomBytes criptograficamente seguro
- Apenas o hash SHA-256 do token é armazenado no banco de dados
- O token plain nunca é registrado em logs ou retornado por APIs
- Tokens têm prazo de expiração configurável pela empresa
- Tokens usados não podem ser reutilizados após a assinatura
2. Armazenamento de documentos
Os documentos enviados para assinatura são armazenados em área privada do servidor:
- Armazenamento fora do diretório web público — sem acesso direto via URL
- Hash SHA-256 calculado no momento do upload para verificação de integridade
- fileKey (caminho interno) nunca é retornado em respostas de API
- Acesso ao PDF somente via endpoint autenticado com token válido
- Validação de formato: apenas arquivos .pdf são aceitos
- Verificação de magic bytes para garantir que o arquivo é um PDF real
3. Servindo o PDF ao signatário
O endpoint de servir o PDF implementa múltiplas camadas de proteção:
- Rate limit: máximo de 20 requisições por 10 minutos por IP
- Validação do token (via hash SHA-256) antes de qualquer operação
- Headers seguros: Cache-Control: no-store, X-Content-Type-Options: nosniff
- Content-Disposition com nome original sanitizado — sem expor o caminho interno
- Envelope cancelado, expirado ou revogado retorna 410 (gone)
- Token inválido ou expirado retorna 404 com mensagem genérica
4. Proteção de dados pessoais dos signatários
Os dados pessoais dos signatários são tratados com minimização e proteção:
- E-mail do signatário mascarado nas respostas de API (ex: j***@empresa.com)
- Endereço IP mascarado nos logs e trilha de auditoria (ex: 192.168.x.x)
- Dados de signatário nunca retornados para terceiros sem autorização
- TokenHash nunca exposto em respostas de API ou logs
5. Isolamento por empresa
Cada empresa opera em ambiente isolado no Omini Sign:
- Envelopes, documentos e signatários são filtrados por companyId no backend
- Usuário de empresa A nunca acessa dados da empresa B
- SUPER_ADMIN pode ver metadados de auditoria, mas não o conteúdo do documento
- Qualquer acesso administrativo sensível gera AuditLog com actor, IP e timestamp
6. Trilha de auditoria imutável
Todos os eventos do processo de assinatura geram registros de auditoria:
- Eventos registrados: SENT, VIEWED, SIGNER_SIGNED, SIGNED, DECLINED, CANCELED
- Cada registro contém: tipo, timestamp, signerId, metadados do evento
- IP mascarado e user-agent registrados para cada ação do signatário
- AuditLog separado para rastreabilidade da plataforma
- Registros não podem ser editados ou excluídos por usuários comuns
7. Rate limiting
O Omini Sign aplica limites de requisição para prevenir abusos:
- Visualização de token: 30 req / 10 min por IP
- Envio de assinatura (POST): 10 req / 15 min por IP
- Acesso ao PDF: 20 req / 10 min por IP
- Rate limit retorna HTTP 429 com tempo de reset
8. O que o Omini Sign não oferece ainda
- Certificação por ICP-Brasil ou certificado digital qualificado
- Verificação de identidade por documento oficial (CPF, RG, biometria)
- Autenticação por OTP/2FA para o signatário (planejado)
- Carimbo de tempo certificado por autoridade externa