EncSend EncSend
Conceito de segurança

Modelo de segurança da EncSend

Esta página descreve a implementação atual: que dados são encriptados no lado do cliente, como os links e as chaves são tratados, que controlos de acesso estão ativos e onde estão os limites do modelo.

1. Criptografia no lado do cliente

As mensagens são encriptadas no navegador usando Web Crypto (AES-GCM). O servidor armazena texto cifrado e metadados.

2. Chaves em fragmentos de URL

As chaves de desencriptação são transportadas em fragmentos de URL como #k ou #rk e não são enviados para o servidor.

3. Camada de senha opcional

Os links protegidos por palavra-passe usam hashes de palavras-passe no lado do servidor mais encapsulamento adicional de chaves no lado do cliente (PBKDF2-SHA-256).

4. Controles de duração

A expiração, os limites de visualização/submissão e as políticas de leitura única restringem o acesso a conteúdos sensíveis.

Fluxo de dados: envio de segredo

  1. 1. O navegador gera material de chave de link de 256 bits.
  2. 2. A mensagem é encriptada com uma chave de conteúdo aleatória através de AES-GCM.
  3. 3. A chave de conteúdo é encapsulada com uma chave HKDF-SHA-256 derivada da chave do link.
  4. 4. Opcionalmente, esta chave encapsulada é adicionalmente encriptada com uma camada baseada em palavra-passe (PBKDF2-SHA-256).
  5. 5. O servidor armazena apenas encrypted_payload, encrypted_key, metadados criptográficos e campos de política de acesso.
  6. 6. Após uma desencriptação local bem-sucedida, o cliente confirma uma visualização; com leitura única, o segredo é depois marcado como destruído.

Fluxo de dados: pedido de mensagem segura

  1. 1. O proprietário gera um URL de pedido com um token público aleatório.
  2. 2. Os remetentes externos encriptam localmente no navegador com material de chave do pedido a partir do fragmento da URL.
  3. 3. O servidor armazena as submissões como texto cifrado e aplica limites de submissão e expiração.
  4. 4. O proprietário lê as submissões através de desencriptação local; o texto simples não é processado no lado do servidor.
  5. 5. Para leitura entre dispositivos, a chave do pedido pode adicionalmente ser armazenada como um artefacto cifrado pelo proprietário.

Controlo de acesso e resistência a abusos

Os tokens de acesso público são gerados aleatoriamente, armazenados apenas como hashes SHA-256 na base de dados e validados através de hash_equals.
As palavras-passe dos links nunca são armazenadas em texto simples e são verificadas contra hashes do lado do servidor. As sessões protegidas por palavra-passe para links públicos têm duração limitada (120 minutos por defeito).
A limitação de taxa está ativa para endpoints críticos, incluindo verificações de palavra-passe, submissões públicas, início de sessão e fluxos de verificação.
As operações do lado do proprietário são protegidas por autenticação, estado de e-mail verificado e políticas de autorização; alterações sensíveis de recuperação exigem confirmação recente da palavra-passe.

Recuperação do proprietário e cofre de chaves

A EncSend fornece artefactos de recuperação encriptados opcionais para cenários entre dispositivos:

  • Perfil criptográfico do proprietário: chave mestra encriptada (AES-GCM), baseada em frase-passe (PBKDF2-SHA-256).
  • Cofre de chaves do utilizador: cópia de segurança encriptada das chaves de segredo/pedido mantidas localmente.
  • Chaves de pedido encapsuladas pelo proprietário por pedido, incluindo lotes de rotação retomáveis com suporte para nova tentativa.

Auditoria e rastreabilidade

As ações relevantes para a segurança são registadas (por exemplo emissão de links, acesso negado, etapas de verificação de palavra-passe, criação de submissões e atualizações de recuperação).

  • As tabelas de eventos de acesso armazenam o tipo de evento, o carimbo temporal, o agente do utilizador e os metadados contextuais.
  • Registos de auditoria de eventos importantes.
  • Uma migração dedicada remove as colunas de endereço IP das tabelas relacionadas com sessões e eventos.

Limites importantes do modelo

  • A segurança do navegador continua crítica: as chaves locais ficam em cache no armazenamento do navegador e exigem um ambiente de cliente reforçado.
  • JavaScript e Web Crypto são obrigatórios para fluxos seguros de criação e desencriptação local.
  • A segurança do transporte (HTTPS, hardening de reverse proxy, política TLS) deve ser aplicada ao nível da infraestrutura.
  • O hashing de palavras-passe protege o armazenamento do lado do servidor, mas não substitui escolhas de palavras-passe fortes.