O protocolo Web Push segue os padrões da IETF (Web Push Protocol e Web Push Encryption), projetados com foco em privacidade, autenticação e proteção contra abusos. A Inngage utiliza esse protocolo para garantir que as mensagens sejam criptografadas de ponta a ponta, autenticadas com pares de chaves exclusivos e enviadas apenas por remetentes autorizados.

Como funciona a autenticação

  1. Registro do Service Worker: no navegador do usuário, o Service Worker da Inngage é registrado, habilitando o recebimento de notificações mesmo com o site fechado.
  2. Permissão do usuário: o usuário concede explicitamente a permissão para receber push. Sem esse consentimento, nenhum dado de push é gerado.
  3. Subscription com chaves públicas: ao autorizar, o navegador gera uma chave pública (p256dh) e uma chave de autenticação (auth), entregues à Inngage junto com um endpoint exclusivo. Esse conjunto forma a Web Push Subscription, armazenada para os envios futuros.

Por que é seguro

🔐 Criptografia de ponta a ponta

As mensagens são criptografadas com a chave pública do navegador do usuário. Nem os servidores intermediários (Firebase, endpoints VAPID) conseguem ler o conteúdo — somente o navegador com a chave privada correspondente descriptografa a mensagem.

🔑 Assinatura com VAPID

Cada requisição é assinada com VAPID (Voluntary Application Server Identification), usando um par de chaves: a pública vai no cabeçalho da requisição; a privada permanece protegida nos servidores da Inngage e autentica a origem. Isso garante que apenas remetentes autorizados enviem notificações válidas para o endpoint.

🚫 O endpoint sozinho não permite ataques

Mesmo que um atacante capture um endpoint de push (uma URL longa e única), ele não consegue enviar mensagens, pois precisaria também:

  • da chave de autenticação (auth) e da chave pública (p256dh);
  • de assinar o conteúdo com o par de chaves VAPID correto;
  • de criptografar a mensagem com as chaves de sessão da subscription.

Qualquer tentativa com dados incorretos é rejeitada pelo navegador com erro Unauthorized ou Invalid Crypto Key.

Conclusão

O Web Push da Inngage tem múltiplas camadas de proteção: consentimento explícito do usuário, criptografia de ponta a ponta com chaves únicas por navegador, autenticação VAPID com controle de origem e proteção contra spoofing e envios não autorizados.

Para se aprofundar nos padrões: RFC 8030 (Web Push Protocol) e o draft de Web Push Encryption da IETF.