Sistemas que usam verificação por SMS geram um rastro de informações sensíveis. Decidir o que guardar, como guardar e por quanto tempo é uma das tarefas mais críticas para desenvolvedores e gestores de produto. Uma política de retenção bem definida protege tanto o usuário quanto a empresa.
Este artigo detalha os fatores, riscos e boas práticas para criar uma política de retenção de dados de verificação que seja segura, funcional e em conformidade com a legislação brasileira.
Quais dados são gerados na verificação por SMS?
Antes de definir prazos, é preciso entender o que constitui um "dado de verificação". O processo envolve mais do que apenas o número de telefone. Uma única tentativa de envio de código OTP pode gerar os seguintes registros:
- Número de telefone do destinatário: O dado principal e mais sensível.
- Conteúdo da mensagem: Incluindo o próprio código OTP (One-Time Password).
- Metadados da API: Timestamps (data e hora) da requisição, da entrega e da confirmação.
- Status da entrega: Informações sobre o sucesso, falha ou atraso na entrega do SMS (DLR - Delivery Report).
- Informações de origem: Endereço IP e User-Agent do dispositivo que solicitou o código.
- Identificadores internos: ID do usuário no seu sistema e ID da transação de verificação.
Cada um desses dados possui um nível de sensibilidade e uma utilidade diferente ao longo do tempo, o que justifica tratá-los com regras de retenção distintas.
A balança da retenção: Por que guardar e por que apagar?
Manter logs de verificação é essencial para a operação e segurança de um serviço. No entanto, guardá-los por tempo demais cria riscos desnecessários. O desafio é encontrar o ponto de equilíbrio.
Motivos para reter os dados
- Auditoria e Segurança: Em caso de uma invasão de conta, os logs de verificação são a principal fonte de evidências para entender como o ataque ocorreu, qual sua origem e qual o seu alcance.
- Suporte ao Cliente: Quando um usuário relata "não recebi o código", os logs detalhados permitem que a equipe de suporte diagnostique o problema, seja ele uma falha na operadora, um número incorreto ou um bloqueio de spam.
- Análise de Fraude: Padrões de abuso, como a fraude de tráfego de SMS (SMS Pumping), podem ser identificados analisando o volume e a frequência de requisições de IPs ou faixas de números.
- Conformidade Legal: O Marco Civil da Internet (Lei nº 12.965/2014) exige a guarda de logs de acesso a aplicações por um período mínimo de 6 meses. Embora a interpretação varie, logs de verificação podem ser enquadrados nesta categoria.
Riscos da retenção excessiva
- Exposição em Vazamentos: Quanto mais dados você armazena, maior o impacto de um eventual vazamento. Logs antigos e desnecessários aumentam a "superfície de ataque" e o dano potencial à privacidade dos usuários.
- Não conformidade com a LGPD: A Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018) se baseia em princípios como finalidade e necessidade. Reter dados sem um propósito claro e definido viola esses princípios. O direito ao esquecimento também se torna mais complexo de implementar.
- Custos de Armazenamento: Embora o custo de armazenamento tenha diminuído, logs detalhados de um serviço de alto volume podem representar uma despesa considerável ao longo do tempo.
Fatores que definem o período de retenção
Uma política de retenção eficaz não é arbitrária. Ela deve ser justificada por critérios objetivos. Considere os seguintes fatores para definir seus prazos:
- Tipo de Serviço: A criticidade da sua aplicação é o principal fator. Um aplicativo bancário ou de saúde exige uma política de retenção muito mais rigorosa e longa do que um fórum online ou um cadastro para receber cupons.
- Ciclo de Vida do Cliente: Para muitos serviços, faz sentido atrelar a retenção dos dados de verificação à existência da conta do usuário. Após um usuário deletar sua conta, os logs associados podem ser anonimizados ou excluídos, respeitando prazos legais mínimos.
- Necessidades Operacionais: Por quanto tempo sua equipe de suporte precisa de acesso a logs detalhados para resolver um chamado? Geralmente, a maioria dos problemas é reportada em dias ou semanas. Um prazo de 30 a 90 dias para logs completos costuma ser suficiente.
- Legislação Aplicável: Como mencionado, o Marco Civil da Internet estipula 6 meses para logs de acesso. A LGPD e o tratamento do número de telefone exigem que a retenção seja mínima e justificada.
Boas práticas para uma política de retenção segura
Implementar uma política de retenção vai além de agendar um script para apagar dados antigos. Envolve uma estratégia de tratamento da informação em todo o seu ciclo de vida.
1. Retenção em Camadas
Não trate todos os dados de verificação da mesma forma. Aplique prazos diferentes para diferentes níveis de detalhe:
- Dados voláteis (hash do OTP): Retenção de 5 a 15 minutos.
- Logs detalhados para depuração (IP, User-Agent, status DLR): Retenção de 30 a 90 dias.
- Logs de acesso para conformidade (ID do usuário, timestamp, número mascarado): Retenção de 6 meses a 1 ano.
- Dados agregados e anonimizados (estatísticas de entrega por operadora, taxas de conversão): Retenção indefinida, pois não contêm dados pessoais.
2. Anonimização e Pseudonimização
Após o período necessário para depuração, os dados podem ser transformados para reduzir o risco. A anonimização de telefone em banco de dados é uma técnica fundamental. Em vez de apagar o log inteiro, você pode substituir o número de telefone por um hash ou um identificador anônimo.
Outra técnica é o mascaramento, onde apenas parte do dado é visível. Veja mais em como mascarar números em logs.
3. Automação e Documentação
Sua política de retenção deve ser documentada e, mais importante, automatizada. Crie scripts ou utilize funcionalidades do seu banco de dados (como TTL - Time To Live) para garantir que os dados sejam expurgados ou anonimizados de forma consistente e pontual.
Registrar a execução desses processos de limpeza também é uma boa prática para fins de auditoria de conformidade.
4. Segregação e Controle de Acesso
Os logs de verificação são altamente sensíveis. Eles não devem residir no mesmo banco de dados da sua aplicação principal com as mesmas permissões de acesso. Armazene-os em um sistema de logging separado (como Elasticsearch, Loki ou um serviço de nuvem específico) com controles de acesso rigorosos, onde apenas pessoal autorizado (segurança, suporte sênior) possa consultá-los. Saiba mais sobre como registrar logs de verificação com segurança.
Perguntas frequentes
A LGPD define um prazo máximo para guardar dados de verificação?
Não. A LGPD não estipula prazos fixos, mas opera com base nos princípios da finalidade, adequação e necessidade. Você deve ser capaz de justificar por que está guardando os dados por aquele período. Reter dados "para o caso de precisar um dia" não é uma justificativa válida.
Devo armazenar o código OTP que enviei ao usuário?
Não, nunca armazene o código OTP em texto plano. Após o envio, ele só existe na posse do usuário. Para validar o código que ele digita, seu sistema deve comparar o hash do código recebido com o hash do código original que você gerou e armazenou temporariamente (por poucos minutos).
Como a retenção de dados se relaciona com o direito ao esquecimento?
Quando um usuário exerce seu direito à eliminação de dados (direito ao esquecimento), sua política de retenção é acionada. O processo deve garantir que os dados pessoais do usuário sejam removidos não apenas da base principal, mas também dos logs de verificação, respeitando os prazos mínimos obrigatórios por lei (como os 6 meses do Marco Civil).
Qual o prazo mínimo de retenção exigido pelo Marco Civil da Internet?
O Art. 15 do Marco Civil da Internet determina que provedores de aplicações de internet (o que inclui a maioria dos sites e apps) devem manter os respectivos registros de acesso a aplicações de internet, sob sigilo, em ambiente controlado e de segurança, pelo prazo de 6 (seis) meses.


