Segurança e privacidade no Brauni: como protegemos os dados dos seus pacientes

Se você é um psicólogo, você sabe que a confidencialidade não é opcional. É a base da relação terapêutica. Cada nota de sessão, cada prontuários, todos os dados pessoais de seus pacientes merecem a máxima proteção possível.
No Brauni levamos isso muito a sério. Não é um slogan: é engenharia. Neste artigo mostramos, com total transparência, as camadas de segurança que protegem as informações clínicas dentro da plataforma.
Criptografia de dados: a sua informação é ilegível sem a chave
Todos os dados sensíveis de seus pacientes estão criptografados antes sendo armazenados no banco de dados. Usamos AES-128 no modo CBC com autenticação HMAC (encriptação Fernet) para campos clínicos, e a plataforma também tem encriptação de descanso administrada pelo provedor de nuvem e TLS 1.3 em trânsito.
O que isso significa na prática? Se alguém acessasse o banco de dados diretamente, eles veriam strings de texto incompreensíveis. Sem a chave de criptografia, os dados são inúteis.
Que dados são criptografados?
- Nomes dos pacientes e apelidos
- Datas de nascimento
- Números dos documentos
- Notas de sessão e registos médicos
- Telefones e dados de faturamento
- Arquivos enviados (encriptados antes de serem enviados para o armazenamento)
Nota
A criptografia aplica-se a campo por campo. Mesmo dentro de nossa própria equipe técnica, ninguém pode ler os dados clínicos de seus pacientes.
Além disso, cada arquivo carregado para a plataforma é verificado com um SHA-256 hash, uma impressão digital única que detecta qualquer alteração. Se um arquivo foi modificado - por engano ou por um ataque - o sistema detecta-o automaticamente.
Autenticação: mais do que uma senha
Senhas protegidas com Argon2id
Nós não salvamos sua senha. Nós salvamos uma derivada matemática gerada com Argon2id, o algoritmo vencedor da Competição de Senha e considerado o mais seguro do mundo hoje.
Por que isso importa? Outros sistemas usam algoritmos antigos como bcrypt ou SHA-256. Argon2id é projetado especificamente para ser resistente a ataques com hardware especializado (GPUs e ASICs), porque requer muita RAM para cada tentativa de adivinhação.
Autenticação multifatorial (MFA)
O Brauni oferece quatro métodos de autenticação em dois passos para escolher o que mais lhe convém:
- Applicativo de autenticação (TOTP): Google Authenticator, Authy ou outro aplicativo gera dígitos 6 que mudam a cada segundo 30.
- Código de e-mail: Você recebe um código temporário de dígitos 6 em seu e-mail.
- Chave de segurança (WebAuthn/FIDO2): você pode usar uma YubiKey ou outra chave física. É o método mais seguro que existe.
- Códigos de backup: 10 códigos de uso único para emergências se você perder o acesso ao seu segundo fator.
Conselho
Recomendamos ativar autenticação por aplicativo ou chave de segurança. Estes são os métodos mais seguros e não dependem de um e-mail vindo para você.
proteção contra ataques de força bruta
Se alguém tentar adivinhar sua senha, Brauni responde em várias camadas:
- Bloqueio de conta: após tentativas falhadas de 5, a conta está bloqueada por minutos 15.
- Notificação imediata: Você recebe um e-mail informando que alguém tentou acessar sua conta.
- Limites de velocidade: o sistema limita o número de tentativas de login, registro e recuperação de senha IP.
Além disso, o sistema é projetado para não divulgar se um e-mail é registrado. Se alguém tentar entrar com um e-mail que não existe, a resposta é idêntica à de uma senha incorreta. Isso impede a enumeração dos usuários.
Tokens e sessões: acesso controlado em todos os momentos
Tokens de curta duração
Quando você entra, o Brauni gera um toque de acesso que expira em 15 minutos. Isso minimiza a janela de exposição se alguém interceptar o token.
Então você não tem que entrar a cada minuto 15, nós usamos tokens de refrigerante de uso único. Toda vez que sua sessão é renovada, o token anterior é invalidado. Se alguém tentar reutilizar um token de refrigerante já usado, o sistema detecta o ataque, substitui toda a sessão e registra o incidente.
Revogação instantânea
Você pode fechar todas as suas sessões ativas com um único clique. O sistema usa tokens versionados: quando você revogar, alterar a versão e todos os tokens anteriormente emitidos deixam de ser válidos instantaneamente.
Proteção de arquivos: defesa profunda
O envio de arquivos para uma plataforma clínica é um vetor de ataque comum. O Brauni implementa 6 camadas de validação antes de aceitar qualquer arquivo:
| Camada | O que está ele a fazer? |
|---|---|
| 1. Extensão | Só suporta formatos conhecidos (PDF, DOCX, imagens, áudio) |
| 2. Bytes mágicos | Verifique se o conteúdo atual corresponde à extensão (detecta arquivos disfarçados) |
| 3. Inspecção aprofundada | Digitalizar PDFs para código JavaScript oculto ou ações automáticas maliciosas |
| 4. Reprocessamento de imagem | Recodificar imagens para remover metadados ocultos (EXIF, GPS, etc.) |
| 5. Limites de tamanho | Documentos: 10 MB max. Áudio: 25 MB max. Proteção contra bombas de descompressão |
| 6. Nome seguro | Remove caracteres perigosos e atribui um nome aleatório único |
Importante
Nunca confie em uma plataforma que só valide a extensão do arquivo. Um PDF pode conter código malicioso. Brauni inspeciona o conteúdo real de cada arquivo antes de aceitá-lo.
Prevenção do acesso não autorizado (IDOR)
Um dos ataques mais comuns em aplicações web é o IDOR (Insecure Direct Object Reference): um usuário tenta acessar dados de outro usuário alterando um ID na URL.
No Brauni, cada operação em dados do paciente valida que o profissional que faz a solicitação é o proprietário desses dados. Se um psicólogo tenta acessar um paciente que não lhe pertence, o sistema responde com um erro genérico que nem mesmo confirma se esse paciente existe.
Registo de actividades: auditoria completa
Brauni registra automaticamente qualquer ação relevante em um registro de auditoria inalterável:
- Quem concordou, quando e de onde (IP, navegador)
- Qual paciente foi consultado ou modificado
- Que tipo de operação foi realizada (leitura, criação, modificação, eliminação)
- Eventos de segurança (tentativas de login falhadas, alterações de senha, ativação do MFA)
Este registo não pode ser suprimido nem modificado, satisfaz os requisitos de rastreabilidade que exigem regulamentação em matéria de proteção de dados de saúde.
Cabeçalhos de segurança: proteção de nível de rede
Cada resposta do servidor inclui cabeçalhos de segurança que protegem contra ataques comuns:
- HSTS: obriga o uso de HTTPS em todos os momentos (2 anos de validade, inclui subdomínios)
- CSP: bloqueia a execução de scripts não autorizados
- X-Frame-Options: previne ataques de clickjacking (ninguém pode incorporar Brauni em um iframe)
- Opções tipo X-Content: impede que o navegador interprete mal os arquivos
- Permissões-Política: desativa o acesso à câmera, microfone e geolocalização do navegador
Proteção CSRF: formulários seguros
O Brauni implementa o padrão duplo cookie CSRF (Duplo Submit Cookie). Cada operação sensível requer um token criptograficamente assinado que seja validado contra um cookie. Isto impede que um site malicioso execute ações em seu nome se você visitar um link perigoso.
Os tokens do CSRF expiram no tempo 1 e usam HMAC-SHA256 para assinatura, tornando impossível falsificar.
Verificação da identidade (KYC)
Para garantir que apenas os profissionais reais usem a plataforma, o Brauni oferece verificação de identidade através da Stripe Identity. O processo inclui:
- Foto ID (DNI, passaporte ou licença)
- Selfie em tempo real para verificar se a pessoa corresponde ao documento
- Processamento seguro por Stripe -Brauni nunca armazena as fotos do documento
Google OAuth com PKCE: login seguro com Google
Se você preferir entrar no Google, Brauni usa o Código de Autorização com PKCE (chave de prova para troca de código), o padrão mais seguro para OAuth. Isso impede ataques de interceptação do código de autorização, mesmo em conexões comprometidas.
Gestão secreta: nada no código
Chaves de criptografia, credenciais de serviço externo e configurações sensíveis nunca no código fonte. Na produção, um serviço projetado especificamente para armazenar segredos com segurança e auditado é obtido da AWS Systems Manager Parameter Store,.
Ao iniciar, o sistema valida que as chaves atendem aos requisitos mínimos de segurança. Se detectar uma chave fraca ou de desenvolvimento em um ambiente de produção, recusa-se a iniciar.
Teste Brauni gratuito durante 30 dias, sem cartão
Notas automáticas de sessão, prontuários digitais e muito mais.
Iniciar de graçaPorquê tantas camadas?
Na segurança do computador há um princípio chamado defesa profunda: que você nunca depende de uma única medida de proteção. Se uma camada falhar, os seguintes continuam a proteger os dados.
Brauni implementa este princípio em cada nível:
- Dados em repouso: Encriptação Fernet (AES-128) campo por campo + encriptação de repouso administrada pelo provedor de nuvem
- Dados em trânsito: HTTPS obrigatórios com HSTS
- Autenticação: Argon2id + MFA + Bloqueio de Contas
- Autorização: validação da propriedade em cada transação
- Archives: 6
- Sessões: Tokens de curta duração + soda de uso único
- Auditry: Registro imutável de qualquer atividade
- cabeçalhos de segurança Vermelho: em cada resposta
A sua responsabilidade como profissional
A plataforma faz sua parte, mas a segurança é compartilhada. Recomendamos:
- Ativar autenticação em dois passos (MFA) das configurações da sua conta
- Use uma senha única para o Brauni que você não usa para outros serviços
- Não compartilhe sua sessão - cada profissional deve ter sua própria conta
- Sessão fechada ao usar um computador compartilhado
Compromisso em matéria de transparência
A segurança não deve ser uma caixa preta. Acreditamos que os profissionais de saúde merecem entender como os dados de seus pacientes são protegidos. É por isso que publicamos este artigo e vamos continuar a compartilhar atualizações sobre as medidas de segurança que implementamos.
Se você tem dúvidas sobre segurança ou privacidade, por favor escreva para soporte@brauni.io. Estamos aqui para ajudá-lo.
Brauni cumpre com os princípios da Lei de Proteção de Dados Pessoais 25.326 da Argentina e está alinhada com os padrões internacionais do HIPAA para a gestão de informações de saúde protegidas (PHI).
Artigos relacionados

Privacidade e Segurança
O que é o Monitor de Privacidade do Paciente e por que qualquer aplicativo de saúde deve tê-lo
Criptografar dados clínicos não é suficiente. Explicamos o que é o Monitor de Privacidade do Paciente (UEBA aplicado à saúde), por que HIPAA exige isso, e como Brauni detecta acesso suspeito aos prontuários em tempo real.

Privacidade e Segurança
Onde seus dados do paciente são armazenados e por que escolhemos AWS
Mostramos exatamente onde os dados clínicos de seus pacientes vivem na nuvem AWS, a maior e mais segura infraestrutura do mundo, e por que isso importa para sua prática.

Privacidade e Segurança
O que é um BAA HIPAA e porque Brauni assinou um com Google Cloud e AWS
Explicamos o que é um Contrato de Negócios Associados (BAA) sob HIPAA e por que Brauni assinou este acordo com Google Cloud e AWS para proteger os dados clínicos de seus pacientes.