1 pontos por GN⁺ 1 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • O GrapheneOS combina criptografia de disco, limitação de tentativas por força bruta, mitigação de ataques ao sistema operacional e defesa contra acesso físico com base nos recursos de segurança do Android 17 e no hardware Pixel mais recente
  • O elemento de segurança mais recente limita a entrada de PIN/senha a no máximo 20 tentativas e, após 10 falhas, impõe um atraso de 4 horas; após 15, até 41 dias. Também impede alterações de firmware sem autenticação do proprietário, bloqueando desvios por insiders
  • Com suporte a senhas de até 128 caracteres e a impressão digital + PIN secundário opcional, é possível usar 6 a 8 palavras Diceware aleatórias como senha principal sem abrir mão da conveniência no desbloqueio cotidiano
  • No estado bloqueado, novas conexões USB são bloqueadas tanto por software quanto por hardware, e a reinicialização automática entre 10 minutos e 72 horas, junto com a limpeza da memória, devolve o dispositivo ao estado Before First Unlock
  • O PIN/senha de coação apaga o dispositivo quando inserido em qualquer janela de autenticação de qualquer perfil, mas a proteção geral dos dados se baseia não em apenas esse recurso, e sim em criptografia, segurança de hardware e mitigação de ataques

Criptografia e limitação de tentativas de autenticação

  • Quebrar diretamente a criptografia de disco não é um caminho realista nem para os invasores mais sofisticados; eles precisam explorar uma vulnerabilidade do sistema operacional no estado After First Unlock ou tentar PINs/senhas por força bruta
  • A limitação de tentativas pelo elemento de segurança do Android 16 QPR2 aumenta gradualmente o tempo de espera conforme o número de falhas
    • Após 10 falhas, o atraso é de 4 horas; após 15, pode chegar a 41 dias, e o total de tentativas permitido é limitado a 20
    • Cinco valores diferentes que falharam recentemente são rejeitados antecipadamente, para que erros repetidos não desperdicem o número de tentativas
    • O GrapheneOS só oferece suporte a dispositivos que implementam a limitação de tentativas do elemento de segurança de geração mais recente
  • Para atualizar o firmware do elemento de segurança em dispositivos compatíveis, são necessários não apenas uma chave de assinatura válida e um número de versão mais alto, mas também a autenticação do usuário Owner
    • Mesmo que um governo obrigue a criação de um firmware que remova a limitação de tentativas, não é possível instalá-lo para contornar a restrição
    • Desde o Pixel 2, lançado no fim de 2017, os Pixel usam um elemento de segurança com temporizador interno e resistência a ataques internos, e desde então a integração com o sistema operacional também foi aprimorada
  • O GrapheneOS aumentou o limite de tamanho de senha de 16 para 128 caracteres, permitindo o uso de frases-senha Diceware de alta entropia sem depender da limitação de tentativas do elemento de segurança
  • A opção de impressão digital + PIN secundário permite combinar uma senha principal forte com desbloqueio diário conveniente
    • No estado Before First Unlock, usa-se uma senha principal composta por 6 a 8 palavras Diceware aleatórias; depois disso, é possível combinar impressão digital com um PIN curto
    • Mesmo após reconhecer uma impressão digital válida, é preciso inserir o PIN secundário para desbloquear a tela e o armazenamento de chaves de hardware
    • As tentativas permitidas de impressão digital caem de 20 para 5, e PINs secundários incorretos também contam como falhas

