Como proteger notificações de push em aplicativos móveis? (system design)
Como criar um serviço seguro de push notification para Android e iOS?
Protegendo Notificações
(Securing Push Notifications)
Como você pode ver na imagem 1, uma implementação classica de notificações de push para Android e iOS, esse é o fluxo comum e “recomendado” pelo google, quando estamos usando FCM (Firebase Cloud Messaging).
Processo de notificação simplificado:
O Backend cria o conteúdo da notificação e envia para o serviço de FCM
O conteúdo passa pelo servidor do Google e é direcionado para os celulares
Qual é o “potencial” problema com essa arquitetura/Design?
Sevidor do provedor (Google)
O problema está no servidor do Google. Embora eles aleguem que não vão abrir, inspecionar, salvar ou usar o conteúdo para algum outro fim, ninguém nos garante que algo não vaze nesse processo. (vide lupa na imagem 2)
Quem se importa com isso?
Em muitos casos, isso não gera incomodo ou problema algum. Já no caso de bancos, seguros e entidades governamentais, onde um eventual vazamento de dados sensíveis ou sigilosos nunca devam acontecer, isso pode se tornar um grande problema, ocasionando dano à imagem da empresa em questão.
Como poderíamos proteger o conteúdo das notificações?
Uma pequena alteração no design da arquiterura, já nos asseguraria, que nenhum conteúdo sensível passase pelos servidores do provedor (Google)
Novo processo de push:
O backend gera apenas um id que referencia a notificação que ele mantem local.
O backend envia o id de notificação para o serviço do provedor (FCM).
O serviço então distribui as notificações que contem apenas o id das mesmas.
O backend oferece um API-Endpoint para que os aparelhos possam solicitar o conteúdo de notificação de maneira segura.
O backend envia as informações seguramente para o aparelho.
Notificação segura
Dessa maneira nos asseguramos que apenas o nosso backend e os aparelhos que o próprio backend conhece e confia, tenham acesso aos dados restritos. Em muitos casos, isso pode até ser um dos pontos de alguma empresa de auditoria de segurança.
OWASP
Mais informações sobre esse tema, pode ser encontrado nas recomendações da OWASP (Open Source Foundation for Application Security).
Quer mais conteúdo assim?
Me siga, se você gosta desse tipo de conteúdo técnico didático e feito com muito carinho. ❤️
Você me encontra no 🐦twitter, 🦑 Github ou no 📺 Youtube onde tenho um curso gratuito “Do zero ao certificado Android”, outro chamado “Resoluções a problemas comuns Android” e Android Jetpack Compose disponíveis 0800 para você.
Para não perder nenhum conteúdo, inscreva-se nesse techblog clicando aqui: