Pular para o conteúdo
Lastro

Segurança e LGPD

Onde o documento fica, quem consegue abrir e por quanto tempo ele é retido.

Esta página descreve o que o sistema faz hoje. Onde uma peça está especificada e ainda não roda, a frase diz isso na mesma dobra em que a peça aparece — e há mais de uma. Um produto que se vende por evidência não pode afirmar sobre si mesmo o que não conseguiria demonstrar.

O que esta página não afirma

Não temos certificação SOC 2 nem ISO 27001
Nenhuma auditoria independente foi conduzida. Se a sua área de compras exige o relatório, hoje a resposta é não — e é melhor você saber disso agora do que depois de três reuniões.
Não publicamos acordo de nível de serviço
Não há SLA de disponibilidade contratado nem página de status pública. Quando houver, o número aparece aqui com a forma de medição junto.
Não há programa de recompensa por vulnerabilidade
O canal de relato existe e está descrito no fim desta página, mas não há pagamento por achado. Dizer o contrário atrairia teste que ninguém prometeu remunerar.

Sessão e identidade

Duas portas separadas, e nenhuma delas devolve o token ao navegador

A empresa contratante e o prestador entram por caminhos distintos, com credenciais distintas e tokens que o guard do outro lado recusa.

Uma credencial não abre a porta da outra
O token do prestador declara a plateia “portal” e o token da empresa não a declara. Cada guard exige a sua: token de prestador apresentado na área da empresa recebe 401, e o inverso também. O portal é o único lugar do sistema cuja identidade não pertence a organização nenhuma, e é justamente por isso que ele precisa de um cofre separado.
Senha guardada só como hash
A senha nunca é armazenada em claro: o que fica no banco é o hash bcrypt com fator de custo 12. O login devolve exatamente a mesma mensagem para e-mail inexistente e para senha errada, e gasta o mesmo tempo nos dois casos — sem isso, o tempo de resposta diria quais e-mails existem na base.
O JWT não é lido pelo JavaScript da página
A sessão vive em cookie httpOnly gravado por server action, e toda chamada autenticada sai do servidor. O token não está acessível ao script da página, então uma falha de XSS não se converte em sequestro de sessão.
Duração curta, renovação antes da tela
O token de acesso da empresa vale 15 minutos e é renovado por um de atualização de 7 dias, antes de a página renderizar. O portal usa token de 72 horas sem renovação: expirado, o prestador volta ao login. Sair apaga o cookie.
Revalidação a cada requisição, e o escopo vem do banco
O identificador da organização que a aplicação usa é lido do registro do usuário a cada requisição, nunca do conteúdo do token — token forjado com outra organização continua enxergando o escopo real. Usuário desativado, organização encerrada ou vínculo de prestador revogado derrubam a sessão na requisição seguinte, sem esperar o token expirar. A tela que revoga o vínculo ainda não está no ar; a verificação, sim.

Papéis e acesso

Um acesso hoje, e cinco papéis desenhados para quando houver mais de um

O do jurídico existe para não ser o mesmo do operador: quem confere a pasta não deve ser quem a monta. É a mesma razão pela qual a conferência de caixa não é feita pelo caixa.

Proprietário
O que alcançaTudo, inclusive a assinatura e o encerramento da organização. Nasce com o cadastro e não pode ficar vago.
Administrador
O que alcançaAdministra pessoas, prestadores, contratos e documentos da organização.
Operador
O que alcançaOpera o dia a dia: cadastra prestador, anexa documento, convida para o portal, resolve pendência.
Jurídico
O que alcançaLê tudo e pede a pasta consolidada, e não altera evidência. É separação de função, não restrição de confiança.
Leitor
O que alcançaConsulta o que existe. Não envia, não altera e não pede a pasta consolidada.

Isolamento entre organizações

Duas barreiras independentes, e a segunda não depende da primeira

O dossiê de uma empresa não é visível para outra. A garantia não está numa checagem escrita no lugar certo — está na forma como consulta e banco foram montados.

Na aplicação: o escopo é aplicado por último
Todo acesso a dado recebe o identificador da organização vindo da sessão, nunca do corpo ou da consulta — nenhum campo de entrada aceita esse valor. E ele é injetado no filtro depois de qualquer filtro de quem chamou, de modo que nenhum parâmetro consegue sobrescrevê-lo.
No banco: a chave estrangeira carrega a organização junto
As referências entre tabelas são compostas por identificador e organização. Isso torna referência cruzada impossível no nível do banco: um defeito de aplicação falha com violação de chave estrangeira em vez de entregar o dossiê alheio.
Recurso alheio responde “não encontrado”, nunca “sem permissão”
Dizer “existe, mas você não pode ver” já entrega a informação de que existe. A resposta é 404 em todo o sistema, inclusive no portal do prestador, onde documento de outro dossiê some em vez de ser negado.