Defesa do sistema operacional e contra acesso físico

  • O GrapheneOS eleva a dificuldade de ataques ao sistema operacional com recursos baseados em hardware, como um alocador de memória reforçado e marcação de memória por hardware (MTE); os detalhes podem ser conferidos em recursos de mitigação de exploits
  • Para impedir ataques com acesso físico ao dispositivo, novas conexões USB são bloqueadas por padrão enquanto ele está travado, em nível de software e de hardware, e, quando uma conexão USB ativa desaparece, as funções de dados também são desativadas imediatamente
  • O temporizador de reinicialização automática para dispositivos bloqueados, introduzido em junho de 2021, pode ser configurado entre 10 minutos e 72 horas
    • O valor padrão era inicialmente 72 horas, mas depois foi reduzido para 18 horas
    • Ao encerrar o sistema operacional e inicializar novamente, a memória é limpa e o dispositivo volta ao estado Before First Unlock
    • Em abril de 2024, a limpeza de memória também foi adicionada à inicialização no modo fastboot do firmware dos Pixel
    • A Apple e o Google também adicionaram reinicialização automática de dispositivos bloqueados ao iOS 18.1 e ao Android 16; no Android, ela pode ser ativada pelo Advanced Protection Mode
  • O Android usa chaves de criptografia separadas para cada usuário secundário e para cada Private Space
    • No GrapheneOS, é possível devolver essas áreas ao estado Before First Unlock sem reinicializar, encerrando a sessão de usuário secundário e usando os respectivos toggles
    • Para recolocar os dados do usuário principal em um estado criptografado em repouso, apagar completamente dados residuais da RAM e até bloquear atualizações do elemento de segurança, é melhor reinicializar o dispositivo inteiro

Apagamento de dados em situações de coação

  • O PIN/senha de coação apaga o dispositivo quando inserido em qualquer janela de autenticação do sistema operacional que solicite o PIN/senha do perfil atual
    • Funciona não só na tela de bloqueio, mas também em qualquer janela que exija autenticação, como alterações de configurações sensíveis
    • Pode ser usado em todos os perfis, incluindo usuário principal, usuários secundários e Private Space
    • Também funciona quando inserido como PIN secundário do desbloqueio por impressão digital, mas não se aplica ao PIN do SIM
  • Também é possível anotar o PIN/senha de coação em um papel dentro da capinha do celular ou da carteira, mas apagar o dispositivo em uma situação real de coação pode trazer consequências físicas e legais, portanto é preciso avaliar cuidadosamente como usar esse recurso
  • O recurso de coação elimina completamente a possibilidade de recuperação dos dados mesmo que os PINs/senhas de todos os perfis sejam conhecidos, mas não é um mecanismo de defesa indispensável; a proteção completa pode ser conferida na lista de recursos do GrapheneOS e no histórico de mudanças das versões
  • Atualmente, apenas os Pixel oferecem os recursos de segurança de hardware e as atualizações exigidos pelo GrapheneOS, mas isso deve mudar a partir de 2027 com a colaboração com a Motorola Mobility e os avanços no desenvolvimento da Qualcomm

