Segurança e privacidade dos dados no Concedo
Versão 1.1, vigente desde 2 de setembro de 2026.
Uma ferramenta que existe para proteger dados de visitante não pode ser, ela própria, um banco de dados de visitantes. As seções abaixo descrevem o que o código faz e como cada mecanismo é verificado.
O princípio: minimização é requisito legal
O art. 6º, III da LGPD exige que o tratamento se limite ao mínimo necessário para a finalidade. A nossa finalidade, como operador, é uma só: produzir prova de que um consentimento existiu. Tudo o que não sustenta essa prova fica de fora do registro, e foi esse critério, campo a campo, que definiu o que o registro guarda.
O IP bruto nunca é gravado
O endereço IP chega na requisição de consentimento porque é assim que a internet funciona. Ele morre ali. Nenhuma tabela do banco tem coluna de IP, nenhum log de aplicação escreve IP, nenhum campo JSON o carrega.
O que fica gravado é um identificador derivado:
salt_do_dia = sha256(semente_secreta + ":" + AAAA-MM-DD)
visitor_hash = sha256(ip + "|" + user_agent + "|" + salt_do_dia)
O IP e o user agent existem apenas em memória, durante o processamento da requisição, e saem dela como um hash de mão única.
Por que sal diário e não sal fixo
Com sal fixo, quem tivesse a semente e uma lista de IPs poderia recalcular os hashes e reidentificar visitantes de qualquer época do banco. O hash daria uma falsa sensação de anonimato: o dado continuaria reversível por força bruta sobre um espaço pequeno, já que há poucos bilhões de IPv4 e um atacante com a semente testaria todos.
Com sal diário, essa reversão alcança no máximo o dia corrente. Dentro do dia ainda dá para deduplicar o mesmo visitante, que é o necessário para provar consentimento, e, passadas 24 horas, a correlação se perde por construção.
A distinção tem efeito jurídico: isso é minimização forte e pseudonimização, e não anonimização no sentido do art. 12. Quem diz que "hash é dado anonimizado" está simplificando de um jeito que não sobrevive a uma fiscalização. A diferença está explicada em anonimização.
O que o registro de consentimento guarda, campo a campo
| Campo | Por que existe |
|---|---|
| Data e hora | Prova quando o consentimento foi dado |
visitor_hash | Liga as ações do mesmo visitante no mesmo dia sem identificá-lo |
| Categorias (necessários, estatísticas, marketing, personalização) | O conteúdo exato da escolha |
| Ação | Distingue "aceitou tudo" de escolha por categoria e de retirada |
| Versão da política | Consentimento vale para a versão apresentada; mudou o texto, o banner volta |
| User agent | Evidência de ambiente em caso de contestação |
| URL de origem | Em qual página do site a escolha foi feita |
| Idioma | Prova em qual idioma o texto foi apresentado |
Não há nome, não há e-mail, não há IP e não há identificador publicitário.
Retenção por plano
| Plano | Retenção do registro de consentimento |
|---|---|
| Free | 90 dias, com expurgo automático |
| Planos pagos | Histórico integral, sem corte |
O histórico integral nos planos pagos é decisão de produto, e ela tem um motivo prático: prova de consentimento com prazo curto deixa de ser prova exatamente no momento em que é cobrada. Alguns fornecedores cortam em 12 meses.
O banner não entrega o seu visitante a ninguém
- Nenhuma requisição a CDN de terceiro. O banner não carrega fonte, ícone nem folha de estilo de fora. Uma única requisição dessas entregaria o IP do visitante a outra empresa antes de qualquer consentimento.
- Nenhuma dependência de runtime. O snippet é TypeScript compilado para um arquivo único, sem biblioteca de terceiro embarcada. Menos código de terceiro é menos superfície de ataque: nenhuma cadeia de dependências a auditar e nada que possa ser trocado por fora do nosso build.
- Isolamento visual. A interface do banner é montada em shadow DOM, para não vazar nem herdar CSS da página do cliente.
- Fail-open deliberado. Se a configuração não carregar, o site do cliente continua funcionando e um aviso vai para o console. O estado negado do Consent Mode continua sendo emitido.
Este site também não rastreia
As páginas públicas do Concedo (landing, guias, glossário, scanner e as páginas legais) não criam cookie, não chamam domínio de terceiro e não carregam webfont. A tipografia é a pilha do sistema operacional.
Um teste automatizado registra toda requisição de rede feita pelas páginas e falha se aparecer qualquer domínio que não seja o do próprio site. A lista completa de cookies está na política de cookies.
Segurança da sua conta
| Medida | Como está implementado |
|---|---|
| Senha | Hash argon2id. A senha em texto não é armazenada nem registrada em log. |
| Sessão | Cookie HttpOnly, SameSite=Lax e Secure em produção. No banco fica apenas o SHA-256 do token, e vazamento da tabela não permite assumir a sessão. |
| Força bruta no login | Limite de tentativas por e-mail e por endereço de origem, em janela de tempo. A chave por origem é o hash do IP: nem em memória o IP fica em claro. |
| Isolamento entre clientes | Toda consulta é filtrada por organização, com teste automatizado de isolamento na suíte: a regressão que vaza dado de um cliente para outro falha o build. |
| Ingest de consentimento | Validação de esquema em toda requisição, limite de taxa por site e por visitante, e Origin conferida contra o domínio cadastrado do site. |
| Segredos | Exclusivamente em variável de ambiente. Nenhuma credencial no código. |
Trocar a semente do sal é irreversível para a correlação passada. É por isso que ela é tratada como segredo de rotação documentada, e não como configuração comum.
Nossa exposição a terceiros
Quanto menos fornecedor, menos gente com acesso potencial aos seus dados. O único fornecedor
que armazena dado de visitante do seu site é o provedor de infraestrutura e banco de dados;
nenhum outro recebe. As categorias de operador estão na
política de privacidade, e a lista nominal fica disponível a
pedido em privacidade@concedo.com.br.
Como cada mecanismo é verificado
Cada mecanismo descrito nesta página tem teste automatizado que reprova quando o texto e o código divergem, e a revisão de segurança faz parte de toda mudança no serviço. Certificações formais, quando obtidas, são publicadas nesta página; enquanto não constarem aqui, não alegamos nenhuma.
Se algo der errado
Em caso de incidente de segurança com risco relevante aos titulares, comunicamos os afetados e a ANPD, conforme o art. 48 da LGPD, informando o que aconteceu, quais dados foram atingidos, o que já foi feito e o que o titular deve fazer.
Encontrou uma vulnerabilidade? Escreva para seguranca@concedo.com.br. Não movemos ação
contra quem reporta de boa-fé, sem exfiltrar dado e sem degradar o serviço.
Documentos relacionados
- Política de privacidade
- Política de cookies
- Como escolher uma CMP: os critérios para cobrar isto de qualquer fornecedor, inclusive de nós.
Continue lendo
Termos de uso do Concedo: assinatura, cancelamento e limites
As regras do serviço: o que o Concedo entrega, o que é responsabilidade sua, cobrança, cancelamento, uso aceitável e limites de responsabilidade.
Política de cookies do Concedo: o que este site usa
A lista de cookies deste site e do banner que instalamos nos sites dos clientes, com finalidade, duração e o caminho para revogar a escolha.
Política de privacidade do Concedo: dados, bases e direitos
Quais dados o Concedo trata, com qual base legal, por quanto tempo, quando é controlador e quando é operador, e como exercer seus direitos.
Acordo de tratamento de dados (DPA): modelo do Concedo
O contrato de operador que você assina conosco: o que tratamos por sua conta, com quais garantias no código, por quanto tempo, com quem compartilhamos.