Portal do prestador

O ciclo de vida do convite e da sessão do prestador

O prestador é um terceiro: ele não é usuário da contratante e não pertence à organização dela. Todo o acesso dele nasce de um convite e vive de um vínculo.

O convite: 32 bytes aleatórios, e o banco não guarda o link
O token do convite é gerado no servidor com 32 bytes aleatórios. O que fica no banco é apenas o resumo SHA-256 dele — um dump da base não se converte em acesso, porque o valor em claro existe só no e-mail que saiu.
Validade de 7 dias e uso único
Expirado, revogado ou já utilizado, o convite responde da mesma forma: inválido. Aceito uma vez, não abre de novo.
Reenviar significa trocar o link, não repetir o anterior
Não existe “reenviar o mesmo link”: o valor em claro não é recuperável. O reenvio emite um token novo e revoga os pendentes, então depois dele exatamente um link abre a porta — link vazado ou e-mail digitado errado deixa de valer ali. A revogação acontece depois de o e-mail novo sair: se o envio falhar, o prestador continua com o link anterior em vez de ficar sem nenhum.
Um reenvio a cada cinco minutos
A caixa de entrada é do prestador, não da contratante. Sem intervalo mínimo, o botão de reenviar seria um canhão apontado para um terceiro, disparável por qualquer usuário da empresa.
Hoje, quem tem o link cria o acesso — e isso está dito
Desde 29/07/2026 não há desafio de posse no aceite: a tela recebe os quatro últimos dígitos do CNPJ do próprio token, então o campo é confirmação visual e não é trava. A troca foi deliberada — o prestador deixou de receber “convite inválido” por errar um dígito daquilo que a contratante já sabe. O que sustenta o fluxo é o token: aleatório, de uso único, com 7 dias de validade, revogado a cada reenvio e enviado para um endereço nominal. Tornar o desafio configurável por organização, com a decisão registrada na trilha, está especificado e não está no ar.
A sessão: 72 horas, sem renovação, revalidada a cada requisição
O token do portal vale 72 horas e não se renova sozinho. A cada requisição a identidade é reconferida no banco: desativar o acesso encerra a sessão sem esperar o token expirar. O cookie é httpOnly e separado do da área da empresa.
A autorização vem do vínculo, não do login
A identidade do prestador é única e vive fora de qualquer organização; o que autoriza ver ou escrever num dossiê é o vínculo entre essa identidade e aquele prestador — e ele pertence à organização. Um prestador que atende duas contratantes tem um login e dois vínculos, e as duas empresas não passam a se enxergar por causa disso. Vínculo revogado deixa de autorizar na requisição seguinte — a verificação está no ar, e a tela que revoga o vínculo ainda não.
O que o prestador não consegue enviar
A lista de tipos aceitos pelo portal é fechada do lado do servidor: nota fiscal, comprovante de outros clientes, cartão de CNPJ, certidão, declaração e “outro”. Contrato, aditivo e dossiê exportado são documentos que a contratante produz — aceitá-los do prestador abriria caminho para ele juntar papel ao próprio dossiê como se fosse da empresa.

Documentos

O binário mora fora do banco, e nenhum caminho até ele é permanente

O banco guarda metadado, resumo e chave. Os bytes ficam em armazenamento de objetos, e todo acesso a eles é assinado na hora, com prazo.

A entrada é hostil por definição, e é tratada assim
Parte dos arquivos vem de um terceiro, pelo portal. A validação é por assinatura de arquivo — os primeiros bytes do conteúdo —, e não por extensão nem pelo tipo declarado, que vêm ambos do cliente. São aceitos PDF, PNG, JPEG e XML, com teto de 20 MB; arquivo de texto declarado como PDF é recusado.
A varredura de antivírus está no fluxo e o motor não está ligado
Todo documento nasce com a varredura marcada como pendente, e o download é barrado se ela apontar arquivo infectado. O motor que executa a varredura ainda não foi acoplado — a marca existe, a verificação não. É pendência declarada, e não uma peça que a página finge estar rodando.
Resumo na entrada, e substituir nunca sobrescreve
O SHA-256 é calculado no momento da ingestão e gravado com o documento. Substituir cria uma versão nova, com número próprio: o objeto anterior continua existindo e continua verificável, de modo que um dossiê montado em março segue reproduzível em setembro.
Sem bucket público, sem link permanente
A chave de cada objeto começa pelo identificador da organização, o que permite política de acesso por prefixo e torna qualquer vazamento rastreável pelo caminho. Cada download é uma URL assinada válida por 5 minutos, emitida depois de o escopo do pedido ser verificado. Não existe endereço público de arquivo.
Criptografia no armazenamento é obrigatória em produção
O serviço de armazenamento se recusa a subir em produção sem criptografia configurada — não é aviso em log, é falha de inicialização. Em desenvolvimento ela fica desligada porque o servidor local usado nos testes não a implementa.
Bloqueio de retenção para processo em curso
Documento pode ser marcado com bloqueio de retenção, e a marca exige motivo por escrito — o número da reclamatória, por exemplo. Enquanto o bloqueio existir, nenhuma rotina de expurgo o alcança, e a regra é restrição do banco, não convenção de código: registro com bloqueio e data de expurgo ao mesmo tempo é recusado na gravação.

