Executando verificação de segurança...
7

Desafios de implementar criptografia ponta-a-ponta (AES-256) com foco em privacidade no Brasil

Olá pessoal!

Sou um desenvolvedor independente da Alemanha e tenho trabalhado em um projeto de criptografia local de arquivos e textos chamado TooliSafe. O desafio central que me propus foi criar uma arquitetura de 'zero-knowledge', onde o desenvolvedor (eu) não tem acesso algum à chave ou aos dados do usuário.

Como estou adaptando essa ferramenta para o mercado brasileiro, tenho estudado bastante a LGPD e a percepção de privacidade por aqui. Gostaria de abrir uma discussão técnica sobre a implementação desse tipo de solução no dia a dia.

Alguns pontos que considero críticos no desenvolvimento:

Derivação de chaves: Para mitigar ataques de força bruta, estou utilizando uma função de derivação de chaves (como PBKDF2 ou Argon2). Como vocês lidam com o balanço entre segurança e performance em dispositivos de entrada ou intermediários?

Segurança na camada de persistência: O app utiliza o Keystore (Android) / Keychain (iOS) para isolar as chaves de criptografia do sistema de arquivos comum. Alguém aqui tem experiência com os limites dessas APIs em cenários de backup em nuvem?

Compliance e LGPD: A premissa foi não rastrear dados e não armazenar nada em servidores (Local-first). Como vocês veem a aceitação de usuários brasileiros para apps que são 'estritamente offline' em comparação com modelos baseados em nuvem?

Não estou aqui para fazer propaganda, mas sim para aprender e trocar conhecimento sobre os desafios técnicos de privacidade no cenário brasileiro. Se alguém tiver interesse em analisar a abordagem técnica ou encontrar alguma falha na lógica de segurança, o feedback será extremamente bem-vindo.

Obrigado pelo espaço e por qualquer consideração técnica!

Carregando publicação patrocinada...
2

Eu sou usuário até hoje do Truecrypt e Veracrypt (não de disco inteiro.... isso já releguei a contragosto ao Bitlocker) mas a partições guardadas em arquivos com dados sensíveis. Acho que vale uma investigação como ponto de partida.

1

Muito obrigado pelo feedback! A referência ao VeraCrypt é excelente. O VeraCrypt/TrueCrypt são pilares quando falamos de soberania digital e criptografia local.

O TooliSafe segue uma filosofia parecida: o foco é garantir que o dado nunca saia do controle do usuário sem criptografia forte. A diferença que estou tentando trazer é uma interface mais moderna e adaptada para dispositivos móveis, onde gerenciar volumes do VeraCrypt nem sempre é prático.

Vou levar sua sugestão de investigar mais a fundo a estrutura de partições em arquivos deles para ver como posso otimizar a persistência de grandes volumes no TooliSafe sem comprometer a performance do mobile.

Se tiver interesse em testar a versão atual e ver como a UX se compara a essas ferramentas clássicas, ficaria muito grato pelo seu olhar crítico!

1
2

Muito legal o projeto, valeu por compartilhar! Dei uma olhada no LaCryptJS e a premissa de manter a chave apenas no front-end é exatamente o que busco com o TooliSafe.

Essa questão de 'não tratar os dados no servidor' é justamente o grande divisor de águas. No meu caso, como o TooliSafe é focado em arquivos e textos locais (Local-first), eu consigo evitar esse problema do servidor, mas ganho o desafio de gerenciar a performance da derivação de chave (Argon2/PBKDF2) direto no dispositivo móvel.

No LaCryptJS, como você tem lidado com o tempo de derivação de chaves no navegador? Pergunto porque em dispositivos mobile mais simples, o Argon2 às vezes pode ser pesado para o usuário.

Vou baixar sua lib para estudar como você estruturou a interface de criptografia. Parabéns pela iniciativa de código aberto!

1

Sem querer me meter mas já me metendo, entendo que para gerar chaves privadas basta uma quantidade aceitável de dados aleatórios e uma função hash. O Teuecrypt fazia você andar aleatoriamente com o mouse por diversos segundos para gerar os bits aleatórios. Em um dispositivo móvel você pode capturar áudio por alguns segundos e pegar o bit menos significativo das amostras, ou fazer o mesmo com uma foto, ou medir o tempo entre digitação de teclas (esse será mais difícil... texto longo).