1 comentários

 
GN⁺ 1 시간 전
Opiniões no Hacker News
  • Este texto parece ter sido publicado em resposta ao caso em que uma pessoa foi acusada após redefinir um Pixel com um PIN de coerção durante uma revista de fronteira nos EUA, para deixar claro que a defesa do GrapheneOS contra extração de dados é forte mesmo sem um PIN de coerção
    Recentemente, também saiu uma matéria da Computer Weekly dizendo que a reinicialização automática em 18 horas do GrapheneOS protegeu o material jornalístico e fontes confidenciais de um jornalista ao devolver o aparelho ao estado anterior ao primeiro desbloqueio (BFU), impedindo a extração de chaves

    • Ainda fico curioso sobre como alguém poderia ser acusado com base em leis que se aplicam apenas nos EUA se a pessoa não estava em território americano
    • A citação no primeiro artigo de que “o GrapheneOS transmite a mensagem de que é inerentemente criminoso” é bastante sugestiva. No fim, cria-se a moldura de que proteção é criminosa e vulnerabilidade é conformidade com a lei
    • O intervalo de reinicialização automática pode ser reduzido para no mínimo 10 minutos. Se houver previsão de possível apreensão, como ao cruzar uma fronteira ou participar de um protesto, é melhor configurá-lo temporariamente para um período curto ou reiniciar manualmente para colocar o aparelho em estado BFU
    • A matéria do Guardian foi discutida em um thread anterior no HN, mas a da Computer Weekly foi apenas submetida e quase não teve discussão
  • O GrapheneOS precisa de um recurso completo de backup e restauração para que seja possível redefinir preventivamente o celular antes de cruzar uma fronteira. Seria bom poder fazer backup e restaurar todos os apps e dados em um servidor SSH/SFTP pessoal, como no Google Cloud ou no iCloud
    Em vez de usar um PIN de coerção e correr o risco de ser acusado, eu preferiria redefinir o celular, colocar apenas alguns contatos, uma cópia do passaporte e o PDF das passagens e, se solicitado na imigração, fornecer o PIN real. Durante a viagem, bastaria lembrar a senha do gerenciador de senhas ou de um servidor SSH remoto para restaurar só os dados necessários e apagá-los novamente a qualquer momento
    Por outro lado, se isso virasse um recurso padrão, órgãos de investigação poderiam passar a suspeitar do armazenamento remoto de todos os usuários do GrapheneOS e exigir acesso e restauração, então talvez seja melhor configurá-lo separadamente. Também existe a opção de preparar uma conta Google falsa, usada só para compras comuns e assinaturas do YouTube, para parecer natural
    Tenho uma viagem internacional de um mês daqui a 3 semanas e estou em dúvida entre redefinir o celular ou deixar o aparelho principal em casa e levar um dispositivo novo de 150 euros contendo apenas contatos de emergência da família. É um alívio que só pela tela de bloqueio não dê para perceber que não é um Android Pixel comum

    • O GrapheneOS já tem um sistema de backup criptografado que lida com muito mais dados do que o backup em nuvem do Google. Ele funciona em modo de transferência entre dispositivos, faz backup até de apps com allowBackup="false" e também oferece suporte a qualquer serviço de sincronização que forneça uma API compatível
      Como o backup é por perfil, também é possível restaurá-lo em um usuário secundário para testar. Há planos para uma reformulação completa a fim de tornar a implementação e a experiência do usuário mais simples e limpas; no momento, outros apps estão sendo reformulados primeiro
    • Há um recurso planejado para substituir o SeedVault: recurso de backup criptografado, issue relacionada
    • Parece mais útil ter um recurso que inicialize uma partição de dados oculta com outra senha e esconda a partição de uso cotidiano. Como no LUKS, um dump do armazenamento pareceria dados aleatórios, e apenas a senha correta encontraria e descriptografaria a partição oculta correspondente
      Se, na tela de bloqueio, a digitação de um PIN especial inicializasse uma partição-isca após um pequeno atraso, seria possível obter uma negação plausível não só em inspeções de fronteira esperadas, mas também em verificações surpresa
    • Um backup completo salvo em um servidor criptografado pessoal e restaurável com um único botão é indispensável. Se o celular for danificado ou roubado, será preciso passar horas reinstalando e reconfigurando itens que o SeedVault não capturou, e preocupa a possibilidade de perder até o acesso a contas vinculadas a chaves de elemento seguro
    • Fico em dúvida se, de fato, em países civilizados do Ocidente, alguém poderia ser alvo na fronteira apenas por ter instalado o GrapheneOS em um Pixel
  • O bloqueio por padrão do Android oferece apenas Log2(389112) ≈ 18.57 bits de entropia. É mais fraco até do que 3 caracteres aleatórios, 4 letras minúsculas ou um PIN decimal de 6 dígitos
    Para senhas longas, dá para usar técnicas de memorização, mas digitá-las é inconveniente. Se forem longas demais, poderiam permitir algo como usar um resumo de hash; bloquear senhas fortes em si só incentiva maus hábitos, como reutilizá-las ou enviá-las para si mesmo

    • O GrapheneOS oferece suporte a senhas de até 128 caracteres para frases-senha Diceware. Com uma frase-senha forte, não é preciso depender do elemento seguro, e um PIN aleatório de 6 dígitos é seguro graças ao limite de tentativas imposto pelo elemento seguro. Como só é possível fazer 20 tentativas no total, até um PIN aleatório de 4 dígitos pode ser suficiente
      É possível adicionar um segundo PIN de autenticação ao desbloqueio por impressão digital, permitindo usar uma frase-senha forte com praticidade, sem as desvantagens de depender apenas de biometria. O bloqueio por padrão induz o uso de apenas uma fração minúscula das combinações realmente possíveis, tornando-o muito mais fraco do que o cálculo sugere, e foi removido há anos por dar uma falsa sensação de segurança. Também está em desenvolvimento um recurso integrado de geração aleatória de PINs e frases-senha
    • O GrapheneOS reduz as tentativas de impressão digital de 20 para 5 e pode exigir um segundo PIN mesmo após uma impressão digital correta. No BFU, é conveniente usar 6 a 8 palavras Diceware aleatórias e, no uso cotidiano, combinar impressão digital com um PIN curto
      Ele altera a limitação do AOSP para permitir senhas de até 128 caracteres. A vantagem de frases-senha longas é que só precisam ser digitadas após a reinicialização e continuam protegendo mesmo se o elemento seguro for explorado
    • Pixels recentes têm um dispositivo semelhante a TPM que impede força bruta. Se o padrão não for óbvio, o invasor só pode tentar 20 vezes antes que o material auxiliar da chave seja apagado e a chave de criptografia seja perdida
      Ataques de canal lateral contra o chip de segurança são teoricamente possíveis, mas exigem um método de ataque já validado, desmontagem do aparelho e trabalho preciso e destrutivo
    • Testei configurar uma senha de 35 caracteres no GrapheneOS e funcionou sem nenhum problema
  • É curioso que querer as mesmas garantias de segurança de dispositivos Apple faça a pessoa ser tratada como criminosa. A Apple também tem reinicialização automática, criptografia completa e Lockdown Mode

    • As autoridades têm reclamações não só contra o GrapheneOS, mas também contra a Apple, porém chamar usuários de iPhone de criminosos tende a render ridicularização. Já a instalação de um sistema operacional de terceiros, por ser algo pouco familiar, é mais fácil de ser tratada como estranha e marginalizada
  • O resultado de inserir uma senha de coerção não deveria ser perceptível para quem recebe o telefone. As informações reais da conta devem ser apagadas, mas o sistema deve mostrar um sistema operacional preenchido com conteúdo plausível, como e-mails educados e sem sentido, para que o investigador possa examinar

    • Isso é uma função que deveria ser chamada mais de senha-isca do que senha de coerção
    • Bastaria manter alguns apps e dados em uma área bloqueada separada e exigir um PIN adicional após desbloquear o dispositivo. O PIN de coerção poderia abrir o aparelho enquanto apaga essa área, fazendo parecer que a área segura nunca foi configurada
      Vários sistemas operacionais e serviços, como Google Photos ou Samsung, oferecem funções de dados bloqueados
    • O PIN/senha de coerção do GrapheneOS não finge ser uma redefinição discreta; ele executa com segurança a redefinição que o usuário espera. Não é papel do projeto decidir como isso será usado em situações de aplicação da lei nem fornecer aconselhamento jurídico; as leis variam muito conforme a jurisdição e o contexto, então é preciso consultar um advogado
      Na exclusão de perfis, metadados que comprovam sua existência permanecem no dispositivo e no armazenamento criptografado do perfil do proprietário. Via ADB, também é fácil verificar se houve redefinição e em que horário, portanto não é possível oferecer uma negação plausível; fazer o usuário acreditar que isso é discreto o colocaria em risco
      Mesmo o recurso de ocultar Private Space do Android só o esconde de forma precária na interface do usuário; há vários métodos públicos de detecção, e escondê-lo completamente até do ADB é realisticamente difícil. Recursos incompletos rapidamente se tornam conhecidos em discussões online e serão incorporados a LLMs, ferramentas forenses e guias
      Os recursos do GrapheneOS precisam funcionar até contra adversários que saibam da existência do recurso. Como não há como distinguir o PIN de coerção do PIN real, isso faz com que até um PIN recebido de um usuário que não usa o recurso possa ser considerado um possível PIN de coerção
      Em dispositivos futuros, pretende-se adicionar suporte a PIN de coerção ao próprio elemento seguro como parte do limite de tentativas do Weaver, para que nem vulnerabilidades do sistema operacional consigam contorná-lo
  • Fico em dúvida se, após o primeiro desbloqueio (AFU), os dados continuam protegidos mesmo com o dispositivo bloqueado. Como ele é usado com frequência, se os dados AFU não forem protegidos mesmo que você bloqueie antes de a polícia ou um invasor apreender o aparelho, a utilidade é menor; e órgãos de investigação conseguem fazer análise no mesmo dia com ferramentas como Cellebrite
    É parecido com usar VeraCrypt, mas deixar o PC ligado porque reiniciar dá trabalho; nesse caso, a extração de memória pode permitir a descriptografia

    • O GrapheneOS protege fortemente até perfis bloqueados em estado AFU. Por padrão, ele reinicia automaticamente 18 horas depois de ser bloqueado, limitando a janela útil para ataques baseados em vulnerabilidades em execução; o usuário pode reduzir isso para até 10 minutos
      O valor de 18 horas foi escolhido para quase nunca acionar nem para pessoas que usam o telefone só algumas vezes por dia. Em geral, basta ser um pouco maior que o tempo máximo de sono; reiniciar durante a noite em si não é problema, mas a pessoa pode perder contatos de emergência que não sejam ligações da operadora
      Documentos recentes vazados do Cellebrite Premium também mostram que não há meios de atacar dispositivos GrapheneOS bloqueados e atualizados desde um determinado nível de patch de 2022 em diante
  • Gostaria de saber se a colaboração entre GrapheneOS e Motorola ainda está em andamento e quando os dispositivos Motorola serão lançados

  • Ao passar pela TSA ou pela imigração, sempre deixo o telefone e o notebook desligados. Nos EUA, entendo que não podem obrigar você a fornecer a senha, e, mesmo que apreendam o dispositivo, se ele estiver desligado será difícil quebrar a senha

    • Criar um estado BFU por desligamento ou reinicialização é muito mais seguro. Pelo material vazado mais recente da Cellebrite, parece que o GrapheneOS não pode ser atacado nem em estado AFU
      A reinicialização automática do GrapheneOS pode ser configurada para no mínimo 10 minutos, e o padrão é 18 horas. Depois disso, Google e Apple também introduziram um temporizador fixo de 72 horas
      Ainda assim, seria bom se o GrapheneOS tivesse um atalho mais rápido para desligar. Pelo que sei, hoje é preciso pressionar o botão físico e depois confirmar novamente na tela
  • xkcd relacionado: https://xkcd.com/538/

    • Não gosto desse meme. O ponto central é pelo menos fazer o agressor recorrer à violência com uma chave inglesa de 5 dólares, cometendo, dependendo do país, um crime mais grave do que as acusações enfrentadas pelo usuário
    • Segundo esta matéria relacionada, o Departamento de Justiça dos EUA está processando o morador de Atlanta Samuel Tunick por supostamente ter fornecido um PIN de coerção do GrapheneOS enquanto um agente de fronteira revistava um Google Pixel
      Ele até forneceu uma senha, mas aparentemente era uma senha que redefinia o telefone, não que o desbloqueava. É surpreendente que ele não tenha feito backup do dispositivo antes da busca
  • É possível criar um PIN de coerção atenuado que apague apenas apps selecionados sem deixar sinais. Ou reverter dados de apps para um ponto de restauração definido, fazendo parecer que nada aconteceu, e impedir que a configuração disso seja rastreada, o que ajudaria a reduzir riscos legais

    • Para uma exclusão confiável, é necessário suporte de hardware para descartar chaves. O Android usa chaves separadas para cada usuário e para o Private Space, então é possível apagar com segurança todos os dados ou um perfil específico; reiniciar também é importante para eliminar vestígios restantes na memória
      Porém a existência de um perfil específico e o momento da exclusão ficam nos metadados do sistema de arquivos e do sistema operacional, tornando isso claramente visível. Vestígios de arquivos copiados e modificados também permanecem em várias partes do SSD; depois de uso comum por bastante tempo, pedir exclusão segura de um escopo específico já pode ser tarde demais, e os dados podem ser recuperáveis. O próprio fato de metadados e estatísticas que deveriam existir terem desaparecido também vira prova
      É possível ter uma função em que todas as frases-senha sejam aceitas como válidas em uma área reservada de armazenamento e, se não estiver configurada ou estiver errada, produzam saída aleatória. Para implementar isso corretamente, seriam necessárias máquinas virtuais e uma área reservada padrão, mas ainda assim uma análise de baixo nível do SSD poderia comprovar que o recurso foi usado
    • Não há uma forma segura contra análise forense. Implementar uma negação plausível que não seja robusta daria uma falsa sensação de segurança e colocaria usuários em risco, portanto o GrapheneOS não vai adotá-la