O que fica registrado

Cada evento guarda duas datas e o resumo do evento anterior

Trecho com os nomes de evento reais do sistema e dados de exemplo. A trilha registra quando o fato aconteceu, quando ele entrou no servidor e quem o praticou.

  1. portal.convite_enviado Convite emitido para o e-mail cadastrado do prestador. Token de 32 bytes, uso único, 7 dias; o banco guarda só o resumo SHA-256.

  2. portal.convite_reenviado Reenvio pedido pela contratante. Token novo emitido e o anterior revogado — a partir daqui, um único link abre a porta.

  3. portal.acesso_criado Prestador criou o acesso ao portal. O convite passa a constar como utilizado e não abre de novo.

  4. documento.anexado Nota fiscal da competência 02/2026 recebida pelo portal. Resumo SHA-256 calculado na entrada e gravado com o documento.

  5. documento.substituido Contrato substituído — versão 2. A versão 1 continua existindo, com o resumo dela, e continua verificável.

A tabela é somente-inserção por gatilho no banco: alteração, remoção e truncamento falham, e a escrita passa só pelo serviço da trilha. Cada evento carrega o resumo SHA-256 do anterior, encadeado por organização e serializado para que duas gravações simultâneas não produzam bifurcação. O limite: enquanto o resumo do dia não for ancorado fora do banco, a cadeia não prova nada contra quem tem acesso de escrita a ele — quem reescrevesse a tabela recalcularia os resumos. A verificação da cadeia existe; a ancoragem externa está especificada e ainda não roda.

Retenção e exclusão

Quanto tempo cada coisa fica, e o que sobra quando ela sai

Prazo de retenção é parâmetro do contrato, não constante escondida no código. Os valores abaixo são os padrões.

Sessão da empresa
Por quanto tempo15 minutos de acesso, 7 dias de atualização
O que acontece depoisRenovada antes da tela enquanto o cookie durar; depois, login.
Sessão do portal
Por quanto tempo72 horas
O que acontece depoisSem renovação automática. Expirada, o prestador volta ao login.
Convite do portal
Por quanto tempo7 dias, uso único
O que acontece depoisDeixa de abrir. Reenvio emite outro e revoga o pendente. Sobra no banco só o resumo.
URL de download
Por quanto tempo5 minutos
O que acontece depoisDeixa de resolver. Não há endereço permanente de arquivo.
Dossiê após o fim da prestação
Por quanto tempo24 meses
O que acontece depoisVisível e disponível para download a qualquer momento durante a janela; a pasta completa, a pedido.
Arquivamento do dossiê
Por quanto tempoAté o fim do prazo total — parâmetro do contrato, padrão 72 meses
O que acontece depoisSai das listagens e continua restaurável sob demanda enquanto o prazo correr.
Ao fim do prazo total
Por quanto tempo
O que acontece depoisDocumentos e dados pessoais eliminados. Permanecem o identificador do dossiê, o CNPJ, o período contratual, a contagem final do inventário e a trilha com os resumos.
Dado do formulário deste site
Por quanto tempo24 meses
O que acontece depoisExcluído a pedido, a qualquer momento, pelo mesmo e-mail da conversa.
O prazo total ainda não é conclusão jurídica
Os 72 meses de retenção total são ponto de partida operacional: o parâmetro precisa cobrir com folga o período em que a empresa ainda pode ser demandada e ainda precisa produzir a prova. Validar esse número com advogado trabalhista é bloqueador declarado do produto, e até lá ele é o que é — um padrão configurável, não uma recomendação nossa.
A rotina de expurgo ainda não roda sozinha
O cálculo da data de expurgo, o bloqueio por processo em curso e a operação de remoção existem. O agendamento que os dispara em lote não está implementado, então hoje a eliminação é conduzida com registro, e não por rotina automática. Dizer o contrário seria descrever uma garantia de descarte que não é executada.
Pedido de exclusão do prestador gera atendimento manual
Nunca apagamento automático, e o motivo é um conflito real: os mesmos documentos que são dados pessoais do prestador são a prova de que a contratante precisa para exercer direito em processo. A base legal indicada é a execução do contrato para o vínculo comercial e o exercício regular de direitos para a retenção posterior. A via desenhada é pseudonimizar o nome na trilha em vez de apagar o evento, e ela ainda não está implementada.
O metadado sobrevive ao binário, e isso é proposital
“Existiu um contrato assinado em 03/2021, expurgado em 03/2027 conforme a política” é informação melhor do que ausência silenciosa — inclusive para o titular, que consegue saber o que houve com o próprio dado.

Subprocessadores

Quem mais toca no dado, e para quê

A lista abaixo descreve a função de cada terceiro. Onde o provedor de produção ainda não foi contratado, a linha diz a função e não inventa o nome.

Armazenamento de objetos (compatível com S3)
Para quêGuarda os binários dos documentos.
Que dado passa por láContratos, aditivos, notas fiscais e demais arquivos do dossiê.
Envio de e-mail (SMTP)
Para quêConvite e avisos ao prestador.
Que dado passa por láNome e e-mail do responsável pelo prestador, e o token do convite.
AbacatePay
Para quêCobrança da assinatura da contratante.
Que dado passa por láIdentificador da organização, nome e e-mail de quem contrata. Nenhum documento e nenhum dado de prestador trafega por lá.
Hospedagem do site e da API
Para quêExecução da aplicação.
Que dado passa por láO tráfego das requisições, como em qualquer servidor.
Dois serviços previstos ainda não têm provedor
A consulta cadastral de CNPJ e a assinatura eletrônica estão no desenho do produto e não estão contratadas nem implementadas. Quando forem, entram nesta lista antes de entrarem no código — subprocessador que aparece em produção antes de aparecer na página é exatamente o que uma lista de subprocessadores existe para impedir.

Relato de vulnerabilidade

Achou alguma coisa? O caminho é curto e a resposta é por escrito

Preferimos saber por você a saber por um cliente. Não há pagamento por achado, e também não há advogado esperando quem relata de boa-fé.

Como relatar
Use o canal de contato com “segurança” no assunto e descreva o passo a passo para reproduzir. Respondemos por escrito, com o que foi confirmado e o que foi feito. Se você quiser ser creditado na correção, diga como.
O que pedimos que você não faça
Não teste em conta de terceiro, não acesse dado que não seja seu, não degrade o serviço e não publique o achado antes de a correção sair. Fora isso, teste à vontade na sua própria conta.

Ainda não há uma caixa de e-mail dedicada a segurança. Enquanto não houver, o relato entra pelo canal de contato e é tratado com prioridade sobre o resto da caixa.

LGPD

Encarregado de dados e posição no tratamento

O que a lei pede que esteja publicado, com o que ainda falta dito no lugar em que faltaria de qualquer jeito.

Ainda não há encarregado nomeado publicamente
O art. 41 da LGPD pede a indicação de um encarregado, com identidade e canal divulgados. Não há pessoa nomeada hoje. Enquanto não houver, o canal para exercer direitos de titular é o de contato desta página, com resposta por escrito — e quando houver, o nome e o endereço aparecem aqui.
A contratante é a controladora dos dados do prestador dela
Quem decide contratar, quais documentos exigir e por quanto tempo mantê-los é a empresa contratante. O Lastro trata esses dados por conta dela e conforme a finalidade declarada: documentar a relação contratual. Ainda não existe um contrato de tratamento de dados publicado que formalize essa posição, e ele é pré-requisito conhecido para o jurídico do cliente liberar a compra.
O que este site coleta de você é outra coisa, e é curto
Visitando estas páginas, o único dado que sai daqui é o que você digita no formulário de contato: nome, e-mail e a faixa aproximada de prestadores. O diagnóstico gratuito roda no seu navegador e não transmite resposta nenhuma. O aviso de privacidade detalha os dois casos.

O aviso de privacidade deste site fica em Privacidade, e as perguntas mais frequentes sobre dado e retenção estão respondidas na central de perguntas.

O questionário de segurança do seu jurídico a gente responde por escrito.

Inclusive as perguntas cuja resposta honesta hoje é “ainda não” — esta página já lista várias delas, e a lista encolhe a cada entrega. Se preferir começar pelo seu lado, o diagnóstico mostra em quatro minutos o que a sua operação conseguiria demonstrar.

Sem cadastro e sem cartão. O resultado aparece inteiro na